Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Frage-Näherung der Wurzeln » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 7 Beiträge
marie m

Ich hatte die Funktion abs benutzt,deswegen ist bestimmt 0 rausgekommen..Danke vielmals!!!!!!! Augenzwinkern Daumen hoch smile
eulerscheZahl

Wenn du keinen vollständigen Quellcode angibst, kann ich dir nicht sagen, woran das liegt.
Mein Programm funktioniert jedenfalls:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
#include "stdio.h"
#include "math.h"

int main(void)
{
	double a=1, b=-3.6778, c=0.0020798, y1=3.67723441190, y2=0.00056558809;
	double D = b*b-4*a*c;
	double x1 = (-b+sqrt(D))/(2*a);
	double x2 = (-b-sqrt(D))/(2*a);
	
	printf("x1 = %.15lf, x2 = %.15lf.\n", x1, x2);
	printf("y1 = %.15lf, y2 = %.15lf.\n", y1, y2);
	printf("|y1-x1| = %.15lf, |y2-x2| = %.15lf.\n", fabs(y1-x1), fabs(y2-x2));
	printf("|y1-x1| = %g, |y2-x2| = %g.\n", fabs(y1-x1), fabs(y2-x2));
}
marie m

Bei der Aufgabe soll man die Wurzeln den Polynoms a*x^2+b*x+c=0 mit der Formel

x1=(-b+sqrt(d))/2a, x2=(-b-sqrt(2))/2a ,d=b^2-4ac

finden.
Die Aufgabe gibt auch noch die genaue Lösungen,und man soll den Unterschied zwichen der Wurzeln die man gefunden hat und die genaue Lösungen die die Aufgabe gibt ,finden.


Bei mir kommt bei beide Unterschiede 0 raus,das ist aber falsch!!!
eulerscheZahl

Ich weiß immer noch nicht, welche mathematischen Überlegungen dahinter stecken.

Falls es dir um eine genauere Nullstellenberechnung bzw. Ausgabe geht:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
#include "stdio.h"
#include "math.h"

int main(void)
{
	double a=1, b=-3.6778, c=0.0020798;
	double D = b*b-4*a*c;
	double x1 = (-b+sqrt(D))/(2*a);
	double x2 = (-b-sqrt(D))/(2*a);
	printf("x1=%.15lf,x2=%.15lf.\n",x1,x2);
}

mit .15lf gibt man die Präzision der Ausgabe (15 Stellen) an.
marie m

Ich habe die y1=3.67723441190 und y2=0.00056558809 als double bezeichnet...Dann habe ich geschreiben
printf("y1=%lf,y2=%lf.\n",y1,y2);

und das Ergebnis ist y1=3.677234,y2=0.000566.Ich will aber dass diese Variablen eine Genauigkeit von 12 Nummern haben,damit ich danach die |x1-y1| und |x2-y2| finde.
Wie könnte ich die Variablen bezeichnen sodass sie eine Genauigkeit von 12 Nummern haben oder was könnte ich sonst ändern???? verwirrt
eulerscheZahl

In welcher Sprache soll das Programm sein?
Wäre nett, wenn du deinen bisherigen Versuch anfügst, damit ich sehe, wo es klemmt.

Und ich brauche noch etwas mathematische Nachhilfe:
Zitat:
Wurzeln der Gleichung a*x^2+b*x+c=0 finden

Ich weiß, wie man Nullstellen bestimmt, von Wurzeln habe ich in dem Zusammenhang noch nie etwas gehört. Die Werte sind auch gleich, nur dass es bei dir y1 und y2 sind, nicht x1 und x2. Was sind dann bei dir x1 und x2?
Zitat:
Finden Sie die Wurzeln x1,x2,indem sie den bekannten Lösungsweg benutzen

jetzt heißen die Wurzeln auf einmal wieder x verwirrt
und was ist der bekannte Lösungsweg?

Zitat:
Wie kann ich die |y1-x1|,|y2-x2| finden,ohne dass sich die y1,y2 ändern??

Indem du dafür eine neue Variable anlegst:
code:
1:
2:
3:
double x1, x2, y1, y2, y1_minus_x1, y2_minus_x2;
x1=...; x2=...; y1=...; y2=...;
y1_minus_x1 = abs(y1-x1); y2_minus_x2 = abs(y2-x2);
marie m Frage-Näherung der Wurzeln

Wink Ich habe eine Frage über die folgende Aufgabe:
Schreiben Sie ein Programm,in dem Sie die Wurzeln der Gleichung a*x^2+b*x+c=0 finden.Wenn a=1.0,b=-3.6778,c=0.0020798,dann sind die y1=3.67723441190 und y2=0.00056558809 eine gute Näherung der Wurzeln.Finden Sie die Wurzeln x1,x2,indem sie den bekannten Lösungsweg benutzen und finden Sie das |y1-x1|,als auch das |y2-x2|.

Ich habe die Variablen als "double" bezeichnet und die Diskriminante gefunden.Das Ergebnis ist x1=3.677234,x2=0.000566..
Wie kann ich die |y1-x1|,|y2-x2| finden,ohne dass sich die y1,y2 ändern??
Ich habe sie nämlich als "double" bezeichnet und dann gibt es diese Änderung ,y1=3.677234,y2=0.000566.. verwirrt