Procedimento
>
poli:=proc()
local s,p,q,r,k,i;
with(linalg):
s:=vector[10]: p:=vector[10]: q:=vector[10]: r:=vector[10]:
p[1]:= 1: q[1]:= 1: r[1]:= 1:
p[2]:= 0.497: q[2]:= 0.497: r[2]:= 0.497:
for k from 1 to 10 do s[k]:=0.5^(k-1):od:
for k from 3 to 10 do p[k]:=1.5*p[k-1]-0.5*p[k-2]:od:
for k from 3 to 10 do q[k]:=2.5*q[k-1]-q[k-2]:od:
for k from 3 to 10 do r[k]:=0.5*r[k-1]:od:
printf(" i p[i] q[i] r[i] s[i]\n");
for i from 1 to 10 do
printf(" %2d %8.6f %8.6f %8.6f %8.6f \n", i,p[i],q[i],r[i],s[i]):
od;
end:
> poli();
Warning, new definition for norm
Warning, new definition for trace
i p[i] q[i] r[i] s[i]
1 1.000000 1.000000 1.000000 1.000000
2 .497000 .497000 .497000 .500000
3 .245500 .242500 .248500 .250000
4 .119750 .109250 .124250 .125000
5 .056875 .030625 .062125 .062500
6 .025438 -.032688 .031063 .031250
7 .009719 -.112344 .015531 .015625
8 .001859 -.248172 .007766 .007813
9 -.002070 -.508086 .003883 .003906
10 -.004035 -1.022043 .001941 .001953