Numerieke Integratie met scipy.integrate
Veeg om het menu te tonen
Numerieke integratie maakt het mogelijk om de oppervlakte onder krommen te berekenen en vergelijkingen op te lossen waarvoor geen analytische oplossingen bestaan. In wetenschappelijke computing komt het vaak voor dat je bepaalde integralen moet evalueren of gewone differentiaalvergelijkingen (ODE's) moet oplossen waarbij exacte oplossingen onbekend zijn of te complex om te verkrijgen. De scipy.integrate module in SciPy biedt krachtige en gebruiksvriendelijke hulpmiddelen voor deze taken, waardoor integratie en het oplossen van ODE's numeriek mogelijk wordt met slechts enkele regels python-code.
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()
Wanneer je scipy.integrate.quad gebruikt, geeft de functie zowel de berekende waarde van het integraal als een schatting van de fout terug. In het bovenstaande voorbeeld levert het integreren van sin(x) van 0 tot π een resultaat op dat zeer dicht bij 2 ligt, wat overeenkomt met het exacte analytische resultaat. Dit toont zowel de nauwkeurigheid als de betrouwbaarheid van de numerieke integratieroutine aan.
Voor gewone differentiaalvergelijkingen berekent scipy.integrate.solve_ivp de oplossing over een gespecificeerd interval. In het ODE-voorbeeld beschrijft de vergelijking dy/dt = -2y met de beginvoorwaarde y(0) = 1 exponentieel verval. De oplossing laat zien hoe y geleidelijk afneemt in de tijd, en je kunt dit visualiseren met een eenvoudige grafiek. De uitvoer komt overeen met de verwachte analytische oplossing y(t) = exp(-2t).
1. Welke functie wordt gebruikt voor bepaalde integratie in SciPy?
2. Wat lost scipy.integrate.solve_ivp op?
3. Waarom is numerieke integratie belangrijk in wetenschappelijk rekenen?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.