[Calcul scientifique / technique par Python] Solution numérique d'équations différentielles ordinaires du premier ordre, problème de valeur initiale, calcul numérique

Utilisation de numpy, sympy, scipy Résolvez l'équation différentielle ordinaire du premier ordre dans les conditions initiales.

problème: $ x '(t) + k x (t) = 0 $, condition initiale $ x (0) = 1 $, (k = 1 est un paramètre)

La solution exacte est $ x (t) = e ^ {-t} $.

from sympy import *      #Imoprt toutes les fonctionnalités de la bibliothèque sympy
import numpy as np      #import numpy avec le nom np
from scipy.integrate import odeint 
import matplotlib.pyplot as plt

"""
exemple:Équation différentielle ordinaire du premier ordre: 
dx/dt = -kx x(0)=Résoudre sous la condition initiale de 1
"""

x=Symbol('x')                  #lettre'x'Est défini comme la variable x
y=Symbol('y')                  #lettre'y'Est défini comme la variable y
t=Symbol('t')                  #lettre't'Est défini comme la variable y
k=Symbol('k')

def func(x, t, k): # dx/Définir dt comme une fonction
    dxdt=-k*x
    return dxdt

k = 1.0 #Définir une valeur pour un paramètre
x0 = 1.0 #Conditions initiales

t=np.linspace(0,10,101) #Réglage du pas de temps de l'intégration:Divisez 0 à 10 en 101 parties égales

sol=odeint(func, x0, t, args=(k,)) #Résolvez l'équation différentielle numériquement. Stockez les résultats dans une liste appelée sol.

#Solution exacte pour comparaison(e^-t)Liste excact_Mettre à sol
exact_sol=[]
tt=np.linspace(0,10,101)
for i in tt:
    exact_sol.append(exp(-1.0*float(i)))
#

    
#Visualisation

plt.plot(t, sol, linewidth=1,label='numerical') #Solution numérique
plt.plot(tt, exact_sol, color='red',linewidth=1, label='exact') #Vraie solution

plt.xlabel('t', fontsize=18)
plt.ylabel('x', fontsize=18,rotation='horizontal')
plt.legend(loc='upper right')
plt.show()

résultat

t.png

Recommended Posts

[Calcul scientifique / technique par Python] Solution numérique d'équations différentielles ordinaires du premier ordre, problème de valeur initiale, calcul numérique
[Calcul scientifique / technique par Python] Solution numérique d'une équation différentielle ordinaire du second ordre, problème de valeur initiale, calcul numérique
[Calcul scientifique / technique par Python] Résolution du problème de la valeur aux limites des équations différentielles ordinaires au format matriciel, calcul numérique
[Calcul scientifique / technique par Python] Résolution de l'équation différentielle ordinaire du second ordre par la méthode Numerov, calcul numérique
[Calcul scientifique / technique par Python] Solution numérique de l'équation de Laplace-Poisson bidimensionnelle pour la position électrostatique par la méthode Jacobi, équation aux dérivées partielles elliptiques, problème des valeurs aux limites
Résolution du problème de la valeur initiale des équations différentielles ordinaires avec JModelica
[Calcul scientifique / technique par Python] Solution numérique d'un problème d'oscillateur harmonique unidimensionnel par vitesse Méthode de Berle
[Calcul scientifique / technique par Python] Solution numérique du problème des valeurs propres de la matrice par multiplication de puissance, algèbre linéaire numérique
[Calcul scientifique / technique par Python] Solution numérique d'équations d'ondes unidimensionnelles et bidimensionnelles par méthode FTCS (méthode explicite), équations aux dérivées partielles bi-courbes
[Calcul scientifique / technique par Python] Résolution d'équations différentielles ordinaires, formules mathématiques, sympy
[Calcul scientifique / technique par Python] Comparaison des vitesses de convergence de la méthode SOR, de la méthode Gauss-Seidel et de la méthode Jacobi pour l'équation de Laplace, équation différentielle partielle, problème des valeurs aux limites
[Calcul scientifique / technique par Python] Résolution d'équations linéaires simultanées, calcul numérique, numpy
[Calcul scientifique / technique par Python] Marche aléatoire 2D (problème de marche ivre), calcul numérique
[Calcul scientifique / technique par Python] Calcul de somme, calcul numérique
L'histoire du calcul numérique des équations différentielles avec TensorFlow 2.0
[Calcul scientifique / technique par Python] Solution numérique d'une équation de conduction thermique non stationnaire unidimensionnelle par méthode Crank-Nicholson (méthode implicite) et méthode FTCS (méthode de solution positive)
[Calcul scientifique / technique par Python] Solution analytique sympa pour résoudre des équations
[Calcul scientifique / technique par Python] Liste des matrices qui apparaissent dans Hinpan en algèbre linéaire numérique
[Calcul scientifique / technique par Python] Fonctionnement de base du tableau, numpy
[Calcul scientifique / technique par Python] Intégration Monte Carlo, calcul numérique, numpy
[Calcul scientifique / technique par Python] Intégration numérique, loi trapézoïdale / Simpson, calcul numérique, scipy
Analyse numérique des équations différentielles ordinaires avec l'odeint et l'ode de Scipy
[Calcul scientifique / technique par Python] différentiel (biaisé), formule mathématique, sympy
Trouvez la solution numérique de l'équation différentielle ordinaire du second ordre avec scipy
Résoudre des équations différentielles normales en Python
[Calcul scientifique / technique par Python] Dérivation de solutions analytiques pour équations quadratiques et cubiques, formules, sympy
[Calcul scientifique / technique par Python] Ajustement par fonction non linéaire, équation d'état, scipy
[Calcul scientifique / technique par Python] Calcul du produit de la matrice par l'opérateur @, python3.5 ou supérieur, numpy
[Calcul scientifique / technique par Python] Résolution de problèmes de valeurs propres (généralisés) en utilisant numpy / scipy, en utilisant des bibliothèques
[Calcul scientifique / technique par Python] Dessin d'animation de mouvement parabolique avec locus, matplotlib
[Calcul scientifique / technique par Python] Dessin de surface courbe 3D, surface, fil de fer, visualisation, matplotlib
[Calcul scientifique / technique par Python] Calcul de matrice inverse, numpy
[Calcul scientifique / technique par Python] histogramme, visualisation, matplotlib
Calcul des indicateurs techniques par TA-Lib et pandas
Problème de valeur initiale de NMF (Décomposition en facteurs matriciels non négatifs)
[Calcul scientifique / technique par Python] Tracé, visualisation, matplotlib de données 2D lues à partir d'un fichier
[Calcul scientifique / technique par Python] Dessin, visualisation, matplotlib de lignes de contour 2D (couleur), etc.
[Python] Calcul numérique d'une équation de diffusion thermique bidimensionnelle par méthode ADI (méthode implicite de direction alternative)