Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

la methode de splitting (lie-trotter)

Posté par
fahida2015
23-07-15 à 23:56

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)

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !