Équations différentielles en C++

Jan 03 2023
L'article suivant décrit l'une des méthodes les plus puissantes pour résoudre des équations différentielles. Je vais résoudre des équations différentielles simples du premier et du second ordre en utilisant la méthode Runge Kutta dont j'ai également parlé ici.
Google.com

L'article suivant décrit l'une des méthodes les plus puissantes pour résoudre des équations différentielles .
Je vais résoudre des équations différentielles simples du premier et du second ordre en utilisant la méthode Runge Kutta dont j'ai également parlé ici .

Vous trouverez le code source de cet article sur mon GitHub .

Méthode de Runge-Kutta

La méthode suivante est la méthode la plus souvent utilisée pour résoudre des équations différentielles ordinaires. La méthode Runge-Kutta surpasse les autres méthodes numériques car elle est facile à mettre en œuvre, précise et souvent stable, et peut être résolue en fournissant une valeur initiale.

Il existe des méthodes d'ordre n, qui spécifient combien de fois nous calculons la fonction f (t, x(t)). Cependant, la méthode la plus populaire et également décrite ci-dessous est la méthode du quatrième ordre .

Comme vous pouvez le voir, à chaque pas de temps, nous devons trouver les coefficients k1, k2, k3 et k4.

La partie la plus importante de la résolution d'équations différentielles à l'aide de la méthode Runge-Kutta est de comprendre comment déployer les équations.
Je peux illustrer un pseudo-code qui, je l'espère, vous donnera une certaine intuition.
Comme vous pouvez le voir, il existe deux équations différentielles du premier ordre. Maintenant, vous devez également créer deux fonctions qui renvoient le côté GAUCHE de l'équation différentielle.

Ici, nous résolvons l'oscillateur de Van der Pol.

Illustration de la résolution d'une équation différentielle (par l'auteur)

La solution peut être représentée comme suit,

Solution de l'oscillateur Van der Pol (par l'auteur)

Pour l' équation différentielle du second ordre , vous devez également ajouter l'équation, où vous résolvez la dérivée du premier ordre

Illustration de la résolution d'une équation différentielle (par l'auteur)

La solution peut être représentée comme suit,

Solution de l'équation différentielle du second ordre (par l'auteur)

Le traçage nécessite d'incorporer le fichier d'en-tête qui doit être dans le même dossier que votre cpp (un fichier que vous pouvez cloner à partir de mon référentiel).
Votre programme peut être compilé comme suit,

//compile
g++ my_prog.cpp -o my_prog -I/usr/include/python3.8 -lpython3.8//

 //run
./my_prog

//folder tree

├── my_prog
├── my_prog.cpp
├── matplotlibcpp.h