[Wissenschaftlich-technische Berechnung mit Python] Numerische Lösung gewöhnlicher Differentialgleichungen erster Ordnung, Anfangswertproblem, numerische Berechnung

Mit numpy, sympy, scipy Lösen Sie die gewöhnliche Differentialgleichung erster Ordnung unter den Anfangsbedingungen.

Problem: $ x '(t) + k x (t) = 0 $, Anfangsbedingung $ x (0) = 1 $, (k = 1 ist ein Parameter)

Die genaue Lösung ist $ x (t) = e ^ {-t} $.

from sympy import *      #Imoprt alle Funktionen aus der Sympy-Bibliothek
import numpy as np      #import numpy mit dem Namen np
from scipy.integrate import odeint 
import matplotlib.pyplot as plt

"""
Beispiel:Gewöhnliche Differentialgleichung erster Ordnung: 
dx/dt = -kx x(0)=Löse unter der Anfangsbedingung 1
"""

x=Symbol('x')                  #Brief'x'Ist als die Variable x definiert
y=Symbol('y')                  #Brief'y'Ist als die Variable y definiert
t=Symbol('t')                  #Brief't'Ist als die Variable y definiert
k=Symbol('k')

def func(x, t, k): # dx/Definieren Sie dt als Funktion
    dxdt=-k*x
    return dxdt

k = 1.0 #Legen Sie einen Wert für einen Parameter fest
x0 = 1.0 #Anfangsbedingungen

t=np.linspace(0,10,101) #Zeitschritteinstellung der Integration:Teilen Sie 0 bis 10 in 101 gleiche Teile

sol=odeint(func, x0, t, args=(k,)) #Lösen Sie die Differentialgleichung numerisch. Speichern Sie die Ergebnisse in einer Liste namens sol.

#Genaue Lösung zum Vergleich(e^-t)Liste genau_Auf Sol setzen
exact_sol=[]
tt=np.linspace(0,10,101)
for i in tt:
    exact_sol.append(exp(-1.0*float(i)))
#

    
#Visualisierung

plt.plot(t, sol, linewidth=1,label='numerical') #Numerische Lösung
plt.plot(tt, exact_sol, color='red',linewidth=1, label='exact') #Wahre Lösung

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

Ergebnis

t.png

Recommended Posts

