Bonsoir
mes amis j'essaye d'implimenter la methode splitting pour resoudre une edp u_t = D u_xx+a*u pour tester cette methode et de le comprendre j'ai créer un code sous matlab mais je trouve une err tres grand
pouvez vous voir mon code ou est l'eerreur
% solves the heat equation u_t = D u_xx+a*u on [0,L] with initial data u_0 =
% Nmax/4
t_i=0;
t_f=1;
m=100;
n=100;
D=0.4;
a=4;
Nmax=1;
L = 1;
dx = L/m;
dt = (t_f-t_i)/n;
lambda=D*dt/dx^2;
T=zeros(m+1,n+1);
K=zeros(m+1,n+1);
Z=zeros(m+1,n+1);
err=zeros(m+1,n+1);
x=0:dx:L;
t=t_i:dt:t_f;
u0 = Nmax/4;
T(:,1)=u0;
K(:,1)=u0;%initial value
for j=1:n
for i=2:m
T(i,j+1)=T(i,j)+lambda*(T(i+1, j)-2*T(i,j)+T(i-1,j)+dt*a*T(i,j));
end
end
for j=1:n
for i=2:m
K(i,j+1)=K(i,j)+lambda*(K(i+1, j)-2*K(i,j)+K(i-1,j));
Z(i,j+1)=K(i,j+1)+dt*K(i,j)*a;
end
end
err=norm(Z-K,inf)
-----