198
11
•
Problèmes
b) Programmation
EQC4.m
✞
☎
clear
N=10;dt=0.02;
h=1/(N+1);
r=dt/h^2;
T=0.4;
x=0:h:1;
t=0:dt:T;
V(1:N+2,1)=u(x,0)’;
V(1,1:length(t))=0;
V(N+2,1:length(t))=0;
A=2*diag(ones(N,1))-diag(ones(N-1,1),1)- diag(ones(N-1,1),-1);
M=eye(N)+r*A;
for n=1:(length(t)-1)
V(2:N+1,n+1)=M\V(2:N+1,n);
end;
%V
[xx,tt]=meshgrid(x,t);
subplot(2,2,1)
surf(xx,tt,V’)
xlabel(’x’,’Fontsize’,15)
ylabel(’t’,’Fontsize’,15)
title(’solutionapprochée’,’Fontsize’,15)
axis([0 100.4 01 ])
subplot(2,2,2)
contourf(xx,tt,V’,12)
xlabel(’x’,’Fontsize’,15)
ylabel(’t’,’Fontsize’,15)
title(’solutionapprochée’,’Fontsize’,15)
uu=u(x,t);
subplot(2,2,3)
surf(xx,tt,uu’)
xlabel(’x’,’Fontsize’,15)
ylabel(’t’,’Fontsize’,15)
title(’solutionexacte’,’Fontsize’,15)
axis([0 100.4 01 ])
subplot(2,2,4)
contourf(xx,tt,uu’,12)
xlabel(’x’,’Fontsize’,15)
ylabel(’t’,’Fontsize’,15)
title(’solutionexacte’,’Fontsize’,15)
✝
✆
EQC5.m
✞
☎
N=200;
h=1/(N+1);
x=0:h:1;
T=0.4;
tabdt=[0.02,0.01,0.005,0.002,0.001];
for i=1: length(tabdt)
dt=tabdt(i);
r=dt/h^2;
Précédent

- 177/188

Suivant