Partage
  • Partager sur Facebook
  • Partager sur Twitter

Analyse numérique: EDO

Adams-Bashforth et Equations différentielles raides

    4 novembre 2016 à 14:49:33

    Bonjour à tous, 

    Je lis en ce moment un cours d'analyse numérique et j'ai plusieurs questions sur les équations différentielles ordinaires (du premier ordre pour commencer).

    - Tout d'abord, je ne comprends pas bien le concept d'équation différentielles raides. Si j'ai bien compris, c'est lorsqu'on a un système de plusieurs équations différentielles et qu'une croit très lentement et l'autre très rapidement. Par exemple, une croit de manière linéaire et l'autre décroit de façon exponentielle ( \(exp{-x}\) ). J'ai vu la définition formelle sur Wikipedia mais j'aimerais une interprétation plus simple. 

    - Un autre concept que j'ai pas bien compris c'est l'approche en plusieurs étapes d'éq. linéaires. Plus particulièrement, dans le cours ils développement les méthodes de Adams-Moulton et d'Adams-Bashforth. Ils présentent, sans les démontrer, ces deux formules (1. Adams-Bashforth, 2. Adams-Moulton) :

    \[{x^p}({t_{k + 1}}) = x({t_k}) + \frac{h}{{24}}(55f(x({t_k}),{t_k}) - 59f(x({t_{k - 1}}),{t_{k - 1}}) + 37f(x({t_{k - 2}}),{t_{k - 2}}) - 9f(x({t_{k - 3}}),{t_{k - 3}})\]

    \[x({t_{k + 1}}) = x({t_k}) + \frac{h}{{24}}(9f({x^p}({t_{k + 1}}),{t_{k + 1}}) + 19f(x({t_k}),{t_k}) - 5f(x({t_{k - 1}}),{t_{k - 1}}) + 2f(x({t_{k - 2}}),{t_{k - 2}})\]

    Avec, \(\frac{{dx}}{{dt}} = f(x,t)\) . 
    Je vois pas spécialement comment ça marche parce que ça veut dire qu'on a besoin d'au moins deux points connus ? (cf. k-2) 

    Imaginons je veille résoudre une équation (bidon) avec cette méthode du genre \(\frac{{dx}}{{dt}} =  - 2x(t)\) et que je connais uniquement la condition initiale (peut importe, disons x(0) = 1), les infos ne suffisent pas et je dois en rajouter ? 

    Merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      5 novembre 2016 à 14:53:26

      1- je ne pense pas qu'il y ait de définition générale simple pour dire que une EDO est raide . La raideur va s'étudier un peu   "au cas par cas"

       qu'entends tu par "interprétation plus simple" par rapport au lien de wiki quand  il  est dit très qualitativement "La raideur vient donc d'une différence d'échelle entre deux phénomènes dynamiques : des phénomènes à évolution « rapide » vont tendre « lentement » vers une position d'équilibre"

      On peut aussi imaginer qu'un même phénomène se traduise par  un changement de comportement selon l'échelle de temps.

      On est donc confronter  à un problème de choix de pas de temps adapté à la dynamique du phénomène.

      Ce sont des définitions plutôt  assez "simples" mais restant très qualitatives.

      Plus mathématiquement,   une EDO raide va  se traduire par la nécessité d'utiliser des méthodes plus stables numériquement au dépend d'une lenteur de calcul, voire de la précision ( méthode nécessairement  implicite , pas de calcul  réduit, pas variable, multipas etc...). 

      2 - pour Adams multipas, les formules que tu indiques sont à 4 pas de temps, il y en a de plus simples avec 2 ou 3 pas. Dans tous les cas, (explicite pour la première, implicite pour la seconde), on ne peut, comme tu le fais remarquer, démarrer directement le calcul par cette méthode et il faut utiliser une autre méthode  pour initialiser les premiers points (Runge-Kutta ou autre )

      Pour la démonstration, on part de la forme intégrale \(x_{k+1} -x_k=\int_k ^{t_{k+1}} f(t,x)dt\), l'intervalle de temps étant décomposé en fonction du nombre de pas. On remplace \(f\) par son approximation polynomiale de Lagrange passant par les points et on intègre...ce qui nous donne un calcul assez pénible pour les coefficients 4 pas ...c'est sans doute pourquoi il faut bien chercher sur le Net pour y trouver le calcul complet dans ce cas !:euh:

      -
      Edité par Sennacherib 5 novembre 2016 à 23:13:47

      • Partager sur Facebook
      • Partager sur Twitter
      tout ce qui est simple est faux, tout ce qui est compliqué est inutilisable
        7 novembre 2016 à 15:29:04

        Merci beaucoup Sennacherib :)

        Vu que Adams utilise une partie de calcul implicite pour le corrector (l'autre est explicite), on peut en déduire que cette méthode va fonctionne pour des EDO raides ? J'avoue que je pense Implicite = OK pour EDO raides du coup je ne sais pas si ça fonctionne.

        Aussi, pour l'initialisation des points: est-ce que Runge-Kutta est meilleur qu'Euler Backward ? J'ai personnellement utilisé la deuxième option mais il est vrai que mes calculs avec RK sont d'une meilleure précision.

        • Partager sur Facebook
        • Partager sur Twitter
          10 novembre 2016 à 11:41:11

          je pense qu'il est difficile de résumer en quelques lignes d'un post le choix d'un schéma numérique alors que des bouquins entiers s'écrivent sur la question ! A fortiori pour les équations dites raides  

          Un meilleur schéma n'existe pas dans l'absolu et doit être   choisi en fonction du problème  . Dans un cours d'analyse numérique sur les équations \(x'(t)=f(t, x(t) )\), ( je ne sais pas ce que dit le cours que tu lis), on doit normalement trouver des critères  théoriques généraux ( un simple exemple : lemme de Gronwall )   pour juger de la consistance, la stabilité, la précision, le vitesse de convergence d'un schéma  . Le choix du schéma  sera souvent un compromis nécessitant une étude préalable du problème, où le pas de temps sera au cœur  de ce compromis. 

          On peut donner un exemple certes académique et un peu trivial  pour montrer qu'un mauvais pas de temps peut conduire à "n'importe quoi" y compris  dans un schéma implicite.

          Soient les équations basiques \(x'=-x, \; x(0)=1\)  et \( x'=x , \;x(0)=1\), solution analytique \(e^{-t}\) et \(e^t\) respectivement.

          regardons pour chacune un  schéma de Euler explicite et implicite  pour une évaluation sur un temps \(T\) avec un pas \(h\) fixe  donc \(nh=T\)  

           Pour \(x'=-x, \; x(0)=1\) , 

          schéma explicite \(x_{k+1}= x_k- hx_k\) conduit à  \(x_k=(1-h)^k\)

          schéma implicite \(x_{k+1}= x_k- hx_{k+1}\) conduit à : \(x_k=\dfrac{1}{(1+h)^k}\)

          on voit que le schéma explicite nécessite un petit pas pour  approcher "raisonnablement"   de la solution analytique. Si on suppose un calcul sur un temps \(T\) très important,   le résultat n' a alors  plus de sens si \(h>1\) alors que un grand pas conserve une solution "raisonnablement aceptable"  de la solution réelle en schéma implicite. On voit donc que la durée de la fenêtre temporelle peut largement influencer le choix du schéma optimal.

          Considérons maintenant  Pour \(x'= x, \; x(0)=1\) 

          schéma explicite \(x_{k+1}= x_k+ hx_k\) conduit à  \(x_k=(1+h)^k\)

          schéma implicite \(x_{k+1}= x_k- hx_{k+1}\) conduit à : \(x_k=\dfrac{1}{(1-h)^k}\)

          dans ce cas, on voit que la solution explicite reste "acceptable" même pour un grand pas, alors que la solution implicite est oscillante.  

          A partir de là je crois qu'il n'y a pas de réponse totalement tranché à tes questions.

            Pour une équation raide  , si le schéma implicite s'impose toujours, dire lequel sera meilleur ou simplement suffisant ne peut se faire  que en connaissant l'équation à étudier  . Un schéma Euler implicite peut parfois suffire   !  Je me répète mais le choix pratique c'est toujours un compromis consistance,stabilité , précision, temps de calcul.

          Si on doit utiliser  un schéma prédicteur - correcteur, avec prédicteur explicite et correcteur implicite, on considère en général que la stabilité du prédicteur n'influe pas sur la stabilité du schéma . Il est difficile d'en dire plus sans connaitre la nature du problème raide...qui peut être très variable en raideur si je peux dire. 

           Ensuite lorsque tu compares RK à Euler Backward , quel RK? un RK4 implicite? , on peut penser alors que c'est a priori un  meilleur "initiateur" d'un schéma  implicite  multi-pas. La question est  de savoir si c'est nécessaire et là encore je dirai que c'est difficile de répondre dans l'absolu hors contexte.

          -
          Edité par Sennacherib 12 novembre 2016 à 12:24:40

          • Partager sur Facebook
          • Partager sur Twitter
          tout ce qui est simple est faux, tout ce qui est compliqué est inutilisable
            4 mars 2019 à 9:30:44

            Bonjour, SVP peut-on trouver un cours d'analyse numérique sur openclassroom. Si oui SVP envoyez moi le lien pour que je puisse télécharger. Merci
            • Partager sur Facebook
            • Partager sur Twitter
              4 mars 2019 à 17:19:33

              à ma connaissance, il n'y a aucun cours d'analyse numérique au sens  des méthodes de résolution  d'équations différentielles  ou des  méthodes matricielles de résolution des grands systèmes linéaires.   Tout ce qui est cours de base en maths/physique est de façon générale extrêmement limité sur le site.

              -
              Edité par Sennacherib 4 mars 2019 à 17:20:36

              • Partager sur Facebook
              • Partager sur Twitter
              tout ce qui est simple est faux, tout ce qui est compliqué est inutilisable

              Analyse numérique: EDO

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown