Numerische Integration mit Scipy.Integrate
Swipe um das Menü anzuzeigen
Numerische Integration ermöglicht die Berechnung von Flächen unter Kurven und das Lösen von Gleichungen, für die keine analytischen Lösungen existieren. In der wissenschaftlichen Datenverarbeitung tritt häufig die Notwendigkeit auf, bestimmte Integrale zu berechnen oder gewöhnliche Differentialgleichungen (ODEs) zu lösen, bei denen exakte Lösungen entweder unbekannt oder zu komplex sind. Das Modul scipy.integrate in SciPy stellt leistungsfähige und einfach zu verwendende Werkzeuge für diese Aufgaben bereit und ermöglicht es, Integrationen und das Lösen von ODEs numerisch mit nur wenigen Zeilen python-Code durchzuführen.
1234567891011from scipy import integrate import numpy as np # Define the function to integrate def f(x): return np.sin(x) # Compute the definite integral of sin(x) from 0 to pi result, error = integrate.quad(f, 0, np.pi) print("Integral result:", result) print("Estimated error:", error)
1234567891011121314151617181920212223from scipy.integrate import solve_ivp import numpy as np import matplotlib.pyplot as plt # Define the ODE: dy/dt = -2y def dydt(t, y): return -2 * y # Initial condition y0 = [1] # Time span for the solution t_span = (0, 5) # Solve the ODE solution = solve_ivp(dydt, t_span, y0, t_eval=np.linspace(0, 5, 100)) # Plot the solution plt.plot(solution.t, solution.y[0]) plt.xlabel("t") plt.ylabel("y(t)") plt.title("Solution of dy/dt = -2y with y(0) = 1") plt.show()
Bei der Verwendung von scipy.integrate.quad gibt die Funktion sowohl den berechneten Wert des Integrals als auch eine Schätzung des Fehlers zurück. Im obigen Beispiel ergibt die Integration von sin(x) von 0 bis π ein Ergebnis, das sehr nahe bei 2 liegt und somit mit dem exakten analytischen Ergebnis übereinstimmt. Dies zeigt sowohl die Genauigkeit als auch die Zuverlässigkeit der numerischen Integrationsroutine.
Für gewöhnliche Differentialgleichungen berechnet scipy.integrate.solve_ivp die Lösung über ein angegebenes Intervall. Im ODE-Beispiel beschreibt die Gleichung dy/dt = -2y mit der Anfangsbedingung y(0) = 1 einen exponentiellen Zerfall. Die Lösung zeigt, wie y im Laufe der Zeit gleichmäßig abnimmt, und dies lässt sich mit einem einfachen Plot visualisieren. Das Ergebnis stimmt mit der erwarteten analytischen Lösung y(t) = exp(-2t) überein.
1. Welche Funktion wird in SciPy für bestimmte Integrationen verwendet?
2. Was löst scipy.integrate.solve_ivp?
3. Warum ist numerische Integration in der wissenschaftlichen Datenverarbeitung wichtig?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen