Nullstellenbestimmung durch das Newton-Verfahren
Programm zur Bestimmung der Nullstelle einer Funktion f
durch das Newton-Verfahren.
program Newton(input, output);
{Nullstellensuche der Funktion f=cos(x)-x um den Wert x0
durch das Newton-Verfahren}
var
x0: double; {Anfangswert}
eps: double; {Genauigkeit}
fehler: double;
x, y: double;
function f(x: double): double; begin
f := cos(x) - x
end; {f}
function fstrich(x: double): double; begin
fstrich := -sin(x) - 1
end; {fstrich}
procedure init; begin
writeln('Exemplarische Darstellung einer Nullstellensuche durch ');
writeln('das Newton-Verfahren anhand der Funktion f=cos(x)-x');
writeln;
writeln('Geben Sie bitte den Anfangswert ein.');
readln(x0);
writeln('Wie genau soll die Nullstelle bestimmt werden?');
readln(eps);
while eps <= 0 do begin
writeln('Nur positive Genauigkeiten machen Sinn. Versuchen Sie es noch einmal.');
readln(eps)
end {while}
end; {init}
procedure result; begin
writeln('Die Nullstelle liegt bei ', x:1:7, '.')
end; {result}
begin {Newton}
init;
x := x0;
repeat begin
y := x - f(x)/fstrich(x);
fehler := abs(y-x);
x := y
end;
until fehler < eps;
result
end. {Newton}