2
1
,
b
g
y
a
g
y
f
x
y
dx
dy
from scipy. integrate import dblquad
area = dblquad(lambda x, y: f(x,y), a, b, lambda y: g1(y), lambda y:g2(y))
注意,
area = dblquad(lambda x, y: f(x,y), a, b, lambda y: g1(y), lambda y:g2(y))
可以
写为
area = dblquad(lambda x, y: f(x,y), a, b, lambda x: g1(x), lambda x:g2(x))
也可以写为:
area
=
dblquad(lambda
x,
y:
f(x,y),
a,
b,
lambda
z:
g1(z),
lambda
z:g2(z))
dblquad(lambda x, y: f(x,y), a, b, lambda y: g1(y), lambda y:g2(y))
的意义是先对
x
积
分,积分下限和上限分别是
x=g1(y)
和
x=g2(y)
,然后对
y
求积分,积分下限和上限分别是
y=a
和
y=b
。
第一个
lambda
中的
x
和
y
书写顺序影响积分顺序和积分区间,
最后两个
lambda
表达
式中变量名称可以任意写(可以是
x
,可以是
y
,也可以是
z
),不影响计算结果。
由以上分析可知:
dblquad(lambda
y,
x:
f(x,y),
a,
b,
lambda
y:
g1(y),
lambda
y:g2(y))
(
等
价
于
dblquad(lambda
y,
x:
f(x,y),
a,
b,
lambda
x:
g1(x),
lambda
x:g2(x))
,
也
等
价
于
dblquad(lambda y, x: f(x,y), a, b, lambda z g1(z), lambda z:g2(z))
)
该句的意思为求解
2
1
,
b
g
x
a
g
x
f
x
y
dy
dx
比如:
2
2
1
y
y
x
y
dx
dy
from scipy. integrate import dblquad
area = dblquad(lambda x, y: x+y, 1, 2, lambda y: y, lambda y:y**2)
print(area)