一、单重积分
一般而言,使用求解微积分可以分为两大类:符号积分(即求出解析解)和数值积分(即求出数值解)。在计算机的处理当中,数值解往往更有意义。
q
u
a
d
quad
quad函数是
s
c
i
p
y
scipy
scipy 积分函数的主力。 数值积分有时称为正交积分,因此称为名称。 它通常是在
a
a
a 到
b
b
b 给定的固定范围内执行函数
f
(
x
)
f(x)
f(x) 的单个积分的默认选择,即
∫
a
b
f
(
x
)
d
x
\int_a^b {f(x)} \,{\rm d}x
∫abf(x)dx
举例:
from scipy import integrate
# 基本使用格式:integrate.quad(func,a,b)
# func是一个函数名,a是积分下限,b是积分上限
# 值得注意的是,使用该积分函数,需要将被积表达式封装在函数内,比如被积表达式是2*x
# 则积分上下限分别为1和2,口算可得,积分结果为:3;那么编程实现如下
#先定义函数
print('***********************')
print('方法一:')
def f(x):
return 2*x
a = integrate.quad(f,1,2)
print(a)
print('***********************')
print('***********************')
print('方法二:')
a = integrate.quad(lambda x : 2*x,1,2) #在quad方法中使用lambda定义函数
print(a)
print('***********************')
输出
方法一:
(3.0, 3.3306690738754696e-14)
***********************
***********************
方法二:
(3.0, 3.3306690738754696e-14)
***********************
进程已结束,退出代码0
二、多重积分
双重、三重和多重积分的机制已被包含到函数dblquad,tplquad和nquad中。 这些函数分别积分了四个或六个参数。 所有内积分的界限都需要定义为函数。
双重积分
∫ a b ∫ g f u n c h f u n c f ( x ) d x \int_a^{b}\int_{gfunc}^{hfunc}{f(x)} \,{\rm d}x ∫ab∫gfunchfuncf(x)dx
举例
from scipy import integrateg
# 基本使用格式:integrate(func, a, b,gfunc, hfunc)
# func 是要被积分的函数名,a、b 分别是 x 变量的积分上限和下限
# 而 gfunc 和 hfunc 是定义变量 y 的下限和上限的函数名称。
print('***********************')
print('方法一:')
# 被积函数
def f(y, x):
return 16*x*y
# 虽然下限是常数,但是还是写成函数形式
def g(x):
return 0
# 上限x
def h(y):
return 4*y**2
r = integrate.dblquad(f, 1, 2, g, h)
print(r)
print('***********************')
print('***********************')
print('方法二:')
f = lambda x, y : 16*x*y
g = lambda x : 0
h = lambda y : 4*y**2
i = integrate.dblquad(f, 1, 2, g, h)
print(i)
print('***********************')
输出
***********************
方法一:
(1343.9999999999998, 4.52284088458721e-11)
***********************
***********************
方法二:
(1343.9999999999998, 4.52284088458721e-11)
***********************
进程已结束,退出代码0
除上述例程外,scipy.integrate还有许多其他积分的程序,其中包括执行n次多重积分的nquad以及实现各种集成算法的其他例程。 但是,quad和dblquad将满足对数值积分的大部分需求。