Tämä esittelee Newtonin menetelmää Pascalilla. Newtonin menetelmässä etsitään likiarvo funktion nollakohdalle. Tämä lasketaan x-f(x)/f'(x), kunnes ollaan tarpeeksi lähellä nollakohtaa. Ohjelmassa voidaan käyttää enintään kolmannen asteen funktiota ja se derivoidaan.
program NewtoninMenetelma;
uses Math;
var
kerroin_a: Single;
kerroin_b: Single;
kerroin_c: Single;
kerroin_d: Single;
eksponentti_a: Single;
eksponentti_b: Single;
eksponentti_c: Single;
x: Single;
x2: Single;
d: Single;
y: Single;
begin
kerroin_a := 0.0;
kerroin_b := 0.0;
kerroin_c := 0.0;
kerroin_d := 0.0;
eksponentti_a := 3.0;
eksponentti_b := 2.0;
eksponentti_c := 1.0;
x := 1.0;
x2 := 0.0;
y := 0.0;
d := 0.0;
{Annetaan lähtötiedot}
WriteLn('Anna kerroin a');
readln(kerroin_a);
WriteLn('Anna kerroin b');
readln(kerroin_b);
WriteLn('Anna kerroin c');
readln(kerroin_c);
WriteLn('Anna kerroin d');
readln(kerroin_d);
{Lasketaan funktion nollakohdan likiarvo annettujen tietojen mukaan}
y := kerroin_a*power(x,eksponentti_a)+kerroin_b*power(x,eksponentti_b)+kerroin_c*power(x,eksponentti_c)+kerroin_d;
d := kerroin_a*eksponentti_a*power(x,eksponentti_a-1)+kerroin_b*eksponentti_b*power(x,eksponentti_b-1)+kerroin_c;
x2 := x-y/d;
x := x2;
repeat
{Jatketaan nollakohdan etsimistä}
y := kerroin_a*power(x,eksponentti_a)+kerroin_b*power(x,eksponentti_b)+kerroin_c*power(x,eksponentti_c)+kerroin_d;
d := kerroin_a*eksponentti_a*power(x,eksponentti_a-1)+kerroin_b*eksponentti_b*power(x,eksponentti_b-1)+kerroin_c;
x2 := x-y/d;
x := x2;
until ((y < 0.001) and (y > -0.001));
{Näytetään lopullinen tulos}
WriteLn('Tulos:');
WriteLn((x2):2:6);
end.Aihe on jo aika vanha, joten et voi enää vastata siihen.