主要内容
- 一阶微分方程的求解
- 解耦
- 二阶微分方程
正文
一阶微分方程的求解
同样的,我们先通过一个例子来看一下微分方程的求解流程,然后再引出相应的问题: d u 1 d t = − u 1 + 2 u 2 , d u 2 d t = u 1 − 2 u 2 . i n i t i a l u ( 0 ) = [ 1 0 ] \frac{du_1}{dt}=-u_1+2u_2,\frac{du_2}{dt}=u_1-2u_2.\quad initial\ u(0)=\begin{bmatrix}1\\0\end{bmatrix} dtdu1=−u1+2u2,dtdu2=u1−2u2.initial u(0)=[10]在这个例子中我们的目的是求解 u ( t ) u(t) u(t)。需要注意的是,下标与括号中的意义是不相同的,括号中的 t t t表示自变量,是一个变动的量,可以理解为时间,而下标主要是用于区分某个变量的。比如 u ( 0 ) = [ 1 0 ] u(0)=\begin{bmatrix}1\\0\end{bmatrix} u(0)=[10]表示在 0 0 0时刻, u 1 = 1 , u 2 = 0 u_1=1,u_2=0 u1=1,u2=0。通过方程我们可以知道 d u 2 d t > 0 , d u 1 d t < 0 \frac{du_2}{dt}>0,\frac{du_1}{dt}<0 dtdu2>0,dtdu1<0,所以随着时间的增加, u 1 u_1 u1会增加, u 2 u_2 u2会减少;或者可以理解为 u 1 u_1 u1流向了 u 2 u_2 u2,这是一个动态的变化过程,不过最终会达到某种状态,我们可以通过计算发现这种状态。这里只是对微分方程做了简单的介绍,这是解题非常重要的一步,理解微分方程的意义。
第一步我们使用矩阵将微分方程抽象成线性代数的形式: d u d t = A u , a n d A = [ − 1 2 1 − 2 ] \frac{du}{dt}=Au,\quad and \ A=\begin{bmatrix}-1&2\\1&-2\end{bmatrix} dtdu=Au,and A=[−112−2]在之前的介绍中,我们已经知道, u k u_k uk的增长与矩阵的特征值和特征向量有关,所以接下来我们研究矩阵的特征值和特征向量。通过: d e t ( A − λ I ) = 0 det(A-\lambda I)=0 det(A−λI)=0,我们可以求出两个特征值 λ 1 = 0 , λ 2 = − 3 \lambda_1=0,\lambda_2=-3 λ1=0,λ2=−3,然后根据特征值可以解得对应的特征向量为 x 1 = [ 2 1 ] , x 2 = [ 1 − 1 ] x_1=\begin{bmatrix}2\\1\end{bmatrix},x_2=\begin{bmatrix}1\\-1\end{bmatrix} x1=[21],x2=[1−1]。
第二,我们给出通解的形式,这里不追究通解的形式为什么会是这个样子。 ∑ i = 1 n C i e λ i t x i \sum^n_{i=1}C_ie^{\lambda_it}x_i i=1∑nCieλitxi其中 λ i \lambda_i λi是特征值, x i x_i xi是特征向量。实际上,这个通解还可以使用矩阵的形式表达:》》》》????第一步我们已经求得了矩阵的特征值和特征向量,带入公式可以得到通解为: u ( t ) = C 1 1 [ 2 1 ] + C 2 e − 3 t [ 1 − 1 ] u_{(t)}=C_11\begin{bmatrix}2\\1\end{bmatrix}+C_2 e^{-3t}\begin{bmatrix}1\\-1\end{bmatrix} u(t)=C11[21]+C2e−3t[1−1]而要得到完整的解,我们还需要带入初值 u 0 u_0 u0。最终可以得到: u ( t ) = 1 3 [ 2 1 ] + 1 3 e − 3 t [ 1 − 1 ] u_{(t)}=\frac{1}{3}\begin{bmatrix}2\\1\end{bmatrix}+\frac{1}{3}e^{-3t}\begin{bmatrix}1\\-1\end{bmatrix} u(t)=31[21]+31e−3t[1−1]这个结果表明了一些信息:随着 t t t的增加,后面的一部分会趋向于 0 0 0,最终不起作用。而前面的一部分是保持稳定的,这就是我们所谓的达到的稳态。
在实际的求解中,会有这样的规律:
- 当特征值为负数的时候, u ( t ) u(t) u(t)趋向于 0 0 0,这个特点很明显。但是,复杂的是当特征值为复数的时候,只有复数实数部分会决定 u ( t ) u(t) u(t)的趋势。
- 稳态存在时,在这个例子中,我们有一个特征值为 0 0 0,其余的特征值为负数。在有更多的变量的情况下,至少需要有一个特征值为 0 0 0,其余的特征值为负数。
- 如果有任何特征值的实数部分大于零,则 u ( t ) u(t) u(t)无法收敛。
解耦
在前面的例子中,对于矩阵 A A A, u 1 , u 2 u_1,u_2 u1,u2是耦合的,不过我们可以通过特征值和特征向量对其解耦,也就是对角化。 d u 1 d t = − u 1 + 2 u 2 , d u 2 d t = u 1 − 2 u 2 . i n i t i a l u ( 0 ) = [ 1 0 ] \frac{du_1}{dt}=-u_1+2u_2,\frac{du_2}{dt}=u_1-2u_2.\quad initial\ u(0)=\begin{bmatrix}1\\0\end{bmatrix} dtdu1=−u1+2u2,dtdu2=u1−2u2.initial u(0)=[10]令 u = S v u=Sv u=Sv,对于 d u d t = A u = A S v \frac{du}{dt}=Au=ASv dtdu=Au=ASv,进一步化简, S d v d t = A S v S\frac{dv}{dt}=ASv Sdtdv=ASv,然后我们得到: d v d t = S − 1 A S v = Λ v \frac{dv}{dt}=S^{-1}ASv=\Lambda v dtdv=S−1ASv=Λv d v 1 d t = λ 1 v 1 , d v 2 d t = λ 2 v 2 \frac{dv_1}{dt}=\lambda_1v_1,\quad \frac{dv_2}{dt}=\lambda_2v_2 dtdv1=λ1v1,dtdv2=λ2v2这个得到的方程,各未知数之间是没有联系的,是不耦合的。根据前面的规律,又可以得到这样的方程: v ( t ) = e Λ t v ( 0 ) v(t)=e^{\Lambda t}v(0) v(t)=eΛtv(0)不过我们希望得到的是关于 u ( t ) u(t) u(t)的解耦方程。类似的: u ( t ) = e A t u ( 0 ) = S e Λ t S − 1 u ( 0 ) u(t)=e^{At}u(0)=Se^{\Lambda t}S^{-1}u(0) u(t)=eAtu(0)=SeΛtS−1u(0)这个方程的关键在于我们如何找到 e A t e^{At} eAt和 S e Λ t S − 1 Se^{\Lambda t}S^{-1} SeΛtS−1的关系
e
A
t
e^{At}
eAt和
S
e
Λ
t
S
−
1
Se^{\Lambda t}S^{-1}
SeΛtS−1
首先回顾一下幂级数公式:
e
x
=
1
+
x
+
x
2
2
!
+
x
3
3
!
+
.
.
.
+
x
n
n
!
+
.
.
.
x
∈
R
e^x=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+...+\frac{x^n}{n!}+... \qquad x\in R
ex=1+x+2!x2+3!x3+...+n!xn+...x∈R将这个公式扩展到矩阵上有:
e
A
t
=
I
+
A
t
+
(
A
t
)
2
2
!
+
(
A
t
)
3
3
!
+
.
.
.
+
(
A
t
)
n
n
!
+
.
.
.
\qquad e^{At}=I+At+\frac{(At)^2}{2!}+\frac{(At)^3}{3!}+...+\frac{(At)^n}{n!}+...
eAt=I+At+2!(At)2+3!(At)3+...+n!(At)n+...
⇒
e
A
t
=
S
S
−
1
+
S
Λ
t
S
−
1
+
S
(
Λ
t
)
2
S
−
1
2
!
+
S
(
Λ
t
)
3
S
−
1
3
!
+
.
.
.
+
S
(
Λ
t
)
n
S
−
1
n
!
+
.
.
.
\Rightarrow\quad e^{At}=SS^{-1}+S\Lambda tS^{-1}+\frac{S(\Lambda t)^2S^{-1}}{2!}+\frac{S(\Lambda t)^3S^{-1}}{3!}+...+\frac{S(\Lambda t)^nS^{-1}}{n!}+...
⇒eAt=SS−1+SΛtS−1+2!S(Λt)2S−1+3!S(Λt)3S−1+...+n!S(Λt)nS−1+...
⇒
e
A
t
=
S
(
I
+
Λ
t
+
(
Λ
t
)
2
2
!
+
(
Λ
t
)
3
3
!
+
.
.
.
+
(
Λ
t
)
n
n
!
+
.
.
.
)
S
−
1
\Rightarrow\quad e^{At}=S(I+\Lambda t+\frac{(\Lambda t)^2}{2!}+\frac{(\Lambda t)^3}{3!}+...+\frac{(\Lambda t)^n}{n!}+... )S^{-1}
⇒eAt=S(I+Λt+2!(Λt)2+3!(Λt)3+...+n!(Λt)n+...)S−1
⇒
e
A
t
=
S
e
Λ
t
S
−
1
\Rightarrow\quad e^{At}=Se^{\Lambda t}S^{-1}
⇒eAt=SeΛtS−1
二阶微分方程
它的一般形式为: y ′ ′ + b y ′ + k y = 0 y^{''}+by^{'}+ky=0 y′′+by′+ky=0我们记 u = [ y ′ y ] u=\begin{bmatrix}y^{'}\\y\end{bmatrix} u=[y′y],那么 u ′ = [ y ′ ′ y ′ ] = [ − b − k 1 0 ] [ y ′ y ] u^{'}=\begin{bmatrix}y^{''}\\y^{'}\end{bmatrix}=\begin{bmatrix}-b&-k\\1&0\end{bmatrix}\begin{bmatrix}y^{'}\\y\end{bmatrix} u′=[y′′y′]=[−b1−k0][y′y]这样就将它抽象成了矩阵的形式,也就是一个一阶微分方程乘以一个矩阵。其他的步骤同上面是一样的。如果遇到更高阶的微分方程,抽象的方法是一样的。解题的步骤也是类似的。
这一节的内容较为复杂,主要目的就是在实际情况下使用矩阵对角化,特征值等方法求解微分方程,给出了使用矩阵求解微分方程的通用规律,即高阶降阶。一阶用特征值和特征向量将原系数矩阵 A A A解耦,最后得到结果。并介绍了在我们解耦 A A A时使用矩阵对角化将其与特征向量联系起来运算的方法。另外介绍了判断收敛性的方法,即看特征值实部绝对值与1的大小关系。这些内容都是特征值与特征向量的实际应用,非常重要。