> restart; > with(linalg): Warning, new definition for norm Warning, new definition for trace > > Digits:=20; > #Neville-Algorithmus > neville:=proc(x,f,wert) > #x ist der Vektor der Stuetzstellen > #f ist der Vektor der Stuetzwerte > # wert ist die x-Koordinate, an der das Interpolationspolynom ausgewertet werden soll > #option trace; > local y,n,j,k; > n:=vectdim(f); > y:=vector(n); > for j from 1 to n do y[j]:=f[j] od; > for k from 1 to n-1 do > for j from n by (-1) to k+1 do y[j]:=evalf(((wert-x[j-k])*y[j]+(x[j]-wert)*y[j-1])/(x[j]-x[j-k])) od > od; > RETURN(y[n]) > end: Digits := 20 > x:=vector(4,[1.4,1.5,1.6,1.7]); > y:=vector(4,[0.9523,0.9661,0.9763,0.9838]); w:=neville(x,y,1.43); x := [1.4, 1.5, 1.6, 1.7] y := [.9523, .9661, .9763, .9838] w := .95687155000000000000 >