Numerisk Integration med scipy.integrate
Stryg for at vise menuen
Numerisk integration muliggør beregning af arealet under kurver og løsning af ligninger, der ikke har analytiske løsninger. Inden for videnskabelig databehandling opstår ofte behovet for at evaluere bestemte integraler eller løse ordinære differentialligninger (ODE'er), hvor eksakte løsninger enten er ukendte eller for komplekse at opnå. scipy.integrate-modulet i SciPy tilbyder effektive og brugervenlige værktøjer til disse opgaver, hvilket gør det muligt at udføre integration og løse ODE'er numerisk med blot få linjer python-kode.
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 bruger scipy.integrate.quad, returnerer funktionen både den beregnede værdi af integralet og et estimat af fejlen. I eksemplet ovenfor giver integrationen af sin(x) fra 0 til π et resultat meget tæt på 2, hvilket stemmer overens med det præcise analytiske resultat. Dette demonstrerer både nøjagtigheden og pålideligheden af den numeriske integrationsrutine.
For ordinære differentialligninger beregner scipy.integrate.solve_ivp løsningen over et specificeret interval. I ODE-eksemplet beskriver ligningen dy/dt = -2y med begyndelsesbetingelsen y(0) = 1 en eksponentiel henfald. Løsningen viser, hvordan y falder jævnt over tid, og dette kan visualiseres med en simpel graf. Outputtet stemmer overens med den forventede analytiske løsning y(t) = exp(-2t).
1. Hvilken funktion bruges til bestemt integration i SciPy?
2. Hvad løser scipy.integrate.solve_ivp?
3. Hvorfor er numerisk integration vigtig i videnskabelig databehandling?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat