SciPy – Integración

Scipy es el módulo de computación científica de Python que proporciona funciones integradas en muchas funciones matemáticas conocidas. El subpaquete scipy.integrate proporciona varias técnicas de integración, incluido un integrador de ecuaciones diferenciales ordinarias. 

Encontrar integración usando scipy.integrate

La integración numérica es el cálculo aproximado de una integral utilizando técnicas numéricas. Métodos para integrar la función objeto de función dado:

  • quad – Integración de propósito general
  • dblquad – Integración doble de propósito general
  • nquad – Integración n-fold de propósito general
  • fixed_quad – Cuadratura gaussiana, orden n
  • quadrature – Cuadratura gaussiana a tolerancia
  • Romberg – Integración de Romberg
  • trapz – regla trapezoidal
  • cumtrapz : regla trapezoidal para calcular integrales de forma acumulativa
  • simps – la regla de Simpson
  • romb – Integración Romberg
  • polyint – Integración polinomial analítica (NumPy)

(1) cuádruple:

La función quad se proporciona para integrar una función de una variable entre dos puntos. Los puntos pueden ser +infinito o -infinito para indicar límites infinitos.

Ejemplo:

Python3

from scipy.integrate import quad
  
def f(x):
  return 3.0*x*x + 1.0
  
I, err = quad(f, 0, 1)
print(I)
print(err)

Producción : 

2.0

2.220446049250313e-1 4

(2) dblquad:

Esto realiza la integración doble con 2 argumentos. 

Ejemplo:

Python3

from scipy.integrate import dblquad
  
area = dblquad(lambda x, y: x*y, 0, 0.5, 
               lambda x: 0, lambda x: 1-2*x)
  
print(area)

Producción : 

(0.010416666666666668, 4.101620128472366e-16)

(3) cuádruple :

Realiza la integración de n variables

Ejemplo:

Python3

from scipy.integrate import nquad
  
  
def f(x, y, z):
    return x*y*z
  
  
I = nquad(f, [[0, 1], [0, 5], [0, 5]])
print(I)

Producción : 

(78.12499999999999, 8.673617379884033e-13)

(4) quad_fijo:

Con la ayuda del método scipy.integrate.fixed_quad(), podemos obtener el cálculo de una integral definida utilizando la cuadratura gaussiana de orden fijo

Ejemplo:

Python3

# import scipy.integrate
from scipy import integrate
  
  
def func(x): return 3*x**3
  
  
# using scipy.integrate.fixed_quad() method
# n is the order of integration
gfg = integrate.fixed_quad(func, 1.0, 2.0, n=2)
  
print(gfg)

Producción:

(11.25, Ninguno)

(5) cuadratura:

Con la ayuda del método scipy.integrate.quadrature(), podemos obtener el cálculo de la integral definida utilizando la cuadratura gaussiana de tolerancia fija

Ejemplo:

Python3

# import scipy.integrate.
from scipy import integrate
  
def f(x): return 3*x**3
  
# using scipy.integrate.quadrature() method
g = integrate.quadrature(f, 0.0, 1.0)
  
print(g)

Producción:

(0.7500000000000001, 2.220446049250313e-16)

(6) romberg :

Con la ayuda del método scipy.integrate.romberg(), podemos obtener la integración de romberg de una función invocable desde el límite a hasta el b 

Ejemplo:

Python3

# import numpy and scipy.integrate 
import numpy as np 
from scipy import integrate 
  
f = lambda x: 3*(np.pi)*x**3 
  
# using scipy.integrate.romberg() 
g = integrate.romberg(f, 1, 2, show = True) 
  
print(g) 

Producción:

Integración de Romberg de <function vectorize1.<locals>.vfunc at 0x0000003C1E212790> de [1, 2]

Pasos StepSize Resultados

    1 1.000000 42.411501  

    2 0.500000 37.110063 35.342917  

    4 0.250000 35.784704 35.342917 35.342917  

El resultado final es 35.34291735288517 después de 5 evaluaciones de funciones.

35.34291735288517

(7) trampa:

La función numpy.trapz() se integra a lo largo del eje dado usando la regla trapezoidal compuesta.

Ref: función numpy.trapz() | Python

Python3

# Python program explaining 
# numpy.trapz() function 
  
# importing numpy as geek 
import numpy as np 
  
b = [2, 4] 
a = [6, 8] 
  
f = np.trapz(b, a) 
  
print(f) 

Producción:

6.0

(8) cumtraz:

Con la ayuda del método scipy.integrate.cumtrapz(), podemos obtener el valor integrado acumulativo de y(x) usando la regla trapezoidal compuesta.

Ejemplo:

Python3

# import numpy and scipy.integrate.cumtrapz
import numpy as np
from scipy import integrate
  
a = np.arange(0, 5)
b = np.arange(0, 5)
  
# using scipy.integrate.cumtrapz() method
f = integrate.cumtrapz(b, a)
  
print(f)

Producción:

[0.5 2. 4.5 8. ]

(9) simpáticos:

Con la ayuda del método scipy.integrate.simps(), podemos obtener la integración de y(x) usando muestras a lo largo del eje y la regla compuesta de Simpson.

Ejemplo:

Python3

# import numpy and scipy.integrate
import numpy as np
from scipy import integrate
  
a = np.arange(0, 5)
b = np.arange(0, 5)
  
# using scipy.integrate.simps() method
f = integrate.simps(b, a)
  
print(f)

Producción:

8.0

(10) rombo:

Con la ayuda del método scipy.integrate.romb(), podemos obtener la integración de romberg usando muestras de una función desde el límite a hasta el b 

Ejemplo:

Python3

# import numpy and scipy.integrate 
import numpy as np 
from scipy import integrate 
  
  
x = np.arange(0,5) 
  
# using scipy.integrate.romb() method 
f = integrate.romb(x) 
  
print(f) 

Producción:

8.0

(11) polinte:

numpy.polyint(p, m) : Evalúa la antiderivada de un polinomio con el orden especificado.

Ref: numpy.polyint() en Python

Python3

# Python code explaining 
# numpy.polyint() 
      
# importing libraries 
import numpy as np 
      
# Constructing polynomial 
p1 = np.poly1d([2,6]) 
p2 = np.poly1d([4,8]) 
      
a = np.polyint(p1, 1) 
b = np.polyint(p2, 2) 
  
print ("\n\nUsing polyint") 
print ("p1 anti-derivative of order = 2 : \n", a) 
print ("p2 anti-derivative of order = 2 : \n", b) 

Producción :

usando poliint

p1 antiderivada de orden = 2 :  

   2

1x + 6x

p2 antiderivada de orden = 2 :  

        3 2

0.6667x + 4x

Publicación traducida automáticamente

Artículo escrito por biswasarkadip y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *