微分方程、动力系统与混沌导论 第2章 平面线性系统[书摘]
第2章 平面线性系统
在本章我们开始研究微分方程组系统。形如
\pmb X’ = F(t, \boldsymbol X),
其中
F(t, \boldsymbol X) = \left( \begin{array}{l}{f_1}(t,{x_1},{x_2}, \cdots ,{x_n})\\\;\;\;\;\;\;\;\;\;\;\; \vdots \\{f_n}(t,{x_1},{x_2}, \cdots ,{x_n})\end{array} \right).
该系统的一个解就是满足方程的形如\boldsymbol X(t)=(x_1(t) \cdots,x_n(t))的函数,即
\boldsymbol X't(t) = F(t, \boldsymbol X(t)),
其中\boldsymbol X'(t)=(x'_1(t) \cdots,x'_n(t))。当然,现在我们还不能保证存在这样的一个解,但我们将在2.7节讨论这个复杂的问题。
如果所有的f_j都不依赖t,上述方程组系统就称为自治的,此时系统变成\boldsymbol X'=F(\boldsymbol X).。我们主要关心自治系统。
同一阶微分方程一样,满足F(\boldsymbol X_0)=0的向量\boldsymbol X_0称为系统的一个平衡点,而该平衡点则对应系统的一个常数解\boldsymbol X(t) = \boldsymbol X_0。
2.1 二阶微分方程
在科学和工程中出现的许多的微分方程都是二阶微分方程。这些方程具有如下的形式:
x''(t) = f(t,x,x').
这些二阶方程的重要例子中包括牛顿方程
mx''=f(x),
电子工程中的RLC电路方程
LCx''+RCx'+x=v(t),
以及大多数初等微分方程课程的支柱——受迫调和振子
mx''+bx'+kx=f(t).
如果引入第二个变量y=x',这些方程都只是一般二维微分方程系统的一类特例。
例如,考虑如下常系统二阶方程
x''+ax'+bx=0.
如果令y=x',则可将上述方程改写为以下的一阶方程组
\left\{ \begin{array}{l}x' = y\\y' = - bx - ay.\end{array} \right.
任何二阶方程都可以通过这种方式改写成一个一阶方程组。因而在本书的后面,我们将主要讨论方程组。
2.2 平面系统
在本章的余下部分,我们将讨论平面\mathbb{R}^2上的自治系统。将它们写成如下形式
\begin{array}{l}x' = f(x,y),\\y' = g(x,y),\end{array}
我们可以将上述方程简写成\boldsymbol X'=F(\boldsymbol X),其中\boldsymbol X = (x,y),\boldsymbol F(\boldsymbol X) = \boldsymbol F(x,y) = (f(x,y),g(x,y))。
我们将上述方程的右端看成是\mathbb{R}^2上的向量场,即我们认为\boldsymbol F(x,y)代表\mathbb{R}^2上的一个向量,其x分量和y分量分别是f(x,y)和g(x,y),而且其基点为(x,y)。例如,与系统
\begin{array}{l}x'=y\\y'=-x\end{array}
相关联的向量场如图2.1所示。注意到,此时许多向量相互重叠,这使得图形很难分辨。为此,我们通常作方向场来替代。所谓方向场就是向量场的归一化,即不考虑向量的长度而只考虑其方向(如何读图呢?比如对于点(x,y)=(1,1),对应的向量场就是(1,-1),从点(1,1)处引一向量(1,-1),即得到向量场)。
现在,该系统的一个解可以看成是平面上一条形如(x(t),y(t))的参数曲线,其中对每一个t,在点(x(t),y(t))处的切向量就是\boldsymbol F(x(t),y(t)),即解曲线(x(t),y(t))总是以在基点(x(t),y(t))处切于给定向量\boldsymbol F(x(t),y(t))的方式在平面上缠绕。
2.3 代数预备知识
在进一步讨论微分方程系统之前,我们需要先提一下相关代数方程组系统的一些基本事实。我们将常常遇到如下的方程组:
\begin{array}{l} ax+by=\alpha, \\ cx+dy=\beta, \end{array}
上述方程可用矩阵形式写成
\left( \begin{array}{l}a\;\;b\\c\;\;d\end{array} \right)\left( \begin{array}{l}x\\y\end{array} \right) = \left( \begin{array}{l}\alpha \\\beta \end{array} \right).
用\boldsymbol A表示2\times2的系数矩阵
\boldsymbol A=\left( \begin{array}{l}a\;\;b\\c\;\;d\end{array} \right).
事实上,这样的方程组有唯一解的充要条件是\boldsymbol A的行列式非零。回忆行列式的定义
\det \boldsymbol A=ad-bc.
当\det \boldsymbol A=0时,可能有解也可能无解(像这样的线性方程组解的情况只有三种:无解,唯一解,无穷多解),但如果有解的话(前提),则事实上有无穷多解。
如果\det \boldsymbol A=0,在\alpha = \beta =0的特殊情形,
\boldsymbol A \left(\begin{array}{l} x \\ y \end {array} \right)=\left( \begin{array}{l} 0\\0 \end{array}\right)
总有无穷多解。事实上,如果\boldsymbol A中的系数a非零,则有x=-(b/a)y,从而
-c \left(\frac ba \right)y+dy=0.
于是(ad-bd)y=0。由于\det \boldsymbol A=0,方程的解为(-(b/a)y,y),其中y是任意的。这就意味着,任一解都位于平面上过原点的一条直线上。只要\boldsymbol A中的元素有一个非零,都会有类似的直线。
2.4 平面线性系统
我们现在将注意力集中到最重要的一类平面微分方程系统,也即线性系统。在自治情形,这些系统有如下简单的形式
\begin {array}{l} x'=ax+by,\\y'=cx+dy, \end{array}
可简写成
\boldsymbol X'=\boldsymbol {AX}.
注意到原点总是线性系统的一个平衡点。为了寻找其它平衡点,我们需要求解代数方程组的线性系统
\begin {array}{l}ax+by=0, \\ cx+dy=0.\end {array}
这个系统有非零解当且仅当\det \boldsymbol A=0(因为总有零解,为了保证有非零解,这说明解不唯一,而唯一解的充要条件是\det \boldsymbol A非零)。在胶布我们已经知道,当 \det \boldsymbol A=0时,则有一条通过原点的直线,上面的每一个点都平衡点。于是我们得到:
命题
(1)当\det \boldsymbol A \ne 0时,平面线性系统\boldsymbol X'=\boldsymbol {AX}有唯一的平衡点(0,0);
(2)当\det \boldsymbol A=0(并且\boldsymbol A不是0矩阵)时,平面线性系统\boldsymbol X'=\boldsymbol {AX}的平衡点由一条直线构成。
2.5 特征值和特征向量
现在我们来研究如何寻找线性系统\boldsymbol X'=\boldsymbol {AX}的非平衡点解。此时,一个关键的观察是:假设\boldsymbol V_0为一非零向量,满足\boldsymbol {AV_0}=\lambda \boldsymbol V_0(\lambda \in \mathbb R),则函数
\boldsymbol X(t) = e^{\lambda t} \boldsymbol V_0
为系统的一个解。为此,我们作如下计算:
\begin{array}{l}\boldsymbol X'(t) = \lambda {e^{\lambda t}}\boldsymbol {V_0}\\\;\;\;\;\;\;\;\;\;\; = {e^{\lambda t}}\left( {\lambda \boldsymbol {V_0}} \right)\\\;\;\;\;\;\;\;\;\;\; = {e^{\lambda t}}\left( \boldsymbol{A{V_0}} \right)\\\;\;\;\;\;\;\;\;\;\;= \boldsymbol A\left( {{e^{\lambda t}}\boldsymbol {V_0}} \right)\\\;\;\;\;\;\;\;\;\;\; = \boldsymbol {AX}(t).\end{array}
这表明\boldsymbol X(t)确实为系统的一个解。这样的向量\boldsymbol V_0以及与之相关的标题有下面的名称:
定义 一个非零向量\boldsymbol V_0称为\boldsymbol A的一个\boldsymbol V_0,如果对某个实数\lambda,\boldsymbol {AV_0}=\lambda \boldsymbol V_0,常数\lambda则称为\boldsymbol A的一个特征值。
刚才我们已经看到,特征值、特征向量和微分方程系统的解之间有一个重要的关系:
定理 假设向量\boldsymbol V_0为矩阵\boldsymbol A属于\lambda的一个特征向量,则函数\boldsymbol X(t)=e^{\lambda t}\boldsymbol V_0为系统\boldsymbol X'=\boldsymbol {AX}的一个解。
特征多项式——\det(\boldsymbol A-\lambda \boldsymbol I);特征方程——\det(\boldsymbol A-\lambda \boldsymbol I)=0为了寻找特征向量,首先需要找到特征方程的根,也就是特征值。然后利用这些特征值再来寻找相应的特征向量。
2.6 求解线性系统
在上节我们已经注意到,如果我们可以找到特征方程的两个不同实根\lambda_1和\lambda_2,则我们就可以得到微分方程系统的一对解\boldsymbol X_i(t)=e^{\lambda_i t}\boldsymbol V_i,这里\boldsymbol V_i是属于\lambda_i的一个特征向量。注意这每一个解都是直线解。事实上,我们有\boldsymbol X_i(0)=\boldsymbol V_i,这是平面上的一个非令点。对每个t,e^{\lambda_it}\boldsymbol V_i无非就是\boldsymbol V_i乘上一个标量,因为它们都位于从原点出发经过\boldsymbol V_i的射线上。
定理 假设\boldsymbol A有一对实特征值\lambda_1 \ne \lambda_2,对应的特征向量\boldsymbol V_1和\boldsymbol V_2。则线性系统\boldsymbol X'=\boldsymbol {AX}的通解为
\boldsymbol X(t) = \alpha e^{\lambda_1 t}\boldsymbol V_1 + \beta e^{\lambda_2 t}\boldsymbol V_2.
2.7 线性叠加原理
上一节讨论的定理是一般n维线性系统基本定理一个很特殊的情形。这个结论在二维情形可以如下描述:若\boldsymbol X'=\boldsymbol {AX}是一个平面线性系统,\boldsymbol Y_1(t)和\boldsymbol Y_2(t)是它的两个解,则函数\alpha \boldsymbol Y_1(t) + \beta \boldsymbol Y_2(t)也是该系统的一个解。证明这个结论并没有用到特征值是实的且是不同的。这个事实称为线性叠加原理。更重要的是,如果初值条件\boldsymbol Y_1(0)和\boldsymbol Y_2(0)是线性无关的向量,则它们构成了\mathbb R^2的一个基,于是任给向量\boldsymbol X_0 \in \mathbb R^2,可以确定常数\alpha和\beta使得\boldsymbol X_0 = \alpha \boldsymbol Y_1(0) + \beta \boldsymbol Y_2(0),于是线性叠加原理告诉我们,满足初值条件\boldsymbol X(0) = \boldsymbol X_0的解就是\boldsymbol X(t)=\alpha \boldsymbol Y_1(t) + \beta \boldsymbol Y_2(t)。从而我们就得到了系统任一给定初值问题的一个解。这一重要的结论可以总结成:
定理 设\boldsymbol X'=\boldsymbol {AX}为一平面线性系统,\boldsymbol Y_1(t)和\boldsymbol Y_2(t)是它的两个解,而且\boldsymbol Y_1(0)和\boldsymbol Y_2(0)是线性无关的(事实上也保证了\boldsymbol Y_1(t)和\boldsymbol Y_2(t)是线性无关的)。则
\boldsymbol X(t)=\alpha \boldsymbol Y_1(t) + \beta \boldsymbol Y_2(t)
是系统满足初值条件\boldsymbol X_0 = \alpha \boldsymbol Y_1(0) + \beta \boldsymbol Y_2(0)的唯一解。
说明:如果去除时间t,问题相对容易理解,而加上时间t后,定理告诉我们,在t=0时刻,若两个解线性无关,之后在任意时刻t依然线性无关;在t=0时刻,若有\boldsymbol X_0 = \alpha \boldsymbol Y_1(0) + \beta \boldsymbol Y_2(0),则在任意时刻t,有\boldsymbol X(t)=\alpha \boldsymbol Y_1(t) + \beta \boldsymbol Y_2(t)成立。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)