Bonjour à tous,
Je dois mettre au point un programme qui réalise la projection orthogonale sur un sous espace de polynomes de l'espace de Hilbert L²([0,1]).
On pose Po=1 puis on construit une suite de polynomes Pn:(Pn,Pm)=TAU_m
(TAU étant la lettre grec).EN est l'espace de dim n engendré par les N premiers polynômes.
A l'aide de Matlab j'ai construit les polynomes orthogonaux à un ordre arbitraire et tracer le graphe de ces polynômes
En voici le code:
function final=poly(ordre);
f=1;
for io=1:ordre
%on ajoute n ordre supplémentaire à la matrice qui contient tous les
%polynomes
conc=zeros(io,1);
f=[f conc];
px=eye(io+1,io+1); %matrice contenant chacune des puissances de X
for i=1:io
for j=1:io+1
f(i,:);
(px(j,:))';
M2(i,j)=ps(f(i,:)',(px(j,:)));
end
end
M=M2(:,1:io);
V=M2(:,io+1);
W=-inv(M)*V;
W2=[W;1];
temp=zeros(1,io+1);
for i=1:io+1
temp=temp+W2(i,:)*px(i,:);
end
f(io+1,io+1)=1/(sqrt(ps(temp',temp)));
for i=1:io
f(io+1,i)=W(i)*f(io+1,io+1);
end
f;
end
%graphique
x = linspace(-0.5,0.5,200);
v=[];legende=[''];
f=fliplr(f)
for i=1:io+1
v=[v;polyval(f(i,:),x)];
end
plot(x,v),grid;
%légende
title('Représentation graphique des polynômes');
xlabel('x'); ylabel('pi(x)');
legende(1:ordre+1,1)='p';legende=[legende int2str([0:ordre]')]
legend(legende,4);
final=f;
Maintenant je dois construire la projection orthogonale d'une fonction arbitraire sur EN... et c'est la mon problème
Et la j'aimerais des explications, la projection orthogonale il faut bien faire le produit scalaire?
Merci à tous pour vos réponses... :++:
