Numeerinen Integrointi Scipy.Integrate-Kirjastolla
Pyyhkäise näyttääksesi valikon
Numeerinen integrointi mahdollistaa käyrien alle jäävän pinta-alan laskemisen sekä sellaisten yhtälöiden ratkaisemisen, joilla ei ole analyyttistä ratkaisua. Tieteellisessä laskennassa kohtaat usein tarpeen arvioida määrättyjä integraaleja tai ratkaista tavallisia differentiaaliyhtälöitä (ODE), joissa tarkat ratkaisut ovat joko tuntemattomia tai liian monimutkaisia saatavaksi. scipy.integrate-moduuli SciPy-kirjastossa tarjoaa tehokkaat ja helppokäyttöiset työkalut näihin tehtäviin, mahdollistaen integroinnin ja ODE-yhtälöiden numeerisen ratkaisun vain muutamalla python-koodirivillä.
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()
Kun käytät scipy.integrate.quad-funktiota, se palauttaa sekä lasketun integraalin arvon että virhearvion. Yllä olevassa esimerkissä sin(x)-funktion integrointi välillä 0–π antaa tuloksen, joka on hyvin lähellä arvoa 2, mikä vastaa tarkkaa analyyttista ratkaisua. Tämä osoittaa numeerisen integrointirutiinin tarkkuuden ja luotettavuuden.
Tavallisille differentiaaliyhtälöille scipy.integrate.solve_ivp laskee ratkaisun määritellyllä välillä. Differentiaaliyhtälön esimerkissä yhtälö dy/dt = -2y alkuarvolla y(0) = 1 kuvaa eksponentiaalista vähenemistä. Ratkaisu osoittaa, kuinka y pienenee tasaisesti ajan myötä, ja tämän voi havainnollistaa yksinkertaisella kuvaajalla. Tulokset vastaavat odotettua analyyttista ratkaisua y(t) = exp(-2t).
1. Mitä funktiota käytetään määrättyyn integrointiin SciPyssa?
2. Mitä scipy.integrate.solve_ivp ratkaisee?
3. Miksi numeerinen integrointi on tärkeää tieteellisessä laskennassa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme