Help:=proc():print(`PolF1(Li,a,d,x)`):end: #PolF1(Li,a,d,x): tries to fit a polyn. f(x) #of degree d in x, such that f(a)=Li[1] #f(a+1)=Li[2], ... f(a+nops(Li)-1)=Li[nops(Li)] #and FAIL otherwise PolF1:=proc(Li,a,d,x) local f,c,i,var,eq,sol: f:=add(c[i]*x^i,i=0..d): var:={seq(c[i],i=0..d)}: eq:={ seq(subs(x=a+i-1,f)-Li[i],i=1..nops(Li))}: sol:=solve(eq,var): if sol=NULL then RETURN(FAIL): fi: subs(sol,f): end: PolF:=proc(Li,a,x) local d,f: for d from 0 to nops(Li)-4 do f:=PolF1(Li,a,d,x): if f<>FAIL then RETURN(f): fi: od: FAIL: end: