Maillage adaptatif du pas de temps

Fermé
Meumeu62 Messages postés 1 Date d'inscription vendredi 12 juin 2015 Statut Membre Dernière intervention 12 juin 2015 - 12 juin 2015 à 12:37
Bonjour à tous

je me permets de vous écrire concernant la gestion du pas de temps

En fait je dois résoudre un système non linéaire sur matlab

j'applique la méthode de Newton Raphson:

En fait j'applique la méthode de cette façon:



Code:

Tmax=0.1;
dt=0.01;
TPS=floor(Tmax/dt);
tol=10^(-8);
U_old % condition initiale
% Methode de Newton
for j=1:TPS
U=U_old;
nbiter=0;
err=1;
while (err>tol)&(nbiter<100)
F=M*(U-U_old)/dt + A*U; % C'est mon F(U)=0;
Jacobien_F= M/dt+ A+ H; % c'est le Jacobien avec H=derivée_A *U
W=-Jacobien_F\F;
nbiter=nbiter+1;
U=U+W;
err=norm( M*(U-U_old)/dt + A*U ,inf );
end % while
U_old=U;
end % for TPS

mon code me sort des valeur de U egales à "NaN" ou 'inf"
J'aimerai savoir à quel moment dans mon programme je gère mes "NaN" et donc divisier le dt/2

Lorsque vous avez divisé le dt/2, à la fin vous avez multiplié par 2? vous avez aussi stocké le temps t=t+dt?

si quelqu'un connait comment faire pour gérer ce problème de "NaN" merci de m'aider ( des gens me disent qu'il faut jouer sur le pas de temps dt

si ça marche tu arrete sinon tu divise le pas dt par 2 et ainsi de suite)

Cordialement