python中使用scipy.integrate求积分、二重积分、三重积分
代码如下:
import numpy as np
from scipy.integrate import quad, tplquad, dblquad
# 积分
val1, err1 = quad(lambda x: np.sin(x), # 函数
0, # x下界0
np.pi # x上界pi,np.pi为正无穷
)
print('积分结果:', val1)
# 二重积分
val2, err2 = dblquad(lambda y, x: np.sin(x) * np.cos(y), # 函数
0, # x下界0
np.pi, # x上界pi
lambda x: x ** 2, # y下界x^2
lambda x: 2 * x) # y上界2*x
print('二重积分结果:', val2)
# 三重积分
val3, err3 = tplquad(lambda z, y, x: 1 / (np.sqrt(x + y ** 2 + z ** 3)), # 函数
0, # x下界0
1, # x上界1
lambda x: -x, # y下界-x
lambda x: x, # y上界x
lambda x, y: np.sin(x), # z下界sin(x)
lambda x, y: x + 2 * y) # z上界x+2*y
print('三重积分结果:', val3)
结果:
积分结果: 2.0
二重积分结果: -0.4989998520503062
三重积分结果: -0.05881880054964517