/* Eksempel p? bruk av Newtons metode for f(x)=x*x-2=0. Eksemplet er programmert "halvgenerelt" ved at f og fd (f') gis som en metode av typen double, mens iterasjonen gj?res i main metoden. Helst burde ogs? bruke av halveringsmetoden v?rt kodet som en generell metode som kalles for ulike valg av likninger */ import easyIO.*; class Newt{ /* deklarer f i f(x)= 0 vha. metode */ static double f(double x){ return x*x-2.0; }; static double fd(double x){ return 2*x; }; public static void main(String[] args){ int i, nmax; double xstart,xn,xprev,fres,rate,feil,xfasit,xeps,feps; In les=new In(); Out skjerm=new Out(); /* for losning av annet problem maa f, fd byttes og xfasit endres eller fjernes */ xfasit=Math.sqrt(2.0); skjerm.outln("gi xstart"); xstart=les.inDouble();les.inLine(); skjerm.outln("gi max antall iterasjoner"); nmax=les.inInt();les.inLine(); skjerm.outln("gi avbruddskriterium for x og f"); xeps=les.inDouble();feps=les.inDouble();les.inLine(); xn=xstart;fres=f(xn);i=0;xprev=xn+2*xeps;feil=xfasit-xn; /* xprev, som er forrige verdi av xn, brukes bare for avbruddstest. Den gis en initiell verdi som hindrer avbrudd i f?rste l?kkegjennomgang */ skjerm.out(" n",8); skjerm.out("xn",13); skjerm.out("feil",13); skjerm.outln("f(xn)",13); skjerm.out(i,3);skjerm.out(xn,8,14); skjerm.out(feil,8,14);skjerm.outln(fres,8,14); i=0; while(Math.abs(xn-xprev) >xeps && Math.abs(fres)>feps && i