hallo ich musste in Matlab 2 programme schreiben, die mit den Newtonverfahren verbunden sind. Die Funktion lautet 2-x² mein Startwert ist 0 und toleps = toleranz ist 1e-8.
Meine Frage ist, bei meinem ersten programm gibt es mir eine FEhlermeldung und beim 2. funktioniert es. ich weiß zwar, dass ich da die Tangente immer um 0.01 verschiebe aber warum das Programm funktioniert weiß ich nicht. Müsste etwas wegen Der Näherung sein aber einen vollständigen Satz bekomme ich für meinen Prof nicht hin
Meine Frage ist, bei meinem ersten programm gibt es mir eine FEhlermeldung und beim 2. funktioniert es. ich weiß zwar, dass ich da die Tangente immer um 0.01 verschiebe aber warum das Programm funktioniert weiß ich nicht. Müsste etwas wegen Der Näherung sein aber einen vollständigen Satz bekomme ich für meinen Prof nicht hin
Code:
function [xnaeherung, iterationen] = mynewton( toleps, startx)
abbruch=0;
n = 0;
while (abbruch==0)
y1 = myfunction(startx);
y2 = myfunctiondiff(startx);
z = startx-(y1/y2);
if(abs(startx-z)<toleps) %abs=Betrag
abbruch=1;
end
startx = z;
n = n+1;
end
iterationen = n;
xnaeherung = startx
Code:
function [xnaeherung, iterationen] = mynewton2( toleps, startx)
abbruch=0;
n = 0;
delta=0.01;
while (abbruch==0)
y1 = myfunction(startx);
y2 = (myfunction(startx+delta)- myfunction(startx))/(delta); %Differenz wird approximiert
z = startx-(y1/y2);
if(abs(startx-z)<toleps)
abbruch=1;
end
startx = z;
n = n+1;
end
iterationen = n;
xnaeherung = startx;
%y2 = (myfunction(startx+delta)-myfunction(startx))/(delta); %Differenz wird approximiert