IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Question sur la résolution de l'équation de POISSON


Sujet :

Mathématiques

  1. #21
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Contrairement à toi, je pense que ce qui est le plus "important", ce n'est pas l'équation 1., mais les équations 2. et 3. . C'est pourquoi je te laisse calculer la divergence de Ln et Lp à partir des équations 4. et 5., puis l'introduire dans les équations 2. et 3.
    C'était effectivement ma première idée mais voici ce qui se passe quand on calcule la divergence de Ln par exemple :

    div Ln = Dn.Laplacien(n) - un.[n.Laplacien V + grad(n).grad(V)]

    - Le premier terme du membre de droite ne pose donc pas de problème puisqu'on connaît initialement n.
    - Le Laplacien de V s'obtient à l'aide de l'équation de Poisson (1).
    - Par contre, je ne peux rien faire du dernier terme qui contient un grad(V) ... à moins de résoudre au préalable l'équation de Poisson !!! C'est en ce sens que je pense que l'équation (1) est la plus importante, car, si je ne la résous pas en première, je ne peux résoudre (2) et (3) !

    Il y a peut-être quelque chose qui m'échappe (?).

  2. #22
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    si je ne la résous pas en première, je ne peux résoudre (2) et (3)
    Non! Tu sembles ne pas avoir compris comment fonctionnent les méthodes d'intégration des équations différentielles: la résolution de l'équation de Poisson en V doit se trouver à l'intérieur du sous-programme qui calcule dn/dt et dp/dt en fonction de n et p, et non avant le début de l'intégration.

    Tes équations différentielles ressemblent à ceci (vérifie les signes):
    dn/dt = Dn.Laplacien(n) + un.n. [k + p(x,y,z,t) - n(x,y,z,t)]/e + un.grad(n).grad(V)
    dp/dt = Dp.Laplacien(p) + up.p. [k + p(x,y,z,t) - n(x,y,z,t)]/e + un.grad(p).grad(V)

    A chaque pas d'intégration, tu as n et p (conditions initiales ou résultat du pas précédent). Tu calcules Laplacien(n), Laplacien(p), grad(n), grad(p), V, grad(V) et enfin dn/dt et dp(dt).

    En outre, j'ai des doutes sur la stabilité de RK4 pour ce problème et je te conseille plutôt d'essayer avec "Euler implicite".
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  3. #23
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Non! Tu sembles ne pas avoir compris comment fonctionnent les méthodes d'intégration des équations différentielles: la résolution de l'équation de Poisson en V doit se trouver à l'intérieur du sous-programme qui calcule dn/dt et dp/dt en fonction de n et p, et non avant le début de l'intégration.
    Si, si, j'ai bien compris !!! Ce que je voulais dire c'est qu'on ne peut calculer n(t+dt) et p(t+dt) sans passer pas la résolution de l'équation de POISSON !!!!

    Cette résolution de l'équation Poisson, qui intervient à chaque pas temporel, est chronophage pour le CPU et c'est pourquoi cela nécessite une attention particulière. Tant que je ne sais pas le faire efficacement à t=0, je n'ai aucune chance de faire la résolution temporelle ...
    De plus, alors que la résolution temporelle ne nécessite que quelque points voisins (en temps), la résolution nécessite de considérer tous les points (spatiaux) de la structure (ce qui conduit à la résolution d'un système assez conséquent). Définitivement, cette étape est le plus "gros" morceau de ce problème !

    Mon problème est donc de trouver la meilleure méthode pour la résolution de l'équation de Poisson ... Cela signifie qu'elle doit converger quelle que soit la structure et donner un résultat en un temps raisonnable (typiquement < qq minutes sinon la résolution temporelle prendra des jours ...).
    Je n'arrive pas vraiment à faire le tri entre toutes les méthodes existantes. J'ai l'impression que les différences finies avec des cubes identiques peut s'envisager assez simplement mais cela risque de poser des problèmes dans les zones où grad(n), grad(p) ou grad(V) sont importants ... Que faire ?


    En outre, j'ai des doutes sur la stabilité de RK4 pour ce problème et je te conseille plutôt d'essayer avec "Euler implicite".
    Il me semble que cela n'est pas dramatique et peut se changer facilement a posteriori si besoin ... Mais merci pour la remarque, je vais donc partir avec cette méthode !

    J'espère que nous sommes maintenant d'accord sur le problème posé ?

  4. #24
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    donner un résultat en un temps raisonnable
    Comme la matrice du système ne change pas, tu peux la factoriser une fois pour toute par la méthode de Cholesky.
    Gauss-Seidel peut aussi être envisagé, en prenant chaque fois comme première approximation le résultat obtenu au pas précédent. Faut-il mémoriser la matrice ou la reconstruire à chaque résolution? C'est à voir.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #25
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Hello,

    Comme la matrice du système ne change pas, tu peux la factoriser une fois pour toute par la méthode de Cholesky.
    Ça me paraît être une bonne idée car on s'affranchit alors des inconvénients d'une méthode itérative (problèmes de convergence).
    Il y a bien sûr le problème du stockage de la matrice (à voir).
    Ce qui m'embête le plus c'est que la méthode de Cholesky ne s'applique qu'aux matrices symétriques définies positives. Dans mon cas, et à cause des conditions aux limites, il me semble que cela n'est plus le cas. Dois-je triturer la matrice initiale pour la rendre symétrique positive ?

    Gauss-Seidel peut aussi être envisagé
    Là aussi il y a le problème de la non-symétrie mais, d'après un message précédent, ca peut se tenter.

    Je vais explorer ces pistes ... Merci beaucoup !

    Par curiosité, si je veux prendre des mailles élémentaires de tailles différentes, puis-je adapter ces méthodes ou cela est totalement différent ?

  6. #26
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!

    Dois-je triturer la matrice initiale pour la rendre symétrique positive ?
    Si tu appliques correctement la méthode des différences finies (ou celle des éléments finis), la matrice est toujours symétrique positive.

    Il y a bien sûr le problème du stockage de la matrice
    Est-il nécessaire de la stocker? Si oui, comment?

    des mailles élémentaires de tailles différentes
    C'est possible, mais plus compliqué.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  7. #27
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    @Jean-Marc Blanc

    Merci pour cette discussion enrichissante ! Je crois que j'ai de quoi réellement commencer. Il me faut encore affiner certains points théoriques avant de me lancer dans le code mais je pense que cela ira ... enfin j'espère ! Sinon, A bientôt !!!

    Encore merci

    Fredchkek

  8. #28
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut information
    bonjour je travaille sur les element finis et j'ai un petit soucis au niveau de l'equation de la place quand je fais la formulation variationnelle et la solution approchée et tout quand je mett le probleme sous la forme Au=B je trouve sous matlab que la solution u est constante sachant que je travaille en 2 d et avec les element finis triangulaire et quand je calcul l inverse de A dans matlab je trouve que c constante est ce que c'est normal j'ai bien besoin de votre aide si vous avez un code matlab pour l equation de matlab en 2 Dim sachant que c 'est juste la premiere partie et je suis bloqué et je dois soutenir d'ici un mois aidez moi svp

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2012, 00h16
  2. Question sur la résolution d'écran pour iPhone
    Par cprdev dans le forum Développement iOS
    Réponses: 1
    Dernier message: 15/12/2010, 20h32
  3. Résolution de l'équation de Poisson
    Par mojaco dans le forum Fortran
    Réponses: 2
    Dernier message: 06/10/2008, 12h58
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo