-
Euler implicite
Bonsoir,
Je veux programmer la méthode d Euler implicite en dimension 2.
U' =AU
U(0)=(u1,u2)
(I+hA)Un+1=Un
Un+1=(I+hA)-1 Un
Est ce que je dois créer une fonction qui inverse la matrice (I+hA) ou bien il y a d autre méthode plus simple? Pouvez vous me donner des étapes à a suivre ? (je suis débutant en programmation)
Cordialement
-
Vous pouvez inverser la matrice (I+hA). Il y a des méthodes toutes faites pour cela dans scipy: comme par exemple la méthode inv :
https://docs.scipy.org/doc/numpy/ref...inalg.inv.html
Après en pratique, on inverse rarement la matrice. Car si sa dimension est grande le coût de l'inversion est énorme. D'autant plus si A dépend du temps, ce qui vous oblige à recalculer cette inverse à chaque itération. On applique donc plutot une methode itérative (type gradient conjugué) pour trouver la solution Un+1 du système (I+hA)Un+1=Un.
Vous pouvez très bien démarrer par le calcul d'un inverse brutal. Tant que votre maillage est tout petit. Ca vous permettera déjà de pouvoir écrire du code, et de tester des choses. Le reste viendra en évolution de ce premier code.
-
euler implicite