maillage adaptatif du pas de temps matlab
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

maillage adaptatif du pas de temps matlab



  1. #1
    meumeu59

    Red face maillage adaptatif du pas de temps matlab


    ------

    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

    -----
    Dernière modification par JPL ; 11/06/2015 à 22h57. Motif: Ajout de la balise Code (#) pour garder l'indentation et suppression de sauts de lignes désagréables

  2. #2
    Paraboloide_Hyperbolique

    Re : maillage adaptatif du pas de temps matlab

    Bonsoir,

    Ce problème peut avoir des origines multiples. Cela peut être notamment un pas de temps trop grand. Cela peut venir aussi du jacobien: vérifiez si celui-ci est numériquement inversible (voyez par exemple si son déterminant n'est pas trop proche de 0).

  3. #3
    meumeu59

    Re : maillage adaptatif du pas de temps matlab

    oui mais bon je ne peux pas vérifier le jacobien puisque je n ai pas de solution
    par contre ça vient forcément du pas de temps, c'est pour ça j'ai posté ce message, s'il ya quelqu'un qui sait faire un maillage adaptatif du pas de temps
    c'est à dire je fais tourner la méthode de newton en gérant en même temps le pas de temps, si j ai une solution (donc newton converge) je laisse mon pas de temps initial
    sinon je divise par deux jusqu a ce que ça marche
    mais je n ai pas réussi à faire ça

  4. #4
    Paraboloide_Hyperbolique

    Re : maillage adaptatif du pas de temps matlab

    Citation Envoyé par meumeu59 Voir le message
    oui mais bon je ne peux pas vérifier le jacobien puisque je n ai pas de solution
    ?? Pourtant je vois explicitement un jacobien dans votre code. Il suffit de faire
    Code:
    det(Jacobien_F)
    pour vérifier la chose.

    Toujours d'après votre code, si vous attrapez des "nan" ou "inf" dans U, cela provient forcément du la variable "W" donc de F ou du jacobien.

    D'ailleurs, il me semble qu'il y a quelque chose de bizarre avec la définition de F. Vous posez:
    Code:
    F=M*(U-U_old)/dt + A*U
    .
    Or, à ce stade du code (si je lis correctement votre code),
    Code:
    U = U_old
    , donc
    Code:
    F = A*U
    ne dépendrait pas du pas de temps.
    Dès lors, cela invaliderait l'expression de votre jacobien qui devrait être (toujours si je ne me trompe pas):
    Code:
    Jacobien_F = A+H
    , qui du coup ne dépendrait pas du pas temps non-plus.

    Il y a donc à mon avis un problème d'implémentation: il faudrait que U soit différent de U_old lors du calcul de F et de Jacobien_F. Car pour le moment il me semble que vous utilisez dans Newton-Raphson une fonction donnée et le jacobien d'une autre fonction. Il ne serait dès lors pas étonnant que l'algorithme ne converge pas; quel soit le pas de temps.

    Je vous suggère donc de régler ce problème avant d'essayer un pas de temps adaptatif.

  5. A voir en vidéo sur Futura
  6. #5
    meumeu59

    Re : maillage adaptatif du pas de temps matlab

    non y a pas de problème

    c'est une itération en temps: F= M*( U(n+1)-U(n) )/dt +......
    d'où la notation U-U_old, ou bien si vous voulez U-U_initial


    mon vrai problème c'est le maillage adaptatif du pas de temps

    ce que vous dites est vrai à la première itération seulement
    Dernière modification par meumeu59 ; 12/06/2015 à 22h20.

  7. #6
    Paraboloide_Hyperbolique

    Re : maillage adaptatif du pas de temps matlab

    Correct, je me suis donc bien trompé.

    Je pense que vous devriez tout de même vérifier le jacobien.

Discussions similaires

  1. Filtre adaptatif pour modéliser un bruit
    Par NicoEnac dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 17/09/2014, 15h55
  2. Régulateur auto-adaptatif
    Par invite741bebad dans le forum Électronique
    Réponses: 0
    Dernier message: 01/03/2012, 16h05
  3. comment faire le maillage du modèle masse-ressort sur Matlab???
    Par invitee31fe837 dans le forum Physique
    Réponses: 4
    Dernier message: 08/02/2011, 15h41
  4. Maillage adaptatif,ALE besoin d'aide !!!!!
    Par invitefded373b dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 05/05/2008, 19h11
  5. le temps dans matlab
    Par invite696186d1 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 20/06/2004, 11h40