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.