Numerisk Integration med scipy.integrate
Svep för att visa menyn
Numerisk integration möjliggör beräkning av arean under kurvor och lösning av ekvationer som saknar analytiska lösningar. Inom vetenskapliga beräkningar uppstår ofta behovet av att utvärdera bestämda integraler eller lösa ordinära differentialekvationer (ODE) där exakta lösningar antingen är okända eller för komplexa att erhålla. Modulen scipy.integrate i SciPy tillhandahåller kraftfulla och lättanvända verktyg för dessa uppgifter, vilket gör det möjligt att utföra integration och lösa ODE:er numeriskt med bara några rader python-kod.
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()
När du använder scipy.integrate.quad returnerar funktionen både det beräknade värdet av integralen och en uppskattning av felet. I exemplet ovan ger integrering av sin(x) från 0 till π ett resultat mycket nära 2, vilket stämmer överens med det exakta analytiska resultatet. Detta visar både noggrannheten och tillförlitligheten hos den numeriska integrationsrutinen.
För ordinära differentialekvationer beräknar scipy.integrate.solve_ivp lösningen över ett specificerat intervall. I ODE-exemplet beskriver ekvationen dy/dt = -2y med begynnelsevillkoret y(0) = 1 exponentiell avklingning. Lösningen visar hur y minskar jämnt över tid, och du kan visualisera detta med en enkel graf. Utdata stämmer överens med den förväntade analytiska lösningen y(t) = exp(-2t).
1. Vilken funktion används för bestämd integration i SciPy?
2. Vad löser scipy.integrate.solve_ivp?
3. Varför är numerisk integration viktig inom vetenskaplig databehandling?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal