PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alle Nullstellen berechnen



Nicolas
03-02-2005, 20:12
Hallo!

Ich bin gerade dabei, eine Klasse zu bauen, die in der Lage sein soll, eine vollständige Funktionsuntersuchung von ganzrationalen Funktionen durchführt. Das Ableiten und Ausrechnen eines Funktionswertes funktioniert schon. Aber mit den Nullstellen habe ich meine liebe Not. Ich hab es zwar geschafft, mithilfe des Newton-Verfahrens und einem bestimmten Startwert eine Nullstelle zu berechnen. Ich habe nur eine Ahnung, wie ich mehrere geeignete Startwerte finden soll. Ich habe mir schon überlegt, von der letzten Nullstelle einfach z.B. 1 dazu zu zählen und dies wieder als Startwert zu nehmen. Aber dann kann es mir passieren, daß ich entweder wieder die gleiche Nullstelle herausbekomme oder aber schon eine Nullstelle übersprungen habe.

Hier habe ich mal den Codeausschnitt zur Nullstellenberechnung eingefügt:

const double abbruch = 0.0000001;
double x = 0, xold;

do
{
xold = x;
x = x - f(x)/Ableiten()->f(x);
}
while ( fabs(x-xold) > abbruch );

cout << "Nullstelle bei x = " << x << endl;
return ret;

Vielleicht kann mir ja jemand weiterhelfen.

panzi
03-02-2005, 23:16
Tja, ich kann mich nur an so viel erinnern, als das wir das auch mal gmacht haben. ;)
Wir hättens in Mathematica machen solln, aber da uns das der Lehrer nicht erklärte (wir sollten es uns selbst beibringen) hab ichs in C geschrieben.
(Für weitere HÜs hab ich dann aber eh Mathematica verwendet...)