(*$B- Aufgabe 3.19 *) PROGRAM newtonhalley; VAR xa,x,f0,f1,f2:real; FUNCTION f(x:real):real; VAR s,t,sa,ta :real; i:integer; BEGIN t:=x; s := x; i:=0; REPEAT i:=i+1; sa:=s; ta:=t; t:=-ta*x*x/i; s := sa+t/(2*i+1) UNTIL s=sa; f:=s-0.5 END; FUNCTION fs(x:real):real; BEGIN fs:=exp(-sqr(x)) END; FUNCTION fss(x:real):real; BEGIN fss := -exp(-sqr(x))*2*x END; BEGIN x :=0; writeln('mit Newton'); REPEAT xa := x; x:=x-f(x)/fs(x); writeln(x) UNTIL xa>=x; x :=0; writeln('mit Halley'); REPEAT xa := x; f0:=f(x); f1:=fs(x); f2:=fss(x); x:=x-f0/f1/(1-0.5*f0/f1*f2/f1); writeln(x) UNTIL xa>=x END.