矩阵指数

来自testwiki
imported>InternetArchiveBot2024年10月7日 (一) 16:01的版本 (补救1个来源,并将0个来源标记为失效。) #IABot (v2.0.9.5)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

矩阵指数(matrix exponential)是方块矩阵的一种矩阵函数,与指数函数类似。矩阵指数给出了矩阵李代数与对应的李群之间的关系。

Xn×n实数复数矩阵X的指数,用eX或exp(X)来表示,是由以下幂级数所给出的n×n矩阵:

eX=k=01k!Xk

以上的级数总是收敛的,因此X的指数是定义良好的。注意,如果X是1×1的矩阵,则X的矩阵指数就是由X的元素的指数所组成的1×1矩阵。

性质

基本性质

XYn×n的复数矩阵,并设ab为任意的复数。我们把n×n单位矩阵记为I,把零矩阵记为0。

我们可以从指数级数的定义直接得到矩阵指数的如下性质[1]

接下来是一个关键性质:

  • 如果XY=YX那么 eXeY=eX+Y

由此导出的推论有:

线性微分方程

矩阵指数的一个重要性,是它可以用来解微分方程。从(1)可知,以下微分方程

ddty(t)=Ay(t),y(0)=y0

其中A是矩阵,具有解

y(t)=eAty0 

矩阵指数也可以用来解非齐次方程:

ddty(t)=Ay(t)+z(t),y(0)=y0

参见以下的例子

A不是常数时,以下形式的微分方程没有闭式解:

ddty(t)=A(t)y(t),y(0)=y0

马格努斯级数可以给出无穷级数形式的解。

矩阵指数的行列式

根据雅可比公式,对任意复矩阵,下列迹等式成立:[2]

det(eA)=etr(A)

除了提供一种额外的计算工具,这个等式还表明矩阵指数总是可逆矩阵。这点可以如下证明:因为上述等式的右边恒不等于0,所以左边Template:Math,从而Template:Math必可逆。

指数相加

我们知道,对于任何实数(标量)xy,指数函数都满足公式ex + y = exey。类似的等式对于可交换矩阵也成立:如果矩阵XY是可交换的(即XY = YX),则:

eX+Y=eXeY 

但是,如果它们不是可交换的,则以上的等式不一定成立。

这个命题反过来不成立:eX+Y=eXeY并不一定就意味着XY是可交换的。但是,如果XY只含有代数数,而且它们的大小至少为2×2,则反过来也成立[3]

XY不可交换的情况可以用以下方法计算:

李乘积公式

即使XY不可交换,eX+Y可以用李乘积公式来计算[4]

eX+Y=limn(eX/neY/n)n

贝克尔-坎贝尔-豪斯多夫公式

从另一个方向讲,如果XY是元素足够小(但不一定可交换)的矩阵,我们有:

eXeY=eZ

其中Z可以通过XY的交换子的级数(贝克尔-坎贝尔-豪斯多夫公式)来计算:[5]

Z=X+Y+12[X,Y]+112[X,[X,Y]]+

其中余项均为与XY相关的迭代交换子。

指数映射

注意矩阵的指数总是非奇异方阵eX逆矩阵eX给出。这与复数的指数总是非零的事实类似。这样,矩阵指数就给出了一个映射:

exp:Mn()GL(n,)

这是从所有n×n矩阵的空间到一般线性群(所有非奇异方阵所组成的群)的映射。实际上,这个映射是满射,就是说每一个非奇异方阵都可以写成某个矩阵的指数。矩阵对数就是这个映射的逆映射。

对于任何两个矩阵XY,我们有:

eX+YeXYeXeY

其中|| · ||表示任意的矩阵范数。从中可以推出,指数映射在Mn(C)的紧子集内是连续利普希茨连续的。

以下的映射

tetX,t

定义了一般线性群中的一条光滑曲线,当t = 0时穿过单位元。实际上,这给出了一般线性群的一个单参数子群,这是由于:

etXesX=e(t+s)X 

这条曲线在点t的导数(或切向量)由以下等式给出:

ddtetX=XetX(1)

t = 0时的导数就是矩阵X,所以我们可以说,X是这个单参数子群的推广。

更加一般地:

ddteX(t)=01e(1α)X(t)dX(t)dteαX(t)dα

矩阵指数的计算

找到可靠而准确的方法来计算矩阵指数是很困难的,这仍然是目前数学和数值分析领域的一个重要研究课题。MatlabGNU OctaveSciPy都使用帕德近似[6][7][8] 在本节中,我们讨论了原则上适用于任何矩阵的方法,并且可以对小矩阵进行显式处理。[9] 随后的章节描述了适合对大矩阵进行数值评估的方法。

可对角化矩阵

如果矩阵是对角的:

A=[a1000a2000an]

则把主对角线上的所有元素取指数,就是原矩阵的指数:

eA=[ea1000ea2000ean]

这也允许了我们计算可对角化矩阵的指数。如果A=UDU1,且D是对角矩阵,则eA=UeDU1。用西尔维斯特公式,也可以得到相同的结果。

幂零矩阵

如果对于某个整数q,有Nq = 0,则矩阵N称为幂零矩阵。在这种情况下,矩阵指数eN可以直接从级数展开式来计算,这是因为级数在有限个项后就终止了:

eN=I+N+12N2+16N3++1(q1)!Nq1

