Newtonverfahren iteriert nicht

Neue Frage »

Mofty Auf diesen Beitrag antworten »
Newtonverfahren iteriert nicht
Meine Frage:
Hi,
ich versuche von ein Polynom 7.Grades die reellen Nullstellen zu finden.
Ich habe ein Programm in Java geschrieben, welches andere Polynome 7.Grades lösen kann.
Leider scheint es bei dem Polynom, welches ich als Aufgabe bekommen habe nicht zu iterieren.
wenn ich 1 als Startwert wähle werden die Zahlen immer größer.
wenn ich 0 wähle immer kleiner.

eine reelle Nullstelle existiert aber bei 0.0303902 (laut wolframalpha)
(http://www.wolframalpha.com/input/?i=0=0.0038717154*x^7+-5.9616704E-4*x^6++2.2619337E-4*x^5+-3.849827E-4*x^4++4.7887148E-4*x^3+-1.8871025E-4*x^2++4.1754573E-5x+-1.1077604E-6)


Das Polynom lautet wie folgt:
f(x)=0.0038717154*x^7 -5.9616704E-4*x^6 +2.2619337E-4*x^5 -3.849827E-4*x^4 +4.7887148E-4*x^3 -1.8871025E-4*x^2 +4.1754573E-5x -1.1077604E-6

1.Ableitung:
f'(x)=-7.7543228E-6*x^6 +2.50527438E-4*x^5 -9.4355125E-4*x^4 +0.00191548592*x^3 -0.0011549480999999999*x^2 +4.5238674E-4x -5.9616704E-4


wo liegt mein fehler?
was muss ich verbessern, damit das verfahren anwendbar wird?
wieso iteriert es nicht?

Meine Ideen:
selbst matlab konnte mir nicht weiter helfen
hier das programm welches ich dafür verwendet habe:

function [nullstelle,i]=newton_verfahren(x)
format long;
eta=0.00001;
diff=1;
i=0;
while(diff>eta)
nullstelle = x;
[f_x,fp_x]=f(x);
x=x-f_x/fp_x;
i=i+1;
diff=abs(x-nullstelle);
end
nullstelle=x;

function [f_x,fp_x]=f(x)
f_x = 0.0038717154*x.^7 -5.9616704E-4*x.^6 +2.2619337E-4*x.^5-3.849827E-4*x.^4 +4.7887148E-4*x.^3 -1.8871025E-4*x.^2 +4.1754573E-5* x -1.1077604E-6;
fp_x = -7.7543228E-6*x.^6 +2.50527438E-4*x.^5 -9.4355125E-4*x.^4 +0.00191548592*x.^3 -0.0011549480999999999*x.^2 +4.5238674E-4*x -5.9616704E-4;
Steffen Bühler Auf diesen Beitrag antworten »
RE: Newtonverfahren iteriert nicht
Willkommen im Matheboard!

Deine Ableitung sieht seltsam aus. Beim ersten Term sollte als Ableitung herauskommen. Auch beim zweiten hab ich einen anderen Vorfaktor, die anderen hab ich jetzt nicht getestet.

Schau da doch noch mal nach.

Viele Grüße
Steffen
mYthos Auf diesen Beitrag antworten »

Das Verfahren konvergiert jedenfalls recht schnell.
Sowohl bei einem Startwert von x0 = 0, als auch bei x0 = 1

Man kann an Stelle der Ableitung durchaus auch den Differenzenquotient für sehr kleine h (h = 0,00001) verwenden.
Dies eignet sich besonders dann, wenn die Ableitung sehr komplex sein sollte.

Im u.s. Arbeitsblatt wurde als Startwert x0 = 0,02 gewählt, dann ergibt sich die Nullstelle auch sehr bald.

[attach]39135[/attach]

mY+
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »