Lanczos:=proc(p,alpha,beta,n) local k,q,x; p:=array(0..n); alpha:=array(1..n); beta:=array(1..n-1); p[0]:=1/ sqrt(2); alpha[1]:=int(x*p[0]*p[0],x=-1..1); q:=(x-alpha[1])*p[0]; for k from 2 to n do beta[k-1]:=sqrt(int(q*q,x=-1..1)); p[k-1]:=expand(q/beta[k-1]); alpha[k]:=int(x*p[k-1]*p[k-1],x=-1..1); q:=(x-alpha[k])*p[k-1]-beta[k-1]*p[k-2]; od; RETURN(NULL); # results are returned in the variables passed in end;