雅可比矩阵在积分换元中的应用
1.雅可比矩阵和雅可比行列式
雅可比矩阵可以理解为一个向量对另一个向量的微分,例如对于向量
y
=
[
f
1
(
x
1
,
x
2
,
⋯
,
x
n
)
f
2
(
x
1
,
x
2
,
⋯
,
x
n
)
⋮
f
m
(
x
1
,
x
2
,
⋯
,
x
n
)
]
y=\left[ \begin{matrix} \begin{matrix} \begin{matrix} {{f}_{1}}({{x}_{1}},{{x}_{2}},\cdots ,{{x}_{n}}) \\ {{f}_{2}}({{x}_{1}},{{x}_{2}},\cdots ,{{x}_{n}}) \\ \end{matrix} \\ \vdots \\ \end{matrix} \\ {{f}_{m}}({{x}_{1}},{{x}_{2}},\cdots ,{{x}_{n}}) \\ \end{matrix} \right]
y=
f1(x1,x2,⋯,xn)f2(x1,x2,⋯,xn)⋮fm(x1,x2,⋯,xn)
和向量
x
=
[
x
1
x
2
⋯
x
n
]
T
x={{\left[ \begin{matrix} \begin{matrix} {{x}_{1}} & {{x}_{2}} \\ \end{matrix} & \cdots & {{x}_{n}} \\ \end{matrix} \right]}^{T}}
x=[x1x2⋯xn]T,则
x
→
y
x\to y
x→y的雅可比矩阵可表示为
J
=
∂
y
∂
x
T
=
[
∂
f
1
∂
x
1
∂
f
1
∂
x
2
⋯
∂
f
1
∂
x
n
∂
f
2
∂
x
1
∂
f
2
∂
x
2
⋯
∂
f
2
∂
x
n
⋮
⋮
⋮
⋮
∂
f
m
∂
x
1
∂
f
m
∂
x
2
⋯
∂
f
m
∂
x
n
]
J=\frac{\partial y}{\partial {{x}^{T}}}=\left[ \begin{matrix} \frac{\partial {{f}_{1}}}{\partial {{x}_{1}}} & \frac{\partial {{f}_{1}}}{\partial {{x}_{2}}} & \cdots & \frac{\partial {{f}_{1}}}{\partial {{x}_{n}}} \\ \frac{\partial {{f}_{2}}}{\partial {{x}_{1}}} & \frac{\partial {{f}_{2}}}{\partial {{x}_{2}}} & \cdots & \frac{\partial {{f}_{2}}}{\partial {{x}_{n}}} \\ \vdots & \vdots & \vdots & \vdots \\ \frac{\partial {{f}_{m}}}{\partial {{x}_{1}}} & \frac{\partial {{f}_{m}}}{\partial {{x}_{2}}} & \cdots & \frac{\partial {{f}_{m}}}{\partial {{x}_{n}}} \\ \end{matrix} \right]\
J=∂xT∂y=
∂x1∂f1∂x1∂f2⋮∂x1∂fm∂x2∂f1∂x2∂f2⋮∂x2∂fm⋯⋯⋮⋯∂xn∂f1∂xn∂f2⋮∂xn∂fm
则对于全微分向量
d
x
dx
dx和
d
y
=
[
d
f
1
⋯
d
f
m
]
T
dy={{\left[ d{{f}_{1}}\cdots d{{f}_{m}} \right]}^{T}}
dy=[df1⋯dfm]T有如下关系(
∗
*
∗表示矩阵乘法)
d
y
=
J
∗
d
x
dy=J*dx
dy=J∗dx
在
m
=
n
m=n
m=n的条件下,可以定义雅可比矩阵
J
J
J的行列式
∣
J
∣
\left| J \right|
∣J∣
2.在积分换元中的应用
雅可比矩阵行列式在多重积分换元中的应用有如下关系
d
y
1
d
y
2
⋯
d
y
n
=
∣
J
∣
d
x
1
d
x
2
⋯
d
x
n
d{{y}_{1}}d{{y}_{2}}\cdots d{{y}_{n}}=\left| J \right|d{{x}_{1}}d{{x}_{2}}\cdots d{{x}_{n}}
dy1dy2⋯dyn=∣J∣dx1dx2⋯dxn
上面的这个公式就是本篇文章想要说明的核心内容。下面以二维平面的例子对上述公式进行说明(主要参考[1]),定义要求解的二重积分为
∬
S
f
(
x
,
y
)
d
x
d
y
\iint_{S}{f(x,y)}dxdy\
∬Sf(x,y)dxdy
现要将
x
−
y
x-y
x−y平面转化为在
u
−
v
u-v
u−v平面上求解上述积分,并已知
x
=
f
1
(
u
,
v
)
x={{f}_{1}}(u,v)
x=f1(u,v)
y
=
f
2
(
u
,
v
)
y={{f}_{2}}(u,v)
y=f2(u,v)
则根据雅可比矩阵的定义有
[
d
x
d
y
]
=
J
[
d
u
d
v
]
\left[ \begin{matrix} dx \\ dy \\ \end{matrix} \right]=J\left[ \begin{matrix} du \\ dv \\ \end{matrix} \right]\
[dxdy]=J[dudv]
其中
J
=
[
∂
x
∂
u
∂
x
∂
v
∂
y
∂
u
∂
y
∂
v
]
J=\left[ \begin{matrix} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \\ \end{matrix} \right]\
J=[∂u∂x∂u∂y∂v∂x∂v∂y]
表现在二维平面上,则有以下关系

上图中的雅可比矩阵
J
J
J起到坐标变换的功能(
u
−
v
u-v
u−v平面中的小长方形映射到
x
−
y
x-y
x−y平面上变为了平行四边形)。
在求 ∬ S f ( x , y ) d x d y \iint_{S}{f(x,y)}dxdy ∬Sf(x,y)dxdy时, f ( x , y ) f(x,y) f(x,y)表示高度, d x d y dxdy dxdy为积分面元,在进行积分换元时, f ( x , y ) f(x,y) f(x,y)用 f ( f 1 ( u , v ) , f 2 ( u , v ) ) f\left( {{f}_{1}}(u,v),{{f}_{2}}(u,v) \right) f(f1(u,v),f2(u,v))替代,这两者是等价的。对于积分面元的变换,原本的积分面元是小长方形的 d x d y dxdy dxdy,变换后的积分面元同样应为小长方形,即为 d u d v dudv dudv,但根据上图所展示的,积分面元 d x d y dxdy dxdy与 d u d v dudv dudv很可能并不等价(经过了坐标变换的缩放和平移)。
上图中的左边小长方形面积为
d
u
d
v
dudv
dudv,右边所映射的平行四边形面积为(行列式具有体积面积的几何含义,关于这一点将在本文第3节详细说明)
∣
J
(
d
u
0
0
d
v
)
∣
=
∣
J
∣
∣
(
d
u
0
0
d
v
)
∣
=
∣
J
∣
d
u
d
v
\left| J\left( \begin{matrix} du & 0 \\ 0 & dv \\ \end{matrix} \right) \right|=\left| J \right|\left| \left( \begin{matrix} du & 0 \\ 0 & dv \\ \end{matrix} \right) \right|=\left| J \right|dudv\
J(du00dv)
=∣J∣
(du00dv)
=∣J∣dudv
可以看出,积分面元
d
x
d
y
dxdy
dxdy变换到
u
−
v
u-v
u−v平面时,面积会缩小
∣
J
∣
\left| J \right|
∣J∣倍。因此,在将
d
x
d
y
dxdy
dxdy替换为
d
u
d
v
dudv
dudv时,为保证积分面积不变,需要在
d
u
d
v
dudv
dudv前乘以
∣
J
∣
\left| J \right|
∣J∣,因此便得到
∬
S
f
(
x
,
y
)
d
x
d
y
=
∬
S
′
f
(
f
1
(
u
,
v
)
,
f
2
(
u
,
v
)
)
∣
J
∣
d
u
d
v
\iint_{S}{f(x,y)}dxdy=\iint_{S'}{f\left( {{f}_{1}}(u,v),{{f}_{2}}(u,v) \right)}\left| J \right|dudv\
∬Sf(x,y)dxdy=∬S′f(f1(u,v),f2(u,v))∣J∣dudv
值得注意的是
d
x
d
y
=
(
∂
x
∂
u
d
u
+
∂
x
∂
v
d
v
)
⋅
(
∂
y
∂
u
d
u
+
∂
y
∂
v
d
v
)
≠
∣
J
∣
d
u
d
v
dxdy=\left( \frac{\partial x}{\partial u}du+\frac{\partial x}{\partial v}dv \right)\cdot \left( \frac{\partial y}{\partial u}du+\frac{\partial y}{\partial v}dv \right)\ne \left| J \right|dudv\
dxdy=(∂u∂xdu+∂v∂xdv)⋅(∂u∂ydu+∂v∂ydv)=∣J∣dudv
这一点非常容易令人疑惑,实际上,
d
x
d
y
dxdy
dxdy为下图右边蓝色长方形的面积,
∣
J
∣
d
u
d
v
\left| J \right|dudv
∣J∣dudv为下图右边绿色平行四边形的面积

为了在积分换元时得到
d
u
d
v
dudv
dudv的小长方形(或正方形),就需要求其对应映射的绿色的平行四边形的面积,而不是求 对应的蓝色长方形面积。这也说明在进行多重积分公式的积分换元时,需要考虑的是积分面元之间的坐标映射关系以及缩放比例,而不是简单的积分面积元之间的粗暴等价相乘。
3.行列式所表示的几何含义
行列式是线性代数中的基础内容,这里不给出其定义的计算方式(看着有点抽象),只给出一个计算三阶行列式的计算示例[2]:

关于行列式的计算方式个人感觉是挺奇怪的,据说是来源于线性方程组求解,这一点不进行深入探讨(可参考博客[3]),我们所重点关注的是其几何含义,即行列式的绝对值等于行列式中的向量所组成的平行多面体的体积。
这里依然以二维的示例进行说明(这部分内容主要参考了知乎上的文章[4])。
(手打的公式不知道什么原因不能编辑了,后面的内容截图显示)


4.应用实例




可以利用求数值积分的方式验证上述解析求解方式的正确性,数值求解的代码如下:
from scipy.integrate import dblquad
import numpy as np
#定义被积函数 f(x, y)
def f(y, x):
return np.exp(y/(x+y))
#求解
result1, error = dblquad(f,
0, 1, # y 的范围
lambda y: 0, # x 的下限
lambda y: 1-y) # x 的上限
print(result1)
print((np.exp(1)-1)/2)
输出结果为
print(result1) :0.8591409142295229
print((np.exp(1)-1)/2) :0.8591409142295225
可以看到解析解和数值求解的结果基本一致,误差极小。如果求解积分换元后的数值积分结果:
# 定义被积函数 f(x, y)
def f(k, m):
return np.exp(k/(k+1))*m/(k+1)**2
# 求解
result2, error = dblquad(f,
0, np.inf, # k 的范围
lambda x: 0, # m 的下限
lambda x: 1) # m 的上限
print(result2)
输出结果为result2= 0.3243606366004509,很明显数值积分求解的结果是不对的(由于存在无穷的积分范围,可能会导致数值积分结果难以收敛)。这一现象说明,目前计算机和人脑的工作方式仍呈现出较为明显的不一致性,计算机擅长应对繁琐但直接的问题,而计算机在如何处理类似数学这种更为抽象的东西方面,仍有很大进步空间。
5.参考
[1]https://math.stackexchange.com/questions/4751277/how-to-show-algebraically-that-the-determinant-of-the-jacobian-the-scaling-facto?
[2] https://zhuanlan.zhihu.com/p/360292803
[3] https://blog.csdn.net /qq_17065591/article/details/107441773
[4] https:// zhuanlan.zhihu.com/p/30443024
[5]https://zhuanlan. zhihu.com /p/111501020


被折叠的 条评论
为什么被折叠?



