003
25.09.2008, 13:33 Uhr
~MartinF
Gast
|
Hallo,
wie gefällt dir diese Lösung? Komme eigentlich aus der Ecke C und C++, Java, wollte aber noch mal ein wenig Pascal schreiben...
Grüße
C++: |
program newton;
{ liefert Funktionswert f(x) } function f(x : double) : double; begin { Beispiel: wir moechten die Gleichung x*x=exp(x) loesen } f := x*x - exp(x); end;
{ liefert Steigung d/dx f(x) } function m(x : double) : double; const h : double = 1.0e-10; begin m := (f(x+h)-f(x))/h; end;
{ Newton-Verfahren; liefert x, fuer das f(x) annaehernd gleich 0, nicht konvergiert sonst } function newton() : double; var i : integer; r : double; begin r := 1;
for i := 0 to 64 do begin r := r - f(r)/m(r); end;
newton := r; end;
begin writeln(newton() : 0 : 15); end.
|
|