88
6
•
Moindres carrés
Ce qu’il fautretenirdecet exercice
Pour calculer te
t
,où t est un tableau, l’instruction Matlab est t.*exp(t) .Sur la différence
entre * et .* revoir le chapitre 1.
EQD6.m
✞
☎
clear
tM=[10 15 20 35 50 75];
for i=1:length(tM)
M=tM(i)
n=M+2;
h=1/(n+1);
x=(h:h:1-h)’;
A1=x*ones(1,M);
for j=1:M
A2(:,j)=-(j-1)*(j-2)*A1(:,j).^(j-3)+A1(:,j).^(j-1);
end
A=[ zeros(1,M);A2;ones(1,M)];
A(1,1)=1;
clear A2
b=[0;f(x);0];
alpha=(A’*A)\ (A’*b);
t=0:1/1000:1;
e=exp(1);
uex=e/(2*(e-1/e))*(exp(t)- exp(-t))-t/2.*exp(t);
uapp= polyval(alpha(M:-1:1),t);
%plot(t,uex,t,uapp)
taberreur(i)=norm(uex-uapp,inf);
end;
tM
taberreur
✝
✆
On remarque que l’erreur diminue très vite puis qu’elle reste stable, voire en augmentation. En
effet,lamatrice A
T
A est très mal conditionnée (voir le chapitre 3) quand M devient grand. On
peut alors s’interroger surlechoix d’une base polynômiale plus adaptée.
Pour conclure par un autre exemple, on prendra f 1(x ) = ( p
2
+1)sin( p x ).
6
•
Moindres carrés
Ce qu’il fautretenirdecet exercice
Pour calculer te
t
,où t est un tableau, l’instruction Matlab est t.*exp(t) .Sur la différence
entre * et .* revoir le chapitre 1.
EQD6.m
✞
☎
clear
tM=[10 15 20 35 50 75];
for i=1:length(tM)
M=tM(i)
n=M+2;
h=1/(n+1);
x=(h:h:1-h)’;
A1=x*ones(1,M);
for j=1:M
A2(:,j)=-(j-1)*(j-2)*A1(:,j).^(j-3)+A1(:,j).^(j-1);
end
A=[ zeros(1,M);A2;ones(1,M)];
A(1,1)=1;
clear A2
b=[0;f(x);0];
alpha=(A’*A)\ (A’*b);
t=0:1/1000:1;
e=exp(1);
uex=e/(2*(e-1/e))*(exp(t)- exp(-t))-t/2.*exp(t);
uapp= polyval(alpha(M:-1:1),t);
%plot(t,uex,t,uapp)
taberreur(i)=norm(uex-uapp,inf);
end;
tM
taberreur
✝
✆
On remarque que l’erreur diminue très vite puis qu’elle reste stable, voire en augmentation. En
effet,lamatrice A
T
A est très mal conditionnée (voir le chapitre 3) quand M devient grand. On
peut alors s’interroger surlechoix d’une base polynômiale plus adaptée.
Pour conclure par un autre exemple, on prendra f 1(x ) = ( p
2
+1)sin( p x ).