推广

当矩阵X最小多项式可以分解为一次多项式的积时,它就可以表示为以下的和:

X=A+N 

其中:

  • A是可对角化矩阵;
  • N是幂零矩阵;
  • AN是可交换的(也就是说, AN = NA)。

这称为Dunford分解

这就是说,我们可以通过化为前两种情况,来计算X的指数:

eX=eA+N=eAeN 

注意为了让最后一步成立, AN必须是可交换的。

另外一个密切相关的方法,是利用X若尔当标准型。假设X = PJP −1,其中JX若尔当标准型。那么:

eX=PeJP1 

另外,由于

J=Ja1(λ1)Ja2(λ2)Jan(λn)
eJ=exp(Ja1(λ1)Ja2(λ2)Jan(λn))=exp(Ja1(λ1))exp(Ja2(λ2))exp(Jak(λk))

因此,我们只需要知道怎样计算若尔当块的矩阵指数。但是,每一个若尔当块都具有形式

Ja(λ)=λI+N 

其中N是幂零矩阵。则这个区块的矩阵指数由下式给出:

eλI+N=eλeN 

计算

假设我们想要计算以下矩阵的指数。

B=[211765164416]

它的若尔当型为:

J=P1BP=[40001610016]

其中矩阵P由下式给出:

P=[1425414214040]

我们首先来计算exp(J)。我们有:

J=J1(4)J2(16)

1×1矩阵的指数仅仅是该矩阵的元素的指数,因此exp(J1(4)) = [e4]。J2(16)的指数可以用以上提到的公式exp(λI+N) = eλ exp(N)来算出:

exp([161016])=e16exp([0100])=e16([1001]+[0100]+12![0000]+)=[e16e160e16]

因此,原矩阵B的指数为:

exp(B)=Pexp(J)P1=P[e4000e16e1600e16]P1=14[13e16e413e165e42e162e49e16+e49e16+5e42e16+2e416e1616e164e16]

应用

线性微分方程

矩阵指数在解线性微分方程时十分有用。前面曾提到,以下形式的微分方程

𝐲=C𝐲

具有解eCty(0)。如果我们考虑以下向量

𝐲(t)=[y1(t)yn(t)]

我们就可以把线性微分方程表示为:

𝐲(t)=A𝐲(t)+𝐛(t)

如果我们作一个猜想,把两边乘以一个积分因子 eAt,便得到:

eAt𝐲eAtA𝐲=eAt𝐛
ddt(eAt𝐲)=eAt𝐛

如果我们可以计算eAt,那么就得到了微分方程的解。

例子(齐次)

假设我们有以下的微分方程组:

x=2xy+zy=3y1zz=2x+y+3z

相关的矩阵为:

M=[211031213]

在以上的例子中,我们计算了矩阵指数

etM=[2et2te2t2te2t02et+2(t+1)e2t2(t+1)e2t02te2t2te2t2et]

因此微分方程组的通解为:

[xyz]=C1[2et2te2t2et+2(t+1)e2t2te2t]+C2[2te2t2(t+1)e2t2te2t]+C3[002et]

也就是说,

x=C1(2et2te2t)+C2(2te2t)y=C1(2et+2(t+1)e2t)+C2(2(t+1)e2t)z=(C1+C2)(2te2t)+2C3et

非齐次的情况──参数变换

对于非齐次的情况,我们可以用积分因子的方法(类似于参数变换的方法)。我们找到形为yp(t) = exp(tA)z(t)一个特解:

𝐲p=(etA)𝐳(t)+etA𝐳(t)
=AetA𝐳(t)+etA𝐳(t)
=A𝐲p(t)+etA𝐳(t)

为了让yp为方程的解,必须有:

etA𝐳(t)=𝐛(t)
𝐳(t)=(etA)1𝐛(t)
𝐳(t)=0teuA𝐛(u)du+𝐜

因此,

𝐲p=etA0teuA𝐛(u)du+etA𝐜=0te(tu)A𝐛(u)du+etA𝐜

其中c由问题的初始条件决定。

例子(非齐次)

假设我们有以下的微分方程组:

x=2xy+z+e2ty=3y1zz=2x+y+3z+e2t

那么我们有

M=[211031213]

以及

𝐛=e2t[101]

用前面的方法,我们可以得出齐次微分方程的解。由于齐次方程的通解与非齐次方程的特解的和就是非齐次方程的通解,因此我们只需要找到一个特解(用参数变换法)。

我们有:

𝐲p=et0te(u)M[e2u0e2u]du+etM𝐜
𝐲p=et0t[2eu2ue2u2ue2u02eu+2(u+1)e2u2(u+1)e2u02ue2u2ue2u2eu][e2u0e2u]du+etM𝐜
𝐲p=et0t[e2u(2eu2ue2u)e2u(2eu+2(1+u)e2u)2e3u+2ue4u]+etM𝐜
𝐲p=et[124e3t(3et(4t1)16)124e3t(3et(4t+4)16)124e3t(3et(4t1)16)]+[2et2te2t2te2t02et+2(t+1)e2t2(t+1)e2t02te2t2te2t2et][c1c2c3]

进一步简化,就可以得到原方程的特解。

註釋

Template:Reflist

参考文献

Template:Refbegin

Template:Refend

参閱

Template:Div col

Template:Div col end

外部链接