这节课涉及到怎么求解微分方程,怎么求解一阶常系数微分方程。上一节课是离散情况,这节课我们计算连续情况。
微分方程组的解
从例子讲起
已知两个微分方程
[frac{ ext{du}_1}{ ext{dt}}=-u_1+2 u_2\
frac{ ext{du}_2}{ ext{dt}}=u_1-2 u_2
]
已知 (U(t)=left(
egin{array}{c}
u_1(t) \
u_2(t) \
end{array}
ight)),(U_0=left(
egin{array}{c}
u_1(0) \
u_2(0) \
end{array}
ight)=left(
egin{array}{c}
1 \
0 \
end{array}
ight))
根据两个方程等式右边写出系数矩阵:
[A=left(
egin{array}{cc}
-1 & 2 \
1 & -2 \
end{array}
ight)
]
很明显,矩阵 (A) 的行列式为0,所以她是个奇异矩阵。
计算特征方程
[det(A-lambda I)=0
]
可得
[lambda_1=0,lambda_2=-3
]
将两个特征值分别代入
[(A-lambda I)x=0
]
可得
[x_1=left(
egin{array}{c}
2 \
1 \
end{array}
ight),x_2=left(
egin{array}{c}
1 \
-1 \
end{array}
ight)
]
微分方程的解为
[U(t)=c_1 e^{lambda _1 t}x_1+c_2 e^{lambda _2 t}x_2
]
(e^{lambda _1 t}x_1) 和 (e^{lambda _2 t}x_2) 是方程组的两个特解。
两个解的纯指数形式是上次讲的纯幂形式在微分方程中的类似体。
在差分方程中 (u_{k+1}=Au_k), 有
[u_k=c_1lambda_1^k x_1+c_2lambda_2^k x_2+...+c_nlambda_n^k x_n
]
这里我们关心的是指数形式。
计算 (c_1、c_2) ,将 (lambda) 和 (x) 代入,可得
[U(t)=c_2 e^{-3 t}.left(
egin{array}{c}
1 \
-1 \
end{array}
ight)+c_1.left(
egin{array}{c}
2 \
1 \
end{array}
ight)
]
已知初值 (U_0) ,可得
[c_1=c_2=frac{1}{3}
]
故,最后得到通解:
[U(t)=frac{1}{3} left(
egin{array}{c}
2 \
1 \
end{array}
ight)+frac{1}{3} e^{-3 t} left(
egin{array}{c}
1 \
-1 \
end{array}
ight)
]
当 (t
ightarrow ∞,frac{1}{3} e^{-3 t} left(
egin{array}{c}
1 \
-1 \
end{array}
ight)
ightarrow 0) ,(U(t)) 是稳定状态
[U(∞)
ightarrow frac{1}{3} left(
egin{array}{c}
2 \
1 \
end{array}
ight)
]
收敛性
什么时候微分方程的解才能到达稳态?
- 当(lambda) 实部小于零,即 $ Re (lambda)<0 $ (e^{lambda t}
ightarrow 0) , (U(t)
ightarrow 0) ,(U(t)) 具有稳定性。
如果特征值是复数,假如 (lambda=-3+6i) .
[|e^{(-3+6 i) t}|=e^{-3 t}
]
取模后只有实部作用,因为根据欧拉公式
[|e^{6it}|=cos(6t)+isin(6t)=1
]
她在单位圆内旋转。
所以只有实数部分是起作 用的。
- 当 (lambda_1=0) ,并且其余的 (Relambda<0) ,(U(t)) 处于稳定状态。
- 当任意 (Relambda>0) 时,解无法收敛。
以 (2*2) 矩阵为例
已知微分方程组中系数矩阵
[A=left(
egin{array}{cc}
a & b \
c & d \
end{array}
ight)
]
对于稳定性,我们要知道她的两个特征值实部是否都是小于零。
[Re lambda_1<0,Re lambda_2<0,
]
问题是,不计算,是否可以直接从矩阵判断呢?
(A) 的迹是 (a+d) ,如果两个特征值都小于零,则
[a+d<0
]
并且满足
[detA>0
]
从这两个条件就能看出是否稳定。
她是简便而且实用的,因为二阶系统稳定性是我们最关心的,在实际中遇到的最多。
解耦(对角化)
原方程组有两个相互耦合的未知函数,矩阵 (A) 也表明 (u_1、u_2) 互相耦合。
特征值和特征向量的作用是解耦,又称为对角化,我们可以把方程的解表示为 (S) 和 (Lambda) 的形式。
回到原来的微分方程组,矩阵 (A) 的对角元素都不等于零
[frac{ ext{du}}{ ext{dt}}= ext{Au}
]
通过特征向量矩阵 (S) 解耦 (u) 。令
[u=Sv
]
把 (u) 表示为特征向量(基)的线性组合。
将 (u) 代入方程中,(S) 是常数阵,可以提取出来,得
[Sfrac{ ext{dv}}{ ext{dt}}= ext{ASv}
]
两边乘以 (S^{-1})
[S^{-1}Sfrac{ ext{dv}}{ ext{dt}}=S^{-1} ext{ASv}
]
化简
[frac{ ext{dv}}{ ext{dt}}=Lambda ext{v}
]
(Lambda) 为特征值矩阵。这里得到关于 (v) 得对角化方程组。
新方程组不存在耦合,(frac{dv_1}{ ext{dt}}=Lambda v_1,frac{dv_2}{ ext{dt}}=Lambda v_2) ......这是各未知数之间没有联系得方程组。
她们的解是
[v(t)=e^{Lambda t} v(0)\
u(t)=Se^{Lambda t}S^{-1} u(0)=e^{A t}u(0)
]
其中,(e^{A t}) 称为矩阵指数。
矩阵指数
回顾泰勒展开式的两个公式
[e^{x}=sum _{n=0}^{infty } frac{x^n}{n!}\
frac{1}{1-x}=sum _{n=0}^{infty } x^n
]
第二个式子被称为几何级数。
这些公式对矩阵同样适用,就像普通的函数一样,类似的,有
[e^{A t}=I+At+frac{ ext{(At)}^2}{2}+frac{ ext{(At)}^3}{6}+...++frac{ ext{(At)}^n}{n!}\
(I-At)^{-1}=I+At+(At)^2+(At)^3+...+(At)^n
]
第一个式子就是 (e^{A t}) 的定义式子。
通过展开式,我们可以看出 (e^{A t}) 每一项分母越来越大,因此无论 (A、t) 是多少,她的通项总是收敛于0,级数最终最终收敛于某值。
但 ((I-At)^{-1}) 不一定是收敛的。假如 (A) 的 (lambda>0) ,则 (A^n) ,(lambda^n) 。 级数不收敛。只有 (lambda<0) ,级数收敛,根据要求可以让级数约等于前面几项。
证明
证明 (Se^{Lambda t}S^{-1} =e^{A t})
[egin{align}
e^{A t}&=I+At+frac{ ext{(At)}^2}{2}+frac{ ext{(At)}^3}{6}+...++frac{ ext{(At)}^n}{n!}\
&=SS^{-1}+SLambda S^{-1} t+frac{SLambda^2 S^{-1}}{6}t^2+...++frac{SLambda^n S^{-1}}{n!}t^n\
&=Se^{Lambda t} S^{-1}
end{align}
]
前提条件是有 (n) 个特征向量,(S) 可逆,矩阵 (A) 才能对角化。
其中
[Lambda =left(
egin{array}{cccc}
lambda _1 & 0 & ... & 0 \
0 & lambda _2 & ... & 0 \
... & ... & ... & ... \
0 & 0 & ... & lambda _n \
end{array}
ight)
]
矩阵指数 (e^{Lambda t}) 表达式为
[e^{Lambda t} =left(
egin{array}{cccc}
e^{lambda_1 t} & 0 & ... & 0 \
0 & e^{lambda_2 t} & ... & 0 \
... & ... & ... & ... \
0 & 0 & ... & e^{lambda_n t} \
end{array}
ight)
]
全部特征值小于0时,(e^{Lambda t}) 的对角线上全部元素收敛于0。
我们可以在复平面上表示出来:

- 全部特征值小于0情况,就是当特征值位于左半平面时,可以使得微分方程存在稳定的解。
- 当特征值绝对值 (|lambda|<1) 时,即在单位元内,矩阵的幂收敛于0
高阶微分方程的求解
如何求解 (y''+by'+ky=0) ?
想象斐波那契数列的思路
令
[u=left(
egin{array}{c}
y' \
y \
end{array}
ight)
]
增加一个方程
[y'=y'
]
把向量 (u) 作为方程的未知数,原方程化为 (u) 的一阶微分方程。
[egin{align}
u’&=left(
egin{array}{c}
y'' \
y' \
end{array}
ight)\
&=Au\
&=left(
egin{array}{cc}
-b & -k \
1 & 0 \
end{array}
ight).left(
egin{array}{c}
y' \
y \
end{array}
ight)
end{align}
]
一个二阶微分方程变换为一个一阶方程,可以得到一个 (2*2) 矩阵 (A).
类似的,对于一个5阶微分方程,可以得到一个 (5*5) 矩阵,这个方程使得5阶转换为一阶,然后我们就可以计算特征值和特征向量。