跳到正文
格致开物
MATHWIKI
探索
学科导航
学习路径
搜索
☾
登录
探索
学科导航
学习路径
随机漫游
希腊字母
关于本站
管理员登录
搜索
数学百科
/
知识地图
查看“︁一阶线性微分方程”︁的源代码
←
一阶线性微分方程
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
管理员
、aipublisher
您可以查看和复制此页面的源代码。
'''一阶线性微分方程'''(first-order linear differential equation)研究未知函数的一阶导数与函数本身之间的线性关系。它常出现在“持续流入,同时按现有数量流出”的问题中。下面从水箱的盐量出发,推导解法,再说明它为何适用于一般的连续系数。 == 水一直在流,盐量怎样变化 == 设水箱始终有100升液体,每分钟流入、流出各5升;流入浓度为每升2克,箱内充分混合,初始是清水。令 <math>M(t)</math> 为 <math>t</math> 分钟时的盐质量,单位为克。 每分钟流入的盐为 <math>5\times2=10</math> 克。流出液浓度与箱内相同,是 <math>M/100</math> 克每升,因此每分钟流出的盐为 <math>5M/100=M/20</math> 克。盐量变化率等于流入减流出: <math display="block">M'=10-\frac M{20},\qquad M(0)=0.</math> 开始没有盐流出,质量以每分钟10克增加;盐量升高后,流出部分也增多。若达到200克,流出恰为每分钟10克,与流入平衡。 图中流入和流出的体积速率相等,因此液体体积保持100升;两个盐质量速率却不同,因为流入浓度固定,流出浓度随箱内盐量变化。把图上两个质量速率相减,就得到方程右侧。 [[File:Gezhi-analysis-linear-balance.svg|frame|center|alt=一百升充分混合水箱每分钟流入流出五升,入口浓度每升二克,出口浓度为盐量除以一百,质量速率分别为十和盐量除以二十|先算浓度乘体积流量,再写盐质量的收支;M的单位为克。]] == 把两个未知项合成一个导数 == 整理得 <math>M'+M/20=10</math>。左侧有导数,也有函数本身。乘积求导公式提示: <math display="block">\frac d{dt}(e^{t/20}M)=e^{t/20}M'+\frac1{20}e^{t/20}M=e^{t/20}\left(M'+\frac M{20}\right).</math> 乘上 <math>e^{t/20}</math> 后,左侧恰好变成这个乘积的导数。于是从0积分到 <math>t</math>, <math display="block">e^{t/20}M(t)-M(0)=\int_0^t10e^{s/20}\,ds=200(e^{t/20}-1).</math> 代入初值,再除以正数 <math>e^{t/20}</math>,得到 <math display="block">M(t)=200(1-e^{-t/20}).</math> 10分钟后盐量约为78.69克;累计流入100克,其中约21.31克已随水流走。长期浓度趋于 <math>200/100=2</math> 克每升,与流入液相同。求导可得 <math>M'=10e^{-t/20}</math>,与 <math>10-M/20</math> 一致,初值也为零。 == 一般的一阶线性方程 == 水箱方程中的未知量是 <math>M</math>。把未知量统一记成 <math>y</math>,一般形式为 <math display="block">y'(t)+p(t)y(t)=q(t).</math> 已知函数 <math>p</math> 决定随当前状态变化的那部分,<math>q</math> 表示外加输入。水箱例中 <math>p=1/20,q=10</math>。若两系数在区间上连续,给出其中一个时刻的初值,便有该区间上的唯一解。 方程 <math>y'+t^2y=\sin t</math> 是线性的,虽然时间依赖可能相当复杂;<math>y'+y^2=t</math> 则不是,因为出现未知函数的平方。<math>yy'+y=0</math> 也不是所说的线性方程,因为未知函数与其导数相乘。这里的“线性”与解的图像是否笔直无关,指数曲线可以是线性微分方程的解。 若原式为 <math>a(t)y'+b(t)y=c(t)</math>,需要先在 <math>a(t)\ne0</math> 的区间内除以 <math>a(t)</math>,才能识别 <math>p=b/a</math> 与 <math>q=c/a</math>。最高阶导数的系数在哪里为零,会影响可用区间,不能在标准化时自动删去而忘记。 当 <math>q=0</math> 时,称为齐次线性方程;否则称为非齐次。对齐次方程,解的常数倍和线性组合仍是解。对非齐次方程,两个解相减满足齐次方程,但直接相加一般不再满足原方程,因为外加项也被加了两遍。线性结构提供的是有条件的叠加规律。 == 怎样选择积分因子 == 问题的难点是 <math>y'</math> 与 <math>p(t)y</math> 同时出现。乘积法则给出 <math>(\mu y)'=\mu y'+\mu' y</math>。如果希望把原方程乘以 <math>\mu</math> 后的左侧合并为这个导数,就需要 <math>\mu'=p\mu</math>。因此取 <math display="block">P(t)=\int_{t_0}^t p(s)\,ds,\qquad \mu(t)=e^{P(t)}.</math> 这里 <math>t_0</math> 可以选初始时刻,<math>s</math> 是积分变量。指数从不为零,且 <math>\mu(t_0)=1</math>,于是原方程等价于 <math display="block">(\mu(t)y(t))'=\mu(t)q(t).</math> 水箱例的 <math>p=1/20</math> 给出 <math>P=t/20</math>,正好恢复此前的因子。由于指数不为零,乘法及后续除法始终等价。 == 解公式及唯一性 == 对上式从 <math>t_0</math> 到 <math>t</math> 积分,并用初值 <math>y(t_0)=y_0</math>,得到 <math display="block">\mu(t)y(t)-y_0=\int_{t_0}^t\mu(s)q(s)\,ds.</math> 所以唯一候选为 <math display="block">y(t)=e^{-P(t)}\left[y_0+\int_{t_0}^t e^{P(s)}q(s)\,ds\right].</math> 若 <math>p,q</math> 在所讨论区间连续,积分函数可导,令方括号内的函数为 <math>B(t)</math>,基本定理给出 <math>B'=e^Pq</math>,又有 <math>P'=p</math>。因此 <math>y'=-pe^{-P}B+e^{-P}B'=-py+q</math>;代入 <math>t=t_0</math>,积分为零且 <math>P(t_0)=0</math>,得到 <math>y_0</math>。因此候选确实是解,存在性得到证明。 若还有另一个解 <math>\widetilde y</math>,两者之差 <math>w=y-\widetilde y</math> 满足 <math>w'+pw=0</math> 且 <math>w(t_0)=0</math>。乘同一个积分因子,得到 <math>(\mu w)'=0</math>,所以 <math>\mu w</math> 恒为零。由于 <math>\mu\ne0</math>,必有 <math>w=0</math>,唯一性得到证明。这一论证不需要先知道一般非线性方程的存在唯一性定理。 上述结论适用于系数连续的整个区间:对区间内任意有限端点,积分都是有限闭子区间上的积分。即使区间无限,也不意味着解必须有界;例如 <math>y'=y</math> 的指数解可以一直存在而不断增大。关于本方法的教材讨论见 [https://www.jirka.org/diffyqs/html/intfactor_section.html Jiří Lebl,§1.4]。 == 更换初值以后,解相差多少 == 求解 <math>y'+2y=6</math>,初值 <math>y(0)=1</math>。积分因子为 <math>e^{2t}</math>,因此 <math display="block">(e^{2t}y)'=6e^{2t},\qquad e^{2t}y=3e^{2t}+C.</math> 解为 <math>y=3+Ce^{-2t}</math>,初值给出 <math>C=-2</math>,所以 <math>y=3-2e^{-2t}</math>。验证时,导数为 <math>4e^{-2t}</math>,加上两倍原函数正好等于 6;初值也确为 1。 常数解 3 来自输入与衰减的平衡;指数项记录初始状态偏离平衡的程度,并随时间消失。解从 1 单调增加但始终低于 3。要求达到 2.9,解 <math>2e^{-2t}=0.1</math>,得 <math>t=(\log20)/2\approx1.498</math>。 若初值改为 5,则解成为 <math>3+2e^{-2t}</math>,从上方降向同一个平衡。它说明同一外力下初值影响如何随时间衰减,并为后文的稳定性分析提供最简单的例子。 == 解对初值和外力有多敏感 == 相同外力下,两组初值相差 <math>d_0</math>,对应解的差精确为 <math>d(t)=d_0e^{-P(t)}</math>。若在未来时间上 <math>p(t)\ge\alpha>0</math>,则 <math>|d(t)|\le |d_0|e^{-\alpha(t-t_0)}</math>,初值误差指数衰减。若 <math>p=-2</math>,误差反而按 <math>e^{2(t-t_0)}</math> 放大。线性并不自动意味着稳定。 对常系数 <math>p=k>0</math>,如果外力又有误差 <math>\delta q</math>,且 <math>|\delta q(t)|\le\eta</math>,同初值下的响应误差满足 <math display="block">|d(t)|\le\int_{t_0}^t e^{-k(t-s)}\eta\,ds=\frac\eta k(1-e^{-k(t-t_0)}),\qquad t\ge t_0.</math> 这个界解释了持续的小输入误差不会无限累加,而受衰减机制限制。它也给出了量纲正确的误差规模:输入速率误差除以衰减率,才成为状态误差。 积分公式即使不能化成初等表达式,也已经给出解的表示。可以进一步使用[[数值积分]]近似其中的积分,并把系数、输入和数值误差分别记录。没有简洁闭式并不意味着该线性初值问题没有解。 == 系数随时间改变的例子 == 考虑 <math>y'+(2/t)y=t</math>,给定 <math>y(1)=2</math>。由于系数在 0 无定义,先选择包含初始点的区间 <math>t>0</math>。积分因子可取 <math>t^2</math>,因为其对数导数为 <math>2/t</math>。于是 <math display="block">(t^2y)'=t^3,\qquad t^2y=\frac{t^4}{4}+C.</math> 初值给出 <math>C=7/4</math>,故 <math display="block">y(t)=\frac{t^2}{4}+\frac7{4t^2},\qquad t>0.</math> 求导为 <math>t/2-7/(2t^3)</math>;再加 <math>(2/t)y=t/2+7/(2t^3)</math>,总和正好为 <math>t</math>,验证通过。该解在 <math>t\to0^+</math> 时无界,不能跨过 0 继续作为有限解。 == 失效边界:不能跨过最高阶系数的零点 == 原式 <math>ty'=y</math> 在 <math>t\ne0</math> 可标准化为 <math>y'-(1/t)y=0</math>,在每个正、负区间有解 <math>y=Ct</math>。在 <math>t=0</math>,原方程要求 <math>y(0)=0</math>,但这个初始值不能确定斜率:所有 <math>Ct</math> 都通过原点。因此若从 <math>t=0</math> 给初值,前面的连续系数唯一性结论不适用。 反过来,给 <math>y(0)=1</math> 则根本不可能满足原方程在零点的等式。这里既可能失去唯一性,也可能失去存在性,原因不是积分因子“算坏了”,而是最高阶系数消失后,初值问题发生了结构变化。 分离变量法与积分因子法也应区分。<math>y'+p(t)y=q(t)</math> 一般不能分成“只含 <math>y</math> 的一边”和“只含 <math>t</math> 的一边”;即便偶尔可以,除以未知函数也可能暂时排除零解。积分因子通过非零乘法处理,天然保留了齐次零解。 == 常数变易与叠加的另一种理解 == 齐次方程的解为 <math>y_h=Ce^{-P(t)}</math>。为了处理非齐次项,让原来固定的 <math>C</math> 变成未知函数 <math>C(t)</math>,代入 <math>y=C(t)e^{-P(t)}</math>,会发现涉及 <math>pC</math> 的两项相消,只留下 <math>C'(t)e^{-P(t)}=q(t)</math>。积分后正好得到相同的解公式,这就是常数变易思想在一阶情形的表现。 把解分成“齐次解加一个特解”,并不说明该分解唯一。若给特解加一个齐次解,再从齐次部分减去同一项,总解不变。真正确定的是满足给定初值的总解。对于外力 <math>q_1+q_2</math>,可以分别求相应的零初值响应后相加;初始响应只加入一次,才不会重复计算初始条件。 == 周期外力:瞬态如何让位给稳态 == 考虑 <math>y'+2y=\cos t</math>。猜测一个同频率的特解 <math>y_p=A\cos t+B\sin t</math>,求导并比较正余弦系数,得到 <math>B+2A=1</math> 与 <math>-A+2B=0</math>,所以 <math>A=2/5,B=1/5</math>。全部解因此为 <math display="block">y(t)=Ce^{-2t}+\frac25\cos t+\frac15\sin t.</math> 若给定初值,只需代入一次确定 <math>C</math>。未来时间足够长时指数项消失,留下周期响应;其振幅为 <math>1/\sqrt5</math>,相对输入存在相位滞后。可以用[[欧拉公式]]把这个三角计算组织成复数代数,但实系数线性结构仍然是取实部得到解的依据。 这个例子把两个常被混淆的词分开:稳态不一定是常数状态,可以是最终保留的周期行为;瞬态也不意味着严格持续一段有限时间后突然消失,指数项只是逐渐变小。若要报告“已稳定”,应给出允许误差,例如初始项的绝对值低于某个阈值,而不是把数学极限当成某个精确截止时刻。 == 输入突然改变时如何接合解 == 若外力在某个时刻突然切换,可以在各连续区间分别求解,再把前一区间的末状态作为后一区间初值。例如 <math>y'+2y=0</math> 从初值零出发,在 <math>t=1</math> 后外力改为 6,则前段 <math>y=0</math>,后段为 <math>y=3(1-e^{-2(t-1)})</math>。函数在切换时连续,但左导数为 0、右导数为 6,因此在该时刻没有通常的双侧导数。 这是分段经典解:它在切换时刻连续,并在两侧各自满足方程。有限输入的跃变改变变化率,积分累计得到的状态仍连续。 == 正性与比较:有些结论无需算出积分 == 由于积分因子始终为正,若初值非负且未来外力 <math>q(t)\ge0</math>,解公式中的括号也非负,因此状态保持非负。这个结论与 <math>p</math> 的正负无关;系数会改变增长或衰减的速度,却不会在这些条件下把状态凭空推到负值。 类似地,同一个系数函数下,若一个问题的初值和外力都不小于另一个,则把两个方程相减并用积分公式,得到前者的解也始终不小于后者。这是比较原理的一阶线性版本。对于流量、质量等不应为负的量,它既能提供定性信息,也能检查数值结果:若严格满足这些前提的精确模型给出负状态,应先排查公式、代码或步长。 积分因子本身并不唯一,乘任意非零常数仍是积分因子。最终解中这个倍数会从两边消去,不产生新的物理参数。采用从初始时刻出发的定积分,只是固定归一化,让初值项写得清楚;采用不定积分也能得到相同结果,但应避免把无关的积分常数重复计入。 == 历史与后续发展 == 一阶方程的系统求解伴随十七、十八世纪微积分发展。雅各布·伯努利在 1695 年提出后来以其命名的方程,莱布尼茨于 1697 年说明可用变量替换将它化为线性方程;有关书目线索见 [https://mathshistory.st-andrews.ac.uk/Miller/mathword/b/ MacTutor:Bernoulli's equation]。这体现了线性方程作为可归约目标的早期地位。 积分因子还用于更广泛的微分方程。欧拉在十八世纪进一步发展其应用,相关工作记于 [https://mathshistory.st-andrews.ac.uk/DSB/Euler.pdf Euler 的学术传记]。 == 来源与继续阅读 == * [https://www.jirka.org/diffyqs/html/intfactor_section.html Jiří Lebl,《Notes on Diffy Qs》§1.4]:线性方程与积分因子。 * [https://mathshistory.st-andrews.ac.uk/Miller/mathword/b/ MacTutor:Earliest Known Uses,Bernoulli's equation]:1695、1697 年历史线索。 * [https://mathshistory.st-andrews.ac.uk/DSB/Euler.pdf MacTutor 收录,Euler 学术传记]:积分因子方法的十八世纪发展。 * 先修:[[导数]]、[[积分]];相关:[[微分方程]]、[[洛吉斯蒂模型]]、[[向量空间]]。 [[分类:微分方程与动力系统]]
返回
一阶线性微分方程
。