目录
- 23.微分方程, e x p ( A t ) exp(At) exp(At)
- 用矩阵求解微分方程
- 矩阵指数
- 二阶常微分方程
- 打赏
23.微分方程, e x p ( A t ) exp(At) exp(At)
用矩阵求解微分方程
例: { d u 1 d t = − u 1 + 2 u 2 d u 2 d t = u 1 − 2 u 2 \left \{ \begin{matrix} \dfrac{du_1}{dt} = -u_1 + 2u_2 \\ \dfrac{du_2}{dt} = u_1 - 2u_2 \end{matrix} \right. ⎩ ⎨ ⎧dtdu1=−u1+2u2dtdu2=u1−2u2,其中 u 1 , u 2 u_1 , u_2 u1,u2是 t t t的两个不同函数且 u 1 ( 0 ) = 1 , u 2 ( 0 ) = 0 u_1(0) = 1 , u_2(0) = 0 u1(0)=1,u2(0)=0
令 A = [ − 1 2 1 − 2 ] , u ⃗ = [ u 1 u 2 ] A = \begin{bmatrix} -1 & 2 \\ 1 &-2 \end{bmatrix} , \vec{u} = \begin{bmatrix} u_1 \\ u_2 \end{bmatrix} A=[−112−2],u=[u1u2],则有 d u ⃗ d t = A u ⃗ , u ⃗ ( 0 ) = [ 1 0 ] \dfrac{d \vec{u}}{dt} = A \vec{u} , \vec{u}(0) = \begin{bmatrix} 1 \\ 0 \end{bmatrix} dtdu=Au,u(0)=[10]
先求 A A A的特征向量和特征值,因为 A A A已经是一个奇异矩阵,所以 A A A有一个特征值为 λ 1 = 0 \lambda_1 = 0 λ1=0,又主对角线元素和为 − 3 -3 −3,所以另一个特征值为 λ 2 = − 3 \lambda_2 = -3 λ2=−3,两个特征值分别对应特征向量 x 1 ⃗ = [ 2 1 ] , x 2 ⃗ = [ 1 − 1 ] \vec{x_1} = \begin{bmatrix} 2 \\ 1 \end{bmatrix} , \vec{x_2} = \begin{bmatrix} 1 \\ -1 \end{bmatrix} x1=[21],x2=[1−1]
求出特征值和特征向量后便可以得到方程的两个特解 e λ 1 t x 1 ⃗ , e λ 2 t x 2 ⃗ e^{\lambda_1 t} \vec{x_1} , e^{\lambda_2 t} \vec{x_2} eλ1tx1,eλ2tx2,可以验证一下
将 u ⃗ = e λ 1 t x 1 ⃗ \vec{u} = e^{\lambda_1 t} \vec{x_1} u=eλ1tx1代入得: d u ⃗ d t = d e λ 1 t x 1 ⃗ d t = λ 1 e λ 1 t x 1 ⃗ = e λ 1 t λ 1 x 1 ⃗ = e λ 1 t A x 1 ⃗ = A e λ 1 t x 1 ⃗ \dfrac{d \vec{u}}{dt} = \dfrac{de^{\lambda_1 t} \vec{x_1}}{dt} = \lambda_1 e^{\lambda_1 t} \vec{x_1} = e^{\lambda_1 t} \lambda_1 \vec{x_1} = e^{\lambda_1 t} A \vec{x_1} = A e^{\lambda_1 t} \vec{x_1} dtdu=dtdeλ1tx1=λ1eλ1tx1=eλ1tλ1x1=eλ1tAx1=Aeλ1tx1, e λ 2 t x 2 ⃗ e^{\lambda_2 t} \vec{x_2} eλ2tx2同理
但是这两个特解仅仅满足了方程成立,并不一定满足 u ⃗ ( 0 ) = [ 1 0 ] \vec{u}(0) = \begin{bmatrix} 1 \\ 0 \end{bmatrix} u(0)=[10],不过容易证得这两个特解的任意线性组合也是方程的解,而且这两个特解线性无关,无论给出的 u ⃗ ( t 0 ) \vec{u}(t_0) u(t0)是什么均可以表示
所以设 u ⃗ = c 1 e λ 1 t x 1 ⃗ + c 2 e λ 2 t x 2 ⃗ \vec{u} = c_1 e^{\lambda_1 t} \vec{x_1} + c_2 e^{\lambda_2 t} \vec{x_2} u=c1eλ1tx1+c2eλ2tx2,将 u ⃗ ( 0 ) = [ 1 0 ] \vec{u}(0) = \begin{bmatrix} 1 \\ 0 \end{bmatrix} u(0)=[10]代入得: [ 1 0 ] = c 1 e 0 [ 2 1 ] + c 2 e 0 [ 1 − 1 ] \begin{bmatrix} 1 \\ 0 \end{bmatrix} = c_1 e^{0} \begin{bmatrix} 2 \\ 1 \end{bmatrix} + c_2 e^{0} \begin{bmatrix} 1 \\ -1 \end{bmatrix} [10]=c1e0[21]+c2e0[1−1],解得: c 1 = c 2 = 1 3 c_1 = c_2 = \dfrac{1}{3} c1=c2=31
因而 u ⃗ = 1 3 [ 2 1 ] + 1 3 e − 3 t [ 1 − 1 ] \vec{u} = \dfrac{1}{3} \begin{bmatrix} 2 \\ 1 \end{bmatrix} + \dfrac{1}{3} e^{-3t} \begin{bmatrix} 1 \\ -1 \end{bmatrix} u=31[21]+31e−3t[1−1]
将 u 1 , u 2 u_1 , u_2 u1,u2视作两个容器,将 t t t视作时间,由 u ⃗ ( 0 ) = [ 1 0 ] \vec{u}(0) = \begin{bmatrix} 1 \\ 0 \end{bmatrix} u(0)=[10]可知刚开始 u 1 u_1 u1中有 1 1 1的货物, u 2 u_2 u2中没有货物,但是随着 t t t的增大,即时间的流逝,由于 u 1 ′ < 0 , u 2 ′ > 0 u_1^{'} < 0 , u_2^{'} > 0 u1′<0,u2′>0, u 1 u_1 u1中的货物渐渐流向了 u 2 u_2 u2
可以发现当 t → + ∞ t \to +\infty t→+∞时, e − 3 t → 0 e^{-3t} \to 0 e−3t→0,所以 u ⃗ → 1 3 [ 2 1 ] \vec{u} \to \dfrac{1}{3} \begin{bmatrix} 2 \\ 1 \end{bmatrix} u→31[21],即 u ⃗ \vec{u} u收敛于 1 3 [ 2 1 ] \dfrac{1}{3} \begin{bmatrix} 2 \\ 1 \end{bmatrix} 31[21],此时称 1 3 [ 2 1 ] \dfrac{1}{3} \begin{bmatrix} 2 \\ 1 \end{bmatrix} 31[21]为 u ⃗ \vec{u} u的稳态
证明稳态存在的条件为所有特征值的实部均为非负数:
若特征值为实数, lim t → + ∞ e a t = { 1 , a = 0 0 , a < 0 \lim_{t \to +\infty} e^{at} = \left \{ \begin{matrix} 1 , a = 0 \\ 0 , a < 0 \end{matrix} \right. limt→+∞eat={1,a=00,a<0
若特征值为复数, e ( a + b i ) t = e a t ⋅ e b t i = e a t ( c o s b t + i s i n b t ) e^{(a + bi)t} = e^{at} \cdot e^{bti} = e^{at} (cos\ bt + i\ sin\ bt) e(a+bi)t=eat⋅ebti=eat(cos bt+i sin bt),想要当 t → + ∞ t \to +\infty t→+∞时该项对 u ⃗ \vec{u} u的影响不会无限增大,就要让 ∣ e a t ( c o s b t + i s i n b t ) ∣ |e^{at} (cos\ bt + i\ sin\ bt)| ∣eat(cos bt+i sin bt)∣趋于稳定,而 ∣ c o s b t + i s i n b t ∣ = 1 |cos\ bt + i\ sin\ bt| = 1 ∣cos bt+i sin bt∣=1,所以只要让 e a t e^{at} eat趋于稳定,那么又回到了特征值为实数的情况,所以 a ≤ 0 a \le 0 a≤0即可
综上, R e λ ≤ 0 Re\ \lambda \le 0 Re λ≤0即可
-
容易证得所有特征值的实部均为负数时,稳态为 0 ⃗ \vec{0} 0
-
考虑 A A A为二阶方阵时,满足什么 u ⃗ \vec{u} u才能有稳态,设 A = [ a b c d ] A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} A=[acbd],其实不用求出特征值就可以判断
若特征值均为复数,因为 a + d = λ 1 + λ 2 a + d = \lambda_1 + \lambda_2 a+d=λ1+λ2且 λ 1 , λ 2 \lambda_1 , \lambda_2 λ1,λ2为共轭复数,所以只需满足 a + d ≤ 0 a + d \le 0 a+d≤0即可
若特征值均为实数,此时 { λ 1 + λ 2 ≤ 0 λ 1 ⋅ λ 2 ≥ 0 \left \{ \begin{matrix} \lambda_1 + \lambda_2 \le 0 \\ \lambda_1 \cdot \lambda_2 \ge 0 \end{matrix} \right. {λ1+λ2≤0λ1⋅λ2≥0与稳态存在的条件等价,而 a + d = λ 1 + λ 2 , ∣ A ∣ = λ 1 ⋅ λ 2 a + d = \lambda_1 + \lambda_2 , |A| = \lambda_1 \cdot \lambda_2 a+d=λ1+λ2,∣A∣=λ1⋅λ2,所以只要满足 { a + d ≤ 0 ∣ A ∣ ≥ 0 \left \{ \begin{matrix} a + d \le 0 \\ |A| \ge 0 \end{matrix} \right. {a+d≤0∣A∣≥0即可
当特征值均为复数时,因为两个特征值为共轭复数,所以 ∣ A ∣ = λ 1 ⋅ λ 2 ≥ 0 |A| = \lambda_1 \cdot \lambda_2 \ge 0 ∣A∣=λ1⋅λ2≥0恒成立
综上只需满足 { a + d ≤ 0 ∣ A ∣ ≥ 0 \left \{ \begin{matrix} a + d \le 0 \\ |A| \ge 0 \end{matrix} \right. {a+d≤0∣A∣≥0即可
矩阵指数
A A A表示了 u ⃗ \vec{u} u各个元素之间的耦合方式,求 A A A的特征值和特征向量即为解耦,接下来换一种解耦思路
设 u ⃗ = S v ⃗ \vec{u} = S \vec{v} u=Sv,代入得: S d v ⃗ d t = A S v ⃗ S \dfrac{d \vec{v}}{dt} = AS \vec{v} Sdtdv=ASv,左右同时乘 S − 1 S^{-1} S−1得: d v ⃗ d t = S − 1 A S v ⃗ = Λ v ⃗ \dfrac{d \vec{v}}{dt} = S^{-1} AS \vec{v} = \Lambda \vec{v} dtdv=S−1ASv=Λv
这样就转化为了关于 v ⃗ \vec{v} v的方程,又因为 Λ \Lambda Λ为对角阵,所以 v ⃗ \vec{v} v各个元素之间不存在耦合,因而 v n = c n ⋅ e λ n t v_n = c_n \cdot e^{\lambda_n t} vn=cn⋅eλnt,将 v n ( 0 ) v_n(0) vn(0)代入得: v n = v n ( 0 ) ⋅ e λ n t v_n = v_n(0) \cdot e^{\lambda_n t} vn=vn(0)⋅eλnt,所以 v ⃗ = e Λ t v ⃗ ( 0 ) \vec{v} = e^{\Lambda t} \vec{v}(0) v=eΛtv(0),所以 u ⃗ = S v ⃗ = S e Λ t v ⃗ ( 0 ) = S e Λ t S − 1 u ⃗ ( 0 ) = e A t u ⃗ ( 0 ) \vec{u} = S \vec{v} = S e^{\Lambda t} \vec{v}(0) = S e^{\Lambda t} S^{-1} \vec{u}(0) = e^{At} \vec{u}(0) u=Sv=SeΛtv(0)=SeΛtS−1u(0)=eAtu(0),是不是看不懂?没关系,现在就来解释
引入矩阵指数,即底数为 e e e,指数为矩阵
e x e^x ex的麦克劳林公式为 e x = 1 + x + x 2 2 ! + x 3 3 ! + ⋯ + x n n ! + ⋯ e^x = 1 + x + \dfrac{x^2}{2!} + \dfrac{x^3}{3!} + \cdots + \dfrac{x^n}{n!} + \cdots ex=1+x+2!x2+3!x3+⋯+n!xn+⋯
指数为矩阵时也一样,即 e x = I + A + A 2 2 ! + A 3 3 ! + ⋯ + A n n ! + ⋯ e^x = I + A + \dfrac{A^2}{2!} + \dfrac{A^3}{3!} + \cdots + \dfrac{A^n}{n!} + \cdots ex=I+A+2!A2+3!A3+⋯+n!An+⋯
拓展: 这用到了一个经典的麦克劳林级数 e x = ∑ 0 + ∞ x n n ! e^x = \sum_{0}^{+\infty} \dfrac{x^n}{n!} ex=∑0+∞n!xn,其实另一个经典的麦克劳林级数 1 1 − x = ∑ 0 + ∞ x n \dfrac{1}{1 - x} = \sum_{0}^{+\infty} x^n 1−x1=∑0+∞xn也对矩阵适用,即 ( I − A ) − 1 = I + A + A 2 + ⋯ + A n + ⋯ (I - A)^{-1} = I + A + A^2 + \cdots + A^n + \cdots (I−A)−1=I+A+A2+⋯+An+⋯,当 A A A的所有特征值的绝对值都小于 1 1 1(如果特征值为复数,则模小于 1 1 1)时,这可以很方便的用来求矩阵的逆的近似值
证明当 A A A为对角阵时 e i , i A = e a i , i : e^A_{i , i} = e^{a_{i , i}}: ei,iA=eai,i:
对于对角阵有 A i , i k = a i , i k A^k_{i , i} = a_{i , i}^k Ai,ik=ai,ik,所以在用 A A A代入麦克劳林公式时, A A A的主对角线上的元素都分别代入了一次麦克劳林公 式,那么自然会变为 e e e的幂
所以 v ⃗ = [ e λ 1 t 0 ⋯ 0 0 e λ 2 t ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ e λ n t ] v ⃗ ( 0 ) = e Λ t v ⃗ ( 0 ) \vec{v} = \begin{bmatrix} e^{\lambda_1 t} & 0 & \cdots & 0 \\ 0 & e^{\lambda_2 t} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & e^{\lambda_n t} \end{bmatrix} \vec{v}(0)= e^{\Lambda t} \vec{v}(0) v= eλ1t0⋮00eλ2t⋮0⋯⋯⋱⋯00⋮eλnt v(0)=eΛtv(0)
证明 e A t = S e Λ t S − 1 e^{At} = S e^{\Lambda t} S^{-1} eAt=SeΛtS−1:
e A t = I + A t + ( A t ) 2 2 ! + ( A t ) 3 3 ! + ⋯ + ( A t ) n n ! + ⋯ = I + S Λ S − 1 t + S Λ 2 S − 1 t 2 2 ! + ⋯ + S Λ n S − 1 t n n ! + ⋯ = S [ I + Λ t + ( Λ t ) 2 2 ! + ⋯ + ( Λ t ) n n ! + ⋯ ] S − 1 = S e Λ t S − 1 \begin{aligned} e^{At} & = I + At + \dfrac{(At)^2}{2!} + \dfrac{(At)^3}{3!} + \cdots + \dfrac{(At)^n}{n!} + \cdots \\ & = I + S \Lambda S^{-1} t + \dfrac{S \Lambda^2 S^{-1} t^2}{2!} + \cdots + \dfrac{S \Lambda^n S^{-1} t^n}{n!} + \cdots \\ & = S [I + \Lambda t + \dfrac{(\Lambda t)^2}{2!} + \cdots + \dfrac{(\Lambda t)^n}{n!} + \cdots] S^{-1} \\ & = S e^{\Lambda t} S^{-1} \end{aligned} eAt=I+At+2!(At)2+3!(At)3+⋯+n!(At)n+⋯=I+SΛS−1t+2!SΛ2S−1t2+⋯+n!SΛnS−1tn+⋯=S[I+Λt+2!(Λt)2+⋯+n!(Λt)n+⋯]S−1=SeΛtS−1
想要让 e A t → O e^{At} \to O eAt→O,那么就需要 e Λ t → O e^{\Lambda t} \to O eΛt→O,即 e λ t → 0 e^{\lambda t} \to 0 eλt→0,即 R e λ < 0 Re\ \lambda < 0 Re λ<0
二阶常微分方程
对于一个二阶常微分方程 y ′ ′ + b y ′ + k y = 0 y^{''} + b y^{'} + ky = 0 y′′+by′+ky=0,令 u ⃗ = [ y ′ y ] \vec{u} = \begin{bmatrix} y^{'} \\ y \end{bmatrix} u=[y′y],则 u ⃗ ′ = [ y ′ ′ y ′ ] \vec{u}^{'} = \begin{bmatrix} y^{''} \\ y^{'} \end{bmatrix} u′=[y′′y′]
所以 u ⃗ ′ = [ − b − k 1 0 ] u ⃗ \vec{u}^{'} = \begin{bmatrix} -b & -k \\ 1 & 0 \end{bmatrix} \vec{u} u′=[−b1−k0]u,设 A = [ − b − k 1 0 ] A = \begin{bmatrix} -b & -k \\ 1 & 0 \end{bmatrix} A=[−b1−k0],这样又可以利用矩阵求解
对于更高阶的微分方程也可以使用类似的方法
那样 u ⃗ , u ⃗ ′ \vec{u} , \vec{u}^{'} u,u′为 n n n阶向量, A A A为 n n n阶方阵且 A = [ _ _ ⋯ _ _ 1 0 ⋯ 0 0 0 1 ⋯ 0 0 ⋮ ⋮ ⋱ ⋮ ⋮ 0 0 ⋯ 1 0 ] A = \begin{bmatrix} \_ & \_ & \cdots & \_ & \_ \\ 1 & 0 & \cdots & 0 & 0\\ 0 & 1 & \cdots & 0 & 0\\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & \cdots & 1 & 0\end{bmatrix} A= _10⋮0_01⋮0⋯⋯⋯⋱⋯_00⋮1_00⋮0 ,所以 0 0 0一定不是 A A A的特征值
最后还是要注意,本章所讲的内容仅对 A A A可对角化时有效,不是所有方阵都可以
打赏
制作不易,若有帮助,欢迎打赏!