把它分成实部和虚部是什么问题? scipy.integrate.quad需要集成的函数返回浮动(也称为实数)用于其使用的算法。
import scipy
from scipy.integrate import quad
def complex_quadrature(func, a, b, **kwargs):
def real_func(x):
return scipy.real(func(x))
def imag_func(x):
return scipy.imag(func(x))
real_integral = quad(real_func, a, b, **kwargs)
imag_integral = quad(imag_func, a, b, **kwargs)
return (real_integral[0] + 1j*imag_integral[0], real_integral[1:], imag_integral[1:])
例如。,
>>> complex_quadrature(lambda x: (scipy.exp(1j*x)), 0,scipy.pi/2)
((0.99999999999999989+0.99999999999999989j),
(1.1102230246251564e-14,),
(1.1102230246251564e-14,))
这是你期望舍入误差 – exp(ix)从0的整数,pi / 2是(1 / i)(e ^ i pi / 2-e ^ 0)= -i(i-1)= 1 〜(0.99999999999999989 0.99999999999999989j)。
并且为了记录,万一它不是所有人都清楚,整合是一个线性的功能