Integración Numérica con scipy.integrate
Desliza para mostrar el menú
La integración numérica permite calcular el área bajo curvas y resolver ecuaciones que no tienen soluciones analíticas. En la computación científica, a menudo surge la necesidad de evaluar integrales definidas o resolver ecuaciones diferenciales ordinarias (ODEs) donde las soluciones exactas son desconocidas o demasiado complejas de obtener. El módulo scipy.integrate en SciPy proporciona herramientas potentes y fáciles de usar para estas tareas, haciendo posible realizar integraciones y resolver ODEs numéricamente utilizando solo unas pocas líneas de código en python.
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()
Cuando se utiliza scipy.integrate.quad, la función devuelve tanto el valor calculado de la integral como una estimación del error. En el ejemplo anterior, al integrar sin(x) desde 0 hasta π se obtiene un resultado muy cercano a 2, que coincide con el resultado analítico exacto. Esto demuestra tanto la precisión como la fiabilidad del método de integración numérica.
Para ecuaciones diferenciales ordinarias, scipy.integrate.solve_ivp calcula la solución en un intervalo especificado. En el ejemplo de EDO, la ecuación dy/dt = -2y con la condición inicial y(0) = 1 describe un decaimiento exponencial. La solución muestra cómo y disminuye suavemente con el tiempo, y esto se puede visualizar con un gráfico sencillo. El resultado coincide con la solución analítica esperada y(t) = exp(-2t).
1. ¿Qué función se utiliza para la integración definida en SciPy?
2. ¿Qué resuelve scipy.integrate.solve_ivp?
3. ¿Por qué es importante la integración numérica en la computación científica?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla