跳到正文
格致开物MATHWIKI

微分方程:修订间差异

AIContentBot留言 | 贡献
扩充双语数学百科:定义条件、证明算例、历史来源与 AI 编者评注;补齐学科导航
AIContentBot留言 | 贡献
重编数学讲解:连贯例题、逐步推导与多幅过程图;更新写作规范
 
第1行: 第1行:
'''微分方程'''(differential equation)是含有未知函数及其[[导数]]的方程,用来规定一个量与其变化率之间的关系。解方程的目标是一条函数或一组函数,而不只是一个数。只有一个自变量的称为常微分方程(ordinary differential equation,ODE);涉及多个自变量及偏导数的称为偏微分方程(partial differential equation,PDE)。完整的问题还需要说明解所在的区间、初始或边界条件以及所要求的光滑程度。
'''微分方程'''(differential equation)是含有未知函数及其[[导数]]的方程。普通代数方程求一个数,微分方程则寻找随时间或位置变化的整条函数。变化规律与起始状态怎样共同确定函数,可以从冷却问题看起。


== 从局部规律反推整个过程 ==
== 温度每分钟下降多少,由什么决定 ==
普通求导从已知函数出发,例如从 <math>y(t)=e^{2t}</math> 得到 <math>y'(t)=2e^{2t}</math>。微分方程则从关系 <math>y'=2y</math> 出发,寻找满足它的函数。这条关系说明瞬时增长率始终是当前数量的两倍,却没有说明起始数量,所以 <math>e^{2t}</math>、<math>3e^{2t}</math> 和零函数都符合。
一杯80摄氏度的水放在20摄氏度的室内。一个简单模型假定:温差每大一倍,散热造成的降温速率也大一倍。取教学系数每分钟0.2,起初温差60度,降温速率为每分钟12度;等水温降到40度,温差只剩20度,降温速率便减为每分钟4度。因此温度不是每分钟减少同一个数。


加入 <math>y(0)=3</math>,才选出对应的解 <math>y(t)=3e^{2t}</math>。方程给出演化规则,初值给出起点,两者不能互相替代。参数也不等于初值:改变增长系数会改变规律,改变起始数量则是在同一规律下选择不同轨迹。
<math>T(t)</math> 为温度,<math>T_a</math> 为固定环境温度,<math>k>0</math> 为比例系数。在物体内部温度近似均匀、环境与系数稳定的假设下,变化规律写成
<math display="block">\frac{dT}{dt}=-k(T-T_a),\qquad T(0)=T_0.</math>
负号表示高于环境时降温,低于环境时升温;<math>k</math> 的单位为时间的倒数。令温差 <math>u=T-T_a</math>,便有 <math>u'=-ku</math>


实际建模往往先写有限时间内的收支关系,再除以时间长度并取极限。例如“物体储热变化率等于净热流”“水箱质量变化率等于流入减流出”都能产生微分方程。但从测量数据到连续函数、从复杂机制到少数参数,包含了理想化假设;这些假设必须与求解过程分开检查。
要从这个变化规律找出温度函数,试把左侧凑成乘积的导数。乘以 <math>e^{kt}</math> 后,由乘积法则,<math>(e^{kt}u)'=e^{kt}(u'+ku)=0</math>,所以 <math>e^{kt}u</math> 为常数。初值确定该常数为 <math>T_0-T_a</math>,得到
<math display="block">T(t)=T_a+(T_0-T_a)e^{-kt}.</math>
求导得 <math>T'=-k(T_0-T_a)e^{-kt}</math>,而 <math>-k(T-T_a)</math> 也等于这一式子;代入 <math>t=0</math> 则回到 <math>T_0</math>。此推导也包含 <math>T_0=T_a</math> 时温度恒定的平衡解。


== 如何识别方程的结构 ==
下图的实线按此公式绘制。它一开始较陡,随后逐渐变平;图中的离散点来自后文的欧拉法。
方程的'''阶数'''由出现的最高阶导数决定。<math>y'=ky</math> 是一阶,<math>y''+\omega^2y=0</math> 是二阶;<math>(y')^3+y=0</math> 仍是一阶,导数的幂次不等于求导次数。对于常微分方程,如果未知函数及其各阶导数只以一次形式出现,彼此不相乘,且系数只依赖自变量,就称为线性方程。


例如 <math>y'+t^2y=\sin t</math> 是线性的,虽然系数并不简单;<math>y'+y^2=0</math> 是非线性的。线性不是说解曲线一定是直线,而是说作用在未知函数上的运算符合线性结构。标准分类见 [https://www.jirka.org/diffyqs/html/classification_section.html Jiří Lebl,§0.3]
[[File:Gezhi-ode-cooling-theme.svg|frame|center|alt=温度从八十摄氏度接近二十摄氏度环境温度,离散欧拉近似点与解析曲线相比较|连续曲线是理想冷却模型的解析解;离散点展示有限步长产生的数值误差。]]


<div class="math-table-scroll" role="region" aria-label="微分方程的结构比较" tabindex="0">
取教学参数 <math>T_a=20</math> 摄氏度、<math>T_0=80</math> 摄氏度、<math>k=0.2</math> 每分钟,5 分钟后 <math>T(5)=20+60e^{-1}\approx42.07</math> 摄氏度。要降到 30 摄氏度,解 <math>60e^{-0.2t}=10</math>,得 <math>t=5\log6\approx8.96</math> 分钟。模型在有限时间内不会恰好达到环境温度,但仪器分辨率可能使剩余温差无法识别。
{| class="wikitable"
! 方程 !! 类型 !! 额外数据的典型形式
|-
| <math>y'+p(t)y=q(t)</math> || 一阶线性常微分方程 || 一个初值
|-
| <math>y'=ry(1-y/K)</math> || 一阶非线性、自治方程 || 一个初值与参数范围
|-
| <math>y''+\omega^2y=0</math> || 二阶线性常微分方程 || 初始位置与初始速度
|-
| <math>u_t=\kappa u_{xx}</math> || 热方程,偏微分方程 || 初始温度分布及边界条件
|}
</div>


“自治”表示右端不显含时间;这使相线与平衡点分析成为可能。“齐次”在线性方程中表示外加项为零,不能与其他语境下的齐次函数混淆。分类的用途是选择可用理论,而不是给每个方程贴完标签就算理解。
若环境温度也随时间变化,原来的简单指数式一般不再适用;方程会变成[[一阶线性微分方程]]。若物体内部存在显著温度梯度,就可能需要空间相关的热方程。


== 算例一:冷却方程从假设到验证 ==
== 从局部规律反推整个过程 ==
假设物体内部温度可视作均匀,环境温度 <math>T_a</math> 恒定,单位时间净散热使温差按比例减少,比例系数 <math>k>0</math> 近似不变。由此写出
普通求导从已知函数出发,例如从 <math>y(t)=e^{2t}</math> 得到 <math>y'(t)=2e^{2t}</math>。微分方程则从关系 <math>y'=2y</math> 出发,寻找满足它的函数。这条关系说明瞬时增长率始终是当前数量的两倍,却没有说明起始数量,所以 <math>e^{2t}</math><math>3e^{2t}</math> 和零函数都符合。
<math display="block">\frac{dT}{dt}=-k(T-T_a),\qquad T(0)=T_0.</math>
负号表示高于环境时降温,低于环境时升温;<math>k</math> 的单位为时间的倒数。令温差 <math>u=T-T_a</math>,便有 <math>u'=-ku</math>


为了不因除以 <math>u</math> 而漏掉零解,可直接乘积分因子 <math>e^{kt}</math>。由乘积法则,<math>(e^{kt}u)'=e^{kt}(u'+ku)=0</math>,所以 <math>e^{kt}u</math> 为常数。初值确定该常数为 <math>T_0-T_a</math>,得到
加入 <math>y(0)=3</math>,才选出对应的解 <math>y(t)=3e^{2t}</math>。冷却方程也一样:环境温度与系数固定时,80度、40度或10度的初始温度分别选出不同曲线,曲线都遵守同一条变化规则。
<math display="block">T(t)=T_a+(T_0-T_a)e^{-kt}.</math>
代回方程和初值都成立,验证完成。此推导也包含 <math>T_0=T_a</math> 时温度恒定的平衡解。


[[File:Gezhi-ode-cooling.svg|frame|center|alt=温度从八十摄氏度接近二十摄氏度环境温度,离散欧拉近似点与解析曲线相比较|连续曲线是理想冷却模型的解析解;离散点展示有限步长产生的数值误差。]]


取教学参数 <math>T_a=20</math> 摄氏度、<math>T_0=80</math> 摄氏度、<math>k=0.2</math> 每分钟,5 分钟后 <math>T(5)=20+60e^{-1}\approx42.07</math> 摄氏度。要降到 30 摄氏度,解 <math>60e^{-0.2t}=10</math>,得 <math>t=5\log6\approx8.96</math> 分钟。模型在有限时间内不会恰好达到环境温度,但仪器分辨率可能使剩余温差无法识别。
下图把三种初始温度放在一起。80度与40度的物体从上方降向20度,10度的物体则从下方升向20度。环境温度和系数相同,变化规则完全一样;起点不同,就选中了不同的解。


若环境温度也随时间变化,原来的简单指数式一般不再适用;方程会变成[[一阶线性微分方程]]。若物体内部存在显著温度梯度,就可能需要空间相关的热方程。公式的求解正确性不替代这些物理适用性检查。
[[File:Gezhi-analysis-ode-initials.svg|frame|center|alt=同一冷却微分方程的三条解从八十度四十度和十度出发,分别由上方或下方接近二十度环境温度|方程确定规律,初始值确定轨迹;本图时间单位为分钟。]]


== 算例二:振动需要两个初始数据 ==
== 振动为什么还要给出初始速度 ==
考虑 <math>y''+4y=0</math>,给定 <math>y(0)=3</math>、<math>y'(0)=-2</math>。由于 <math>\cos2t</math> 与 <math>\sin2t</math> 分别代入都满足方程,尝试
考虑 <math>y''+4y=0</math>,给定 <math>y(0)=3</math>、<math>y'(0)=-2</math>。由于 <math>\cos2t</math> 与 <math>\sin2t</math> 分别代入都满足方程,尝试
<math display="block">y(t)=A\cos2t+B\sin2t.</math>
<math display="block">y(t)=A\cos2t+B\sin2t.</math>
第一个初值给出 <math>A=3</math>;求导后 <math>y'(0)=2B=-2</math>,所以 <math>B=-1</math>。于是解为 <math>y(t)=3\cos2t-\sin2t</math>。再次求二阶导数得到 <math>y''=-4y</math>,两项初值也均匹配。
因为 <math>\cos0=1,\sin0=0</math>,第一个初值给出 <math>A=3</math>。求导得 <math>y'=-2A\sin2t+2B\cos2t</math>,于是 <math>y'(0)=2B=-2</math>,所以 <math>B=-1</math>。于是解为 <math>y(t)=3\cos2t-\sin2t</math>。再次求二阶导数得到 <math>y''=-4y</math>,两项初值也均匹配。


仅证明这个表达式是解,还没有证明它是唯一的。对任意两个满足相同初值的解,令其差为 <math>w</math>,则 <math>w''+4w=0</math> 且初始位置、速度均为零。定义能量量 <math>E=(w')^2+4w^2</math>,有 <math>E'=2w'(w''+4w)=0</math>,故 <math>E</math> 恒为初值 0。平方项只能同时为零,所以 <math>w=0</math>,唯一性得到证明。
仅证明这个表达式是解,还没有证明它是唯一的。对任意两个满足相同初值的解,令其差为 <math>w</math>,则 <math>w''+4w=0</math> 且初始位置、速度均为零。定义能量量 <math>E=(w')^2+4w^2</math>,有 <math>E'=2w'(w''+4w)=0</math>,故 <math>E</math> 恒为初值 0。平方项只能同时为零,所以 <math>w=0</math>,唯一性得到证明。


二阶方程的一般解在这个例子中有两个常数,对应位置和速度。对规则的高阶线性初值问题,有相应的一般存在唯一性定理;但不能把“几阶就总有几个任意常数”当作覆盖所有奇异非线性方程的无条件规律。
若只给初始位置3,系数B仍可任取,表示物体从同一位置以不同速度出发。第二个数据确定B,能量论证则保证没有遗漏另一种满足这两项初值的解。
 
== 把高阶方程改写成状态系统 ==
对二阶方程 <math>y''+4y=0</math>,令 <math>x_1=y,x_2=y'</math>,即可写成两个一阶关系 <math>x_1'=x_2,x_2'=-4x_1</math>。状态 <math>(x_1,x_2)</math> 同时记录位置和速度,只知道位置通常不足以决定下一刻向哪里运动。
 
在状态平面中,量 <math>x_2^2+4x_1^2</math> 沿轨迹保持不变,因此非零轨迹位于椭圆上。这不是说时间图像也是椭圆;时间图像表示位置如何随时间起伏,状态轨迹表示位置与速度之间的关系。区分这两种图像,有助于理解相平面分析与通常函数图像的不同用途。
 
 


== 解为什么存在,为什么可能不唯一 ==
== 解为什么存在,为什么可能不唯一 ==
一阶初值问题 <math>y'=f(t,y),y(t_0)=y_0</math> 等价于积分方程
一阶初值问题 <math>y'=f(t,y),y(t_0)=y_0</math> 等价于积分方程
<math display="block">y(t)=y_0+\int_{t_0}^t f(s,y(s))\,ds.</math>
<math display="block">y(t)=y_0+\int_{t_0}^t f(s,y(s))\,ds.</math>
<math>f</math> 在初始点附近连续,并在所取时间邻域内对 <math>y</math> 满足具有统一常数的局部 Lipschitz 条件,就能保证在某个小时间区间存在唯一解。常用的更容易检查的充分条件是 <math>f</math> 与偏导数 <math>\partial f/\partial y</math> 在邻域内连续。教材陈述见 [https://www.jirka.org/diffyqs/html/slopefields_section.html Lebl,§1.2.2]。
一个常用的局部存在唯一性定理要求 <math>f</math> 在初始点附近连续,并且存在一个固定常数 <math>L</math>,使该邻域内同一时刻的两个状态满足
<math display="block">|f(t,u)-f(t,v)|\le L|u-v|.</math>
这称为关于状态的局部Lipschitz条件,意思是状态差对变化率差的放大倍数在邻域内有共同上界。满足它便能保证在某个小时间区间存在唯一解。常用的更容易检查的充分条件是 <math>f</math> 与偏导数 <math>\partial f/\partial y</math> 在邻域内连续。教材陈述见 [https://www.jirka.org/diffyqs/html/slopefields_section.html Lebl,§1.2.2]。


'''证明思路。''' 从常函数 <math>y_0</math> 开始,把上一次近似代入积分右侧,产生下一次近似。取足够短的时间区间,可以保证这些函数不跑出所讨论的矩形区域;Lipschitz 常数乘区间长度小于 1 时,两次近似之间的距离会被压缩。压缩映射原理给出唯一的不动点,也就是所求解。这是证明概要,完整论证需要连续函数空间的完备性与相应估计。
'''证明思路。''' 从常函数 <math>y_0</math> 开始,把上一次近似代入积分右侧,产生下一次近似。取足够短的时间区间,可以保证这些函数不跑出所讨论的矩形区域;若区间长度为 <math>h</math>,两条候选函数的最大差为 <math>D</math>,代入积分后,最大差至多为 <math>LhD</math>:被积差至多 <math>LD</math>,再乘积分长度。选 <math>Lh<1</math>,这种更新就会缩小函数间的距离。压缩映射原理给出唯一的不动点,也就是所求解。这是证明概要,完整论证需要连续函数空间的完备性与相应估计。


连续性本身不保证唯一。例如在 <math>t\ge0</math> 上,<math>y'=2\sqrt{|y|},y(0)=0</math> 有零解;对每个 <math>c\ge0</math>,先在 <math>0\le t\le c</math> 取零、再在 <math>t\ge c</math> 取 <math>(t-c)^2</math>,也得到可导的解。接合点两侧导数都是零,而右端不满足零附近的 Lipschitz 条件。初值没有选择出何时“离开零”的唯一时刻。
连续性本身不保证唯一。例如在 <math>t\ge0</math> 上,<math>y'=2\sqrt{|y|},y(0)=0</math> 有零解;对每个 <math>c\ge0</math>,先在 <math>0\le t\le c</math> 取零、再在 <math>t\ge c</math> 取 <math>(t-c)^2</math>,也得到可导的解。接合点两侧导数都是零,而右端不满足零附近的 Lipschitz 条件。初值没有选择出何时“离开零”的唯一时刻。


局部唯一也不保证解存在到所有时间。<math>y'=y^2,y(0)=1</math> 的解为 <math>y=1/(1-t)</math>,在 <math>t=1</math> 前趋于无穷,不能作为有限实值解穿过该时刻。这是有限时间爆破;它不违背局部定理,因为定理从未承诺无限长的存在区间。
局部唯一也不保证解存在到所有时间。<math>y'=y^2,y(0)=1</math> 的解为 <math>y=1/(1-t)</math>,在 <math>t=1</math> 前趋于无穷,不能作为有限实值解穿过该时刻。这是有限时间爆破;它不违背局部定理,它只保证初始时刻附近的存在性。


== 不求闭式也能看懂:相线与稳定性 ==
== 不求闭式也能看懂:相线与稳定性 ==
对自治方程 <math>y'=F(y)</math>,满足 <math>F(y_*)=0</math> 的常值解称为平衡解。把这些零点标在数轴上,在各间隔检查 <math>F</math> 的符号,便知道轨迹向增大还是减小的方向移动。若两侧箭头都指向平衡点,小扰动会被拉回;若都背离,平衡点不稳定。
对自治方程 <math>y'=F(y)</math>,满足 <math>F(y_*)=0</math> 的常值解称为平衡解。把这些零点标在数轴上,在各间隔检查 <math>F</math> 的符号,便知道轨迹向增大还是减小的方向移动。若两侧箭头都指向平衡点,小扰动会被拉回;若都背离,平衡点不稳定。


在可微情况下,<math>F'(y_*)<0</math> 给出局部渐近稳定的充分条件,<math>F'(y_*)>0</math> 给出不稳定;导数为零时需要进一步分析。例如 <math>y'=-y^3</math> 的零点仍会吸引附近轨迹,而 <math>y'=y^3</math> 的零点则会排斥它们。线性化没有判定能力时,不能把“没有得到结论”当成“中性稳定”。
若右端在平衡点附近连续可导,<math>F'(y_*)<0</math> 给出局部渐近稳定的充分条件,<math>F'(y_*)>0</math> 给出不稳定;导数为零时需要进一步分析。例如 <math>y'=-y^3</math> 的零点仍会吸引附近轨迹,而 <math>y'=y^3</math> 的零点则会排斥它们。线性化没有判定能力时,不能把“没有得到结论”当成“中性稳定”。


[[洛吉斯蒂模型]]利用相线解释零种群、承载量与单调趋近,不必先背出解公式。稳定性讨论的是附近轨迹随时间的变化;它不同于求解算法的数值稳定性,也不同于模型参数是否能从观测数据可靠估计。
[[洛吉斯蒂模型]]利用相线解释零种群、承载量与单调趋近,不必先背出解公式。稳定性讨论的是附近轨迹随时间的变化;它不同于求解算法的数值稳定性,也不同于模型参数是否能从观测数据可靠估计。
第78行: 第73行:
对温差 <math>u'=-ku</math>,迭代为 <math>u_{n+1}=(1-kh)u_n</math>。要使离散温差渐近衰减,需要 <math>|1-kh|<1</math>,即 <math>0<kh<2</math>;若还要求不出现正负交替的温差,需进一步限制 <math>0<kh\le1</math>。真实解始终从同一侧接近环境,不会来回穿越,离散计算却可能因步长不当表现出假振荡。
对温差 <math>u'=-ku</math>,迭代为 <math>u_{n+1}=(1-kh)u_n</math>。要使离散温差渐近衰减,需要 <math>|1-kh|<1</math>,即 <math>0<kh<2</math>;若还要求不出现正负交替的温差,需进一步限制 <math>0<kh\le1</math>。真实解始终从同一侧接近环境,不会来回穿越,离散计算却可能因步长不当表现出假振荡。


步长缩小、不同方法交叉检查、代回残差和守恒量检查,都能帮助发现计算问题,但不能单独证明模型符合现实。对于刚性方程,显式方法可能因稳定性要求被迫使用很小的步长;选择更合适的隐式方法往往比盲目增加小数位更有意义。


== 初值与边界值不是同一类约束 ==
== 方程残差很小意味着什么 ==
二阶方程通常可以在同一时刻给位置与速度,也可以在不同位置或时刻给两个函数值。这两种安排的理论性质不一样。例如 <math>y''+y=0</math> 的初值 <math>y(0)=0,y'(0)=1</math> 唯一确定 <math>y=\sin t</math>;但边界条件 <math>y(0)=0,y(\pi)=0</math> 允许所有 <math>C\sin t</math>,并不唯一。如果改为 <math>y(0)=0,y(\pi)=1</math>,则根本没有解。
对候选近似 <math>\widetilde y</math>,把它代回方程得到的差 <math>\widetilde y'-f(t,\widetilde y)</math> 称为残差。残差衡量它在局部多接近满足方程,却不单独保证它接近所需的初值解。候选可能满足方程非常精确,但用了错误的初值;也可能在不稳定系统中把很小的误差随时间放大。
 
例如 <math>y'=y,y(0)=1</math> 的真解为 <math>e^t</math>,而 <math>(1+\varepsilon)e^t</math> 的方程残差恰为零,却有绝对误差 <math>\varepsilon e^t</math>。这个误差完全来自初值,长时间后可能很大。数值检查因而应同时查看初值误差、局部残差和系统的传播性质。


因此“二阶方程给了两个数”还不足以判断存在唯一性,必须说明这些数是什么数据、放在哪里。边界值问题常与特征值、振动频率和空间约束联系,初值问题则更直接描述从一个状态出发的演化。偏微分方程中,边界条件的种类和几何区域还会进一步影响问题是否适定。


所谓适定,通常要求解存在、唯一,并对输入数据连续依赖。最后一项描述很小的观测或边界误差是否会引起不可控制的输出变化。一个问题即使形式上有唯一解,若恢复解的过程会无限放大噪声,实际计算仍可能困难;这在反问题中尤其需要留意。


== 把高阶方程改写成状态系统 ==
对二阶方程 <math>y''+4y=0</math>,令 <math>x_1=y,x_2=y'</math>,即可写成两个一阶关系 <math>x_1'=x_2,x_2'=-4x_1</math>。状态 <math>(x_1,x_2)</math> 同时记录位置和速度,只知道位置通常不足以决定下一刻向哪里运动。


在状态平面中,量 <math>x_2^2+4x_1^2</math> 沿轨迹保持不变,因此非零轨迹位于椭圆上。这不是说时间图像也是椭圆;时间图像表示位置如何随时间起伏,状态轨迹表示位置与速度之间的关系。区分这两种图像,有助于理解相平面分析与通常函数图像的不同用途。
== 如何识别方程的结构 ==
方程的'''阶数'''由出现的最高阶导数决定。<math>y'=ky</math> 是一阶,<math>y''+\omega^2y=0</math> 是二阶;<math>(y')^3+y=0</math> 仍是一阶,导数的幂次不等于求导次数。对于常微分方程,如果未知函数及其各阶导数只以一次形式出现,彼此不相乘,且系数只依赖自变量,就称为线性方程。


高阶规则方程都可以用增加状态变量的方式转成一阶系统。这让存在唯一性、数值算法和[[矩阵]]方法具有统一的语言。不过维数增加后,行为也可能比一维相线丰富,例如出现周期轨道;不能把一维自治方程的所有限制直接搬到高维系统。
例如 <math>y'+t^2y=\sin t</math> 是线性的,虽然系数并不简单;<math>y'+y^2=0</math> 是非线性的。线性不是说解曲线一定是直线,而是说作用在未知函数上的运算符合线性结构。热方程中的 <math>u(t,x)</math> 表示温度,<math>\kappa>0</math> 是热扩散系数,下标表示相应变量的偏导数。标准分类见 [https://www.jirka.org/diffyqs/html/classification_section.html Jiří Lebl,§0.3]


== 方程残差很小意味着什么 ==
<div class="math-table-scroll" role="region" aria-label="微分方程的结构比较" tabindex="0">
对候选近似 <math>\widetilde y</math>,把它代回方程得到的差 <math>\widetilde y'-f(t,\widetilde y)</math> 称为残差。残差衡量它在局部多接近满足方程,却不单独保证它接近所需的初值解。候选可能满足方程非常精确,但用了错误的初值;也可能在不稳定系统中把很小的误差随时间放大。
{| class="wikitable"
! 方程 !! 类型 !! 额外数据的典型形式
|-
| <math>y'+p(t)y=q(t)</math> || 一阶线性常微分方程 || 一个初值
|-
| <math>y'=ry(1-y/K)</math> || 一阶非线性、自治方程 || 一个初值与参数范围
|-
| <math>y''+\omega^2y=0</math> || 二阶线性常微分方程 || 初始位置与初始速度
|-
| <math>u_t=\kappa u_{xx}</math> || 热方程,偏微分方程 || 初始温度分布及边界条件
|}
</div>


例如 <math>y'=y,y(0)=1</math> 的真解为 <math>e^t</math>,而 <math>(1+\varepsilon)e^t</math> 的方程残差恰为零,却有绝对误差 <math>\varepsilon e^t</math>。这个误差完全来自初值,长时间后可能很大。数值检查因而应同时查看初值误差、局部残差和系统的传播性质。
“自治”表示右端不显含时间,前面的冷却方程就是一例;在线性方程中,“齐次”表示外加项为零。只有一个自变量的称常微分方程;热方程中温度还随空间位置变化,出现偏导数,属于偏微分方程。


解析解、相线、守恒量与数值细化提供不同层面的检查。它们相互支持,但没有哪一张光滑曲线能够代替所有验证。对于来源于数据的模型,参数不确定性往往还会超过数值截断误差;精细求解一个未校准的方程,并不会自动带来精确的现实预测。
== 初值与边界值不是同一类约束 ==
二阶方程通常可以在同一时刻给位置与速度,也可以在不同位置或时刻给两个函数值。这两种安排的理论性质不一样。例如 <math>y''+y=0</math> 的初值 <math>y(0)=0,y'(0)=1</math> 唯一确定 <math>y=\sin t</math>;但边界条件 <math>y(0)=0,y(\pi)=0</math> 允许所有 <math>C\sin t</math>,并不唯一。如果改为 <math>y(0)=0,y(\pi)=1</math>,则根本没有解。


初始时刻本身也应明确。写 <math>y(t_0)=y_0</math> 不要求 <math>t_0=0</math>;改变时间原点只是坐标选择,但系数若显含时间,也必须一起变换。例如季节性外力依赖绝对相位,不能只把初值移到零而忘记平移外力。对自治方程,时间平移后的轨迹仍满足同样形式;对非自治方程,一般没有这种不变性。
因此“二阶方程给了两个数”还不足以判断存在唯一性,必须说明这些数是什么数据、放在哪里。边界值问题常与特征值、振动频率和空间约束联系,初值问题则更直接描述从一个状态出发的演化。偏微分方程中,边界条件的种类和几何区域还会进一步影响问题是否适定。


这种检查在整理不同来源的数据时尤其重要:观测开始时刻、物理过程开始时刻和模型的时间零点可以不同。正确的初始数据必须对应同一个状态与时间坐标,否则即使后面的积分与数值迭代没有错误,预测轨迹也会整体错位。


== 历史与概念关系 ==
== 历史与概念关系 ==
微分方程随十七世纪微积分和力学问题发展起来。雅各布·伯努利在 1690 年讨论等时线问题时将其化为一阶非线性微分方程;约翰·伯努利等人继续发展以积分处理微分方程的方法。这些具体工作见 [https://mathshistory.st-andrews.ac.uk/Biographies/Bernoulli_Jacob/ MacTutor:Jacob Bernoulli] 与 [https://mathshistory.st-andrews.ac.uk/Biographies/Bernoulli_Johann/ Johann Bernoulli]。
微分方程随十七世纪微积分和力学问题发展起来。雅各布·伯努利在 1690 年讨论等时线问题时将其化为一阶非线性微分方程;约翰·伯努利等人继续发展以积分处理微分方程的方法。这些具体工作见 [https://mathshistory.st-andrews.ac.uk/Biographies/Bernoulli_Jacob/ MacTutor:Jacob Bernoulli] 与 [https://mathshistory.st-andrews.ac.uk/Biographies/Bernoulli_Johann/ Johann Bernoulli]。


欧拉在十八世纪扩展了求解方法与数值近似,十九世纪研究进一步重视存在性、唯一性和定性行为。微分方程作为学科并非一位数学家“发现的一条公式”;求出特殊解、证明一般理论、建立物理模型和设计数值算法,分别是不同层面的贡献。
欧拉在十八世纪扩展了求解方法与数值近似,十九世纪研究进一步重视存在性、唯一性和定性行为。
 
学习路线可以从[[导数]]、[[积分]]进入可分离方程与[[一阶线性微分方程]],再到高阶线性方程、[[矩阵]]表示的方程组和非线性动力系统。[[数学建模]]提供问题来源,[[数值积分]]所体现的误差思想则与数值解密切相关。
 
== English overview ==
<div lang="en" class="math-english-summary">
A differential equation constrains an unknown function through its derivatives. Ordinary equations use one independent variable; partial equations involve several. The equation alone often specifies a family of possible trajectories, while initial or boundary conditions select particular members. A complete solution includes its domain and must satisfy both the differential relation and the supplied data.
 
Classification distinguishes order, linearity, and dependence on time. These properties guide methods but do not mean that every equation has a simple formula. Integrating factors solve first-order linear equations, whereas phase lines can reveal equilibrium behavior without an explicit solution. Existence and uniqueness require hypotheses: continuity alone may allow several solutions from the same initial value, and a unique local solution can still blow up in finite time.
 
Numerical methods introduce another layer of reasoning. Euler's method follows a local tangent over a finite step, creating truncation error and step-size restrictions. Numerical stability should not be confused with stability of the underlying equilibrium. Finally, a mathematically correct solution validates the calculation within the chosen model, not the model's fit to reality. Physical assumptions, parameter estimation, and observational checks remain essential when differential equations are used to describe measured processes.
</div>


== 编者评注(AI 辅助) ==
本站把“验证一个候选解”与“证明它是唯一解”分开,这是为了避免常见的推理跳步,属于本文的编辑判断。冷却算例展示模型与参数,振动算例展示初值和唯一性,非唯一与爆破例子则标出一般理论的边界。学会一种解法之后,仍应保留三个问题:解在哪个区间有效、是否遗漏平衡解、数值或物理解释是否超出了假设。能回答这些问题,比仅得到一个公式更接近理解微分方程。


== 来源与继续阅读 ==
== 来源与继续阅读 ==

2026年9月20日 (日) 07:16的最新版本

微分方程(differential equation)是含有未知函数及其导数的方程。普通代数方程求一个数,微分方程则寻找随时间或位置变化的整条函数。变化规律与起始状态怎样共同确定函数,可以从冷却问题看起。

温度每分钟下降多少,由什么决定

一杯80摄氏度的水放在20摄氏度的室内。一个简单模型假定:温差每大一倍,散热造成的降温速率也大一倍。取教学系数每分钟0.2,起初温差60度,降温速率为每分钟12度;等水温降到40度,温差只剩20度,降温速率便减为每分钟4度。因此温度不是每分钟减少同一个数。

T(t) 为温度,Ta 为固定环境温度,k>0 为比例系数。在物体内部温度近似均匀、环境与系数稳定的假设下,变化规律写成 dTdt=k(TTa),T(0)=T0. 负号表示高于环境时降温,低于环境时升温;k 的单位为时间的倒数。令温差 u=TTa,便有 u=ku

要从这个变化规律找出温度函数,试把左侧凑成乘积的导数。乘以 ekt 后,由乘积法则,(ektu)=ekt(u+ku)=0,所以 ektu 为常数。初值确定该常数为 T0Ta,得到 T(t)=Ta+(T0Ta)ekt. 求导得 T=k(T0Ta)ekt,而 k(TTa) 也等于这一式子;代入 t=0 则回到 T0。此推导也包含 T0=Ta 时温度恒定的平衡解。

下图的实线按此公式绘制。它一开始较陡,随后逐渐变平;图中的离散点来自后文的欧拉法。

温度从八十摄氏度接近二十摄氏度环境温度,离散欧拉近似点与解析曲线相比较
连续曲线是理想冷却模型的解析解;离散点展示有限步长产生的数值误差。

取教学参数 Ta=20 摄氏度、T0=80 摄氏度、k=0.2 每分钟,5 分钟后 T(5)=20+60e142.07 摄氏度。要降到 30 摄氏度,解 60e0.2t=10,得 t=5log68.96 分钟。模型在有限时间内不会恰好达到环境温度,但仪器分辨率可能使剩余温差无法识别。

若环境温度也随时间变化,原来的简单指数式一般不再适用;方程会变成一阶线性微分方程。若物体内部存在显著温度梯度,就可能需要空间相关的热方程。

从局部规律反推整个过程

普通求导从已知函数出发,例如从 y(t)=e2t 得到 y(t)=2e2t。微分方程则从关系 y=2y 出发,寻找满足它的函数。这条关系说明瞬时增长率始终是当前数量的两倍,却没有说明起始数量,所以 e2t3e2t 和零函数都符合。

加入 y(0)=3,才选出对应的解 y(t)=3e2t。冷却方程也一样:环境温度与系数固定时,80度、40度或10度的初始温度分别选出不同曲线,曲线都遵守同一条变化规则。


下图把三种初始温度放在一起。80度与40度的物体从上方降向20度,10度的物体则从下方升向20度。环境温度和系数相同,变化规则完全一样;起点不同,就选中了不同的解。

同一冷却微分方程的三条解从八十度四十度和十度出发,分别由上方或下方接近二十度环境温度
方程确定规律,初始值确定轨迹;本图时间单位为分钟。

振动为什么还要给出初始速度

考虑 y+4y=0,给定 y(0)=3y(0)=2。由于 cos2tsin2t 分别代入都满足方程,尝试 y(t)=Acos2t+Bsin2t. 因为 cos0=1,sin0=0,第一个初值给出 A=3。求导得 y=2Asin2t+2Bcos2t,于是 y(0)=2B=2,所以 B=1。于是解为 y(t)=3cos2tsin2t。再次求二阶导数得到 y=4y,两项初值也均匹配。

仅证明这个表达式是解,还没有证明它是唯一的。对任意两个满足相同初值的解,令其差为 w,则 w+4w=0 且初始位置、速度均为零。定义能量量 E=(w)2+4w2,有 E=2w(w+4w)=0,故 E 恒为初值 0。平方项只能同时为零,所以 w=0,唯一性得到证明。

若只给初始位置3,系数B仍可任取,表示物体从同一位置以不同速度出发。第二个数据确定B,能量论证则保证没有遗漏另一种满足这两项初值的解。

把高阶方程改写成状态系统

对二阶方程 y+4y=0,令 x1=y,x2=y,即可写成两个一阶关系 x1=x2,x2=4x1。状态 (x1,x2) 同时记录位置和速度,只知道位置通常不足以决定下一刻向哪里运动。

在状态平面中,量 x22+4x12 沿轨迹保持不变,因此非零轨迹位于椭圆上。这不是说时间图像也是椭圆;时间图像表示位置如何随时间起伏,状态轨迹表示位置与速度之间的关系。区分这两种图像,有助于理解相平面分析与通常函数图像的不同用途。


解为什么存在,为什么可能不唯一

一阶初值问题 y=f(t,y),y(t0)=y0 等价于积分方程 y(t)=y0+t0tf(s,y(s))ds. 一个常用的局部存在唯一性定理要求 f 在初始点附近连续,并且存在一个固定常数 L,使该邻域内同一时刻的两个状态满足 |f(t,u)f(t,v)|L|uv|. 这称为关于状态的局部Lipschitz条件,意思是状态差对变化率差的放大倍数在邻域内有共同上界。满足它便能保证在某个小时间区间存在唯一解。常用的更容易检查的充分条件是 f 与偏导数 f/y 在邻域内连续。教材陈述见 Lebl,§1.2.2

证明思路。 从常函数 y0 开始,把上一次近似代入积分右侧,产生下一次近似。取足够短的时间区间,可以保证这些函数不跑出所讨论的矩形区域;若区间长度为 h,两条候选函数的最大差为 D,代入积分后,最大差至多为 LhD:被积差至多 LD,再乘积分长度。选 Lh<1,这种更新就会缩小函数间的距离。压缩映射原理给出唯一的不动点,也就是所求解。这是证明概要,完整论证需要连续函数空间的完备性与相应估计。

连续性本身不保证唯一。例如在 t0 上,y=2|y|,y(0)=0 有零解;对每个 c0,先在 0tc 取零、再在 tc(tc)2,也得到可导的解。接合点两侧导数都是零,而右端不满足零附近的 Lipschitz 条件。初值没有选择出何时“离开零”的唯一时刻。

局部唯一也不保证解存在到所有时间。y=y2,y(0)=1 的解为 y=1/(1t),在 t=1 前趋于无穷,不能作为有限实值解穿过该时刻。这是有限时间爆破;它不违背局部定理,它只保证初始时刻附近的存在性。

不求闭式也能看懂:相线与稳定性

对自治方程 y=F(y),满足 F(y)=0 的常值解称为平衡解。把这些零点标在数轴上,在各间隔检查 F 的符号,便知道轨迹向增大还是减小的方向移动。若两侧箭头都指向平衡点,小扰动会被拉回;若都背离,平衡点不稳定。

若右端在平衡点附近连续可导,F(y)<0 给出局部渐近稳定的充分条件,F(y)>0 给出不稳定;导数为零时需要进一步分析。例如 y=y3 的零点仍会吸引附近轨迹,而 y=y3 的零点则会排斥它们。线性化没有判定能力时,不能把“没有得到结论”当成“中性稳定”。

洛吉斯蒂模型利用相线解释零种群、承载量与单调趋近,不必先背出解公式。稳定性讨论的是附近轨迹随时间的变化;它不同于求解算法的数值稳定性,也不同于模型参数是否能从观测数据可靠估计。

数值解:离散近似也有自己的条件

显式欧拉法以步长 h 用当前切线推进: yn+1=yn+hf(tn,yn),tn+1=tn+h. 在冷却模型中取 h=1 分钟,第一步得到 T1=800.2(8020)=68,而解析值约为 69.12 摄氏度。误差来自用整段切线变化代替逐渐减小的真实冷却率。

对温差 u=ku,迭代为 un+1=(1kh)un。要使离散温差渐近衰减,需要 |1kh|<1,即 0<kh<2;若还要求不出现正负交替的温差,需进一步限制 0<kh1。真实解始终从同一侧接近环境,不会来回穿越,离散计算却可能因步长不当表现出假振荡。


方程残差很小意味着什么

对候选近似 y~,把它代回方程得到的差 y~f(t,y~) 称为残差。残差衡量它在局部多接近满足方程,却不单独保证它接近所需的初值解。候选可能满足方程非常精确,但用了错误的初值;也可能在不稳定系统中把很小的误差随时间放大。

例如 y=y,y(0)=1 的真解为 et,而 (1+ε)et 的方程残差恰为零,却有绝对误差 εet。这个误差完全来自初值,长时间后可能很大。数值检查因而应同时查看初值误差、局部残差和系统的传播性质。



如何识别方程的结构

方程的阶数由出现的最高阶导数决定。y=ky 是一阶,y+ω2y=0 是二阶;(y)3+y=0 仍是一阶,导数的幂次不等于求导次数。对于常微分方程,如果未知函数及其各阶导数只以一次形式出现,彼此不相乘,且系数只依赖自变量,就称为线性方程。

例如 y+t2y=sint 是线性的,虽然系数并不简单;y+y2=0 是非线性的。线性不是说解曲线一定是直线,而是说作用在未知函数上的运算符合线性结构。热方程中的 u(t,x) 表示温度,κ>0 是热扩散系数,下标表示相应变量的偏导数。标准分类见 Jiří Lebl,§0.3

方程 类型 额外数据的典型形式
y+p(t)y=q(t) 一阶线性常微分方程 一个初值
y=ry(1y/K) 一阶非线性、自治方程 一个初值与参数范围
y+ω2y=0 二阶线性常微分方程 初始位置与初始速度
ut=κuxx 热方程,偏微分方程 初始温度分布及边界条件

“自治”表示右端不显含时间,前面的冷却方程就是一例;在线性方程中,“齐次”表示外加项为零。只有一个自变量的称常微分方程;热方程中温度还随空间位置变化,出现偏导数,属于偏微分方程。

初值与边界值不是同一类约束

二阶方程通常可以在同一时刻给位置与速度,也可以在不同位置或时刻给两个函数值。这两种安排的理论性质不一样。例如 y+y=0 的初值 y(0)=0,y(0)=1 唯一确定 y=sint;但边界条件 y(0)=0,y(π)=0 允许所有 Csint,并不唯一。如果改为 y(0)=0,y(π)=1,则根本没有解。

因此“二阶方程给了两个数”还不足以判断存在唯一性,必须说明这些数是什么数据、放在哪里。边界值问题常与特征值、振动频率和空间约束联系,初值问题则更直接描述从一个状态出发的演化。偏微分方程中,边界条件的种类和几何区域还会进一步影响问题是否适定。


历史与概念关系

微分方程随十七世纪微积分和力学问题发展起来。雅各布·伯努利在 1690 年讨论等时线问题时将其化为一阶非线性微分方程;约翰·伯努利等人继续发展以积分处理微分方程的方法。这些具体工作见 MacTutor:Jacob BernoulliJohann Bernoulli

欧拉在十八世纪扩展了求解方法与数值近似,十九世纪研究进一步重视存在性、唯一性和定性行为。


来源与继续阅读