[Wissenschaftlich-technische Berechnung mit Python] Numerische Lösung gewöhnlicher Differentialgleichungen erster Ordnung, Anfangswertproblem, numerische Berechnung
[Wissenschaftlich-technische Berechnung mit Python] Numerische Lösung der gewöhnlichen Differentialgleichung zweiter Ordnung, Anfangswertproblem, numerische Berechnung
[Wissenschaftlich-technische Berechnung durch Python] Lösung des Randwertproblems gewöhnlicher Differentialgleichungen im Matrixformat, numerische Berechnung
[Wissenschaftlich-technische Berechnung mit Python] Lösen der gewöhnlichen Differentialgleichung zweiter Ordnung nach der Numerov-Methode, numerische Berechnung
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung der zweidimensionalen Laplace-Poisson-Gleichung für die elektrostatische Position nach der Jacobi-Methode, elliptische partielle Differentialgleichung, Randwertproblem
Lösung des Anfangswertproblems gewöhnlicher Differentialgleichungen mit JModelica
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Problems des eindimensionalen harmonischen Oszillators nach der Speed-Berle-Methode
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung des Eigenwertproblems der Matrix durch Potenzmultiplikation, numerische lineare Algebra
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung von 1-dimensionalen und 2-dimensionalen Wellengleichungen nach der FTCS-Methode (explizite Methode), doppelt gekrümmte partielle Differentialgleichungen
[Wissenschaftlich-technische Berechnung mit Python] Lösen gewöhnlicher Differentialgleichungen, mathematischer Formeln, Sympy
[Wissenschaftlich-technische Berechnung nach Python] Vergleich der Konvergenzgeschwindigkeiten der SOR-Methode, der Gauß-Seidel-Methode und der Jacobi-Methode für die Laplace-Gleichung, die partielle Differentialgleichung und das Randwertproblem
[Wissenschaftlich-technische Berechnung mit Python] Lösen simultaner linearer Gleichungen, numerische Berechnung, Numpy
[Wissenschaftlich-technische Berechnung mit Python] 2D-Random-Walk (Drunken-Walk-Problem), numerische Berechnung
[Wissenschaftlich-technische Berechnung mit Python] Summenberechnung, numerische Berechnung
Die Geschichte der numerischen Berechnung von Differentialgleichungen mit TensorFlow 2.0
[Wissenschaftlich-technische Berechnung nach Python] Numerische Lösung der eindimensionalen instationären Wärmeleitungsgleichung nach der Crank-Nicholson-Methode (implizite Methode) und der FTCS-Methode (positive Lösungsmethode), parabolische partielle Differentialgleichung
[Wissenschaftlich-technische Berechnung mit Python] Analytische Lösungssympathie zur Lösung von Gleichungen
[Wissenschaftlich-technische Berechnung mit Python] Liste der Matrizen, die in Hinpan in der numerischen linearen Algebra vorkommen
[Wissenschaftlich-technische Berechnung von Python] Grundlegende Operation des Arrays, numpy
[Wissenschaftlich-technische Berechnung mit Python] Monte-Carlo-Integration, numerische Berechnung, Numpy
[Wissenschaftlich-technische Berechnung nach Python] Numerische Integration, Trapezgesetz / Simpson-Gesetz, numerische Berechnung, scipy
Numerische Analyse gewöhnlicher Differentialgleichungen mit Scipys Odeint und Ode
[Wissenschaftlich-technische Berechnung nach Python] (voreingenommenes) Differential, mathematische Formel, Sympy
Finden Sie die numerische Lösung der gewöhnlichen Differentialgleichung zweiter Ordnung mit scipy
Lösen Sie normale Differentialgleichungen in Python
[Wissenschaftlich-technische Berechnung nach Python] Ableitung analytischer Lösungen für quadratische und kubische Gleichungen, mathematische Formeln, Sympy
[Wissenschaftlich-technische Berechnung von Python] Anpassung durch nichtlineare Funktion, Zustandsgleichung, scipy
[Wissenschaftlich-technische Berechnung mit Python] Berechnung des Matrixprodukts mit @ operator, python3.5 oder höher, numpy
[Wissenschaftlich-technische Berechnung mit Python] Lösen (verallgemeinerter) Eigenwertprobleme mit numpy / scipy mithilfe von Bibliotheken
[Wissenschaftlich-technische Berechnung von Python] Zeichnungsanimation der parabolischen Bewegung mit Locus, Matplotlib
[Wissenschaftlich-technische Berechnung von Python] Zeichnung von 3D-gekrümmter Oberfläche, Oberfläche, Drahtrahmen, Visualisierung, Matplotlib
[Wissenschaftlich-technische Berechnung mit Python] Inverse Matrixberechnung, numpy
[Wissenschaftlich-technische Berechnung mit Python] Histogramm, Visualisierung, Matplotlib
Berechnung der technischen Indikatoren durch TA-Lib und Pandas
Anfangswertproblem der NMF (nicht negative Matrixfaktorzerlegung)
[Wissenschaftlich-technische Berechnung mit Python] Plot, Visualisierung, Matplotlib von 2D-Daten, die aus einer Datei gelesen wurden
[Wissenschaftlich-technische Berechnung mit Python] Zeichnen, Visualisieren, Matplotlib von 2D-Konturlinien (Farbkonturen) usw.
[Python] Numerische Berechnung der zweidimensionalen Wärmediffusionsgleichung mit der ADI-Methode (implizite Methode mit alternativer Richtung)