Corrigés desproblèmes
203
ylabel(’t’,’Fontsize’,18)
title(’solutionapprochée’,’Fontsize’,18)
subplot(2,2,2)
contourf(xx,tt,V,10)
xlabel(’x’,’Fontsize’,18)
ylabel(’t’,’Fontsize’,18)
title(’solutionapprochée’,’Fontsize’,18)
uu=solex(x,t’);
subplot(2,2,3)
surf(xx,tt,uu’,’EdgeColor’,’none’)
xlabel(’x’,’Fontsize’,18)
ylabel(’t’,’Fontsize’,18)
title(’solutionexacte’,’Fontsize’,18)
subplot(2,2,4)
contourf(xx,tt,uu’,10)
xlabel(’x’,’Fontsize’,18)
ylabel(’t’,’Fontsize’,18)
title(’solutionexacte’,’Fontsize’,18)
✝
✆
✞
☎
function z=u0(x);
z=sin( pi*x)+x.*x.*(1-x);
function Z=phi(t,Y)
global Ri nvM F
Z=-invM*R*Y+F;
✝
✆
Ce qu’il faut retenir de cetexercice
L’instruction global Ri nvM F est une facilité puisque les mêmes variables sont utilisées
dans le programme principal et les sous programmes.Cela évite des passages en paramètre
des fonctions. Le risque est de modifier les valeurs de ces variables dans différents sous
programmes et de se perdre...
ELF3.m
✞
☎
global RFinvM
tN=[20:3:32];
for i=1:length(tN)
N=tN(i);
h=1/(N+1);
x=(0:h:1)’;
M=h/6*(4*diag(ones(N,1))+diag(ones(N-1,1),1)+ diag(ones(N-1,1),-1));
invM= inv(M);
R=1/h*(2*diag(ones(N,1))-diag(ones(N-1,1),1)- diag(ones(N-1,1),-1));
F=-2+6*x(2:N+1);
eta0=u0(x(2:N+1));
[t,V]=ode23(’phi’,[0,1],eta0);
uu=solex(x(2:N+1),t’);
lt= length(t)
taberr(i)=norm(V(lt,:)-uu(:,lt)’,inf);
end
 Dunod –Laphotocopie non autorisée est un délit
Précédent

- 182/188

Suivant