> restart:
> ps:=(f,g)->int(f*g,t=0..1);
On construit d'abord une base orthogonale par le procédé de Schmidt :
>
poly:=proc(n)
option remember;
local p,i;
p:=t^n-add(ps(t^n,poly(i))/ps(poly(i),poly(i))*poly(i),i=0..n-1);
collect(p,t);
end;
poly(0):=1;
Il reste à normer ces vecteurs pour obtenir la base orthonormale cherchée :
> for i from 0 to 6 do e.i=poly(i)/sqrt(ps(poly(i),poly(i))):od;
Le minimum cherché est réalisé sur la projection orthogonale ; or par construction même, poly(7) = t^7 - p(t^7) où p(t^7) est la projection orthogonale de t^7 sur R 6[X].
D'où la projection :
> proj:=t^7-poly(7);
On vérifie que c'est un élément de R 6[X] et t^7 - proj = poly(7) est orthogonal à une base de ce sous espace.