变参数法与解的构造思想
上一章,我们给弹簧加上外力,学会了按输入的样子寻找特解:外力是正弦,就试着用正弦和余弦;碰到共振,再给试探式乘上适当的 t。这套办法很省力。可如果拉力来自一段测量曲线,或者随时间按一个不规则的函数变化,我们还应该猜什么?
先把问题放回真实的运动里。弹簧本身仍然是那根弹簧,质量、阻尼和刚度没有因为外力变复杂就消失。我们已经知道它不受外力时的基本运动方式。新的想法是:保留这些基本运动方式,让它们前面的系数随时间调整,用调整的过程记录外力。
这就是变参数法。它不保证每个积分都能写成漂亮的初等函数,却能把“寻找特解”变成一套有依据的构造。本章会一步步说明,那两个看似突然冒出的辅助条件从哪里来,为什么分母必须是 Wronskian,以及怎样选积分下限,让外力响应从零初始状态开始累积。
常数变函数,吸收输入:从齐次解骨架到变参数法构造特解。
让常数变化:从熟悉的一阶方程试起
先回想一个受外界输入影响、同时不断衰减的量。比如容器里某种物质以与现有含量成正比的速度流失,又以速率 r(t) 补充。若体积等条件保持不变,含量 z(t) 可以满足
z′+az=r(t),a>0.
这里 a 的单位是时间的倒数,r 的单位是含量除以时间。没有补充时,含量按 zh=Ce−at 衰减。现在把常数 C 换成函数 ,设
z=u(t)e−at.
求导、代回去,会发生一次很干净的抵消:
z′+az=(u′e
所以补充速率决定的恰好是系数的变化率:
u′=eatr(t).
如果 z(0)=z0,从 0 积到 t,再乘回去,就得到
z(t)=e−at[z0+∫
你应该认得这个结果:它和积分因子法给出的解完全相同。积分因子法把左边凑成一个乘积的导数;这里先把解写成“齐次解乘一个可变系数”,再让齐次部分抵消。两条路走到的是同一个地方。积分里的 τ 只是记录过去时刻的变量,外面的 t 是我们正在观察的时刻,二者不能混在一起求导。
二阶方程的齐次通解通常有两个常数,因此我们顺着同一个思路,尝试把两个常数都变成函数。不过,多了一个函数,也会多出一些需要认真安排的求导项。
先准备好齐次解和工作区间
回到受迫振动。物体的加速度乘质量,等于外力减去阻尼力和弹簧恢复力,因此有
my′′+cy′+ky=F(t).
y 是相对平衡位置的位移,m>0 是质量,c≥0 是阻尼系数,k>0 是弹簧刚度。左边每一项都是力。为了把加速度单独放在最前面,需要除以质量,右端也必须同时除:
y′′+mcy′+
变参数法并不要求系数恒定。我们一般讨论
a2(t)y′′+a1(t)
在一个区间 I 上,假设这些系数和 f 连续,而且 a2(t) 始终不为零。于是可以标准化成
y′′+p(t)y′+q
这个步骤看着普通,却决定后面整个计算的尺度。比如 2y′′+8y=6sec(2t) 的标准右端是 3sec(2t),不是 。物理上,这相当于把力换成它造成的加速度;漏除质量,就连单位都对不上。
接着,找到齐次方程
y′′+p(t)y′+q(t)y=0
的两个线性无关解 y1,y2。我们在前面讨论二阶方程结构时,把这样的一对函数叫作基本解组。它们应当同时通过两项检查:确实代入齐次方程后得到零,而且彼此不能只是常数倍。
计算中常用的检查量是
W(t)=
这就是 Wronskian。为什么偏偏要把函数和导数放在一起?因为二阶运动的当前状态由位移和速度共同决定。两列 (y1,y1′)、(y 要能独立地拼出这两个状态量,行列式就不能是零。仅看某一时刻的两个函数值,不足以说明它们是否独立。
在 p,q 连续的同一个区间里,两个齐次解的 Wronskian 满足
W′
所以对任意 t0∈I,
W(t)=W(t0)exp(−∫t
指数因子不会变成零。因此,只要在区间中的一个点算出 W(t0)=0,整个区间上都不为零。这里的前提“同一个齐次方程的解”不能删掉;对随便挑出的两个函数,不能把这套结论直接搬过去。
如果只知道一个不恒为零的齐次解 y1,还没找到第二个,该怎么办?可以先在 y1=0 的小区间上设 y。求导代入齐次方程,含 的部分抵消,剩下
y1v′′+(2y1′+
令 w=v′,就变成了关于 w 的一阶线性方程。这叫降阶。求出 w 再积分,就有机会得到第二个独立解。它和本章的方法都在利用已知齐次解制造抵消,只是本章直接从已经准备好的两个解出发。如果齐次解本身也求不出来,变参数法不会凭空替我们跨过这一关。
辅助约束为什么可以加,又为什么恰好选它
齐次通解是 C1y1+C2y2。为了接住输入 ,设一个待求特解为
yp=u1(t)y1(t)
这里的 u1,u2 还没有确定。先老老实实用乘积法则求一次导数:
yp′=u1′y
如果继续直接求导,u1′′ 和 u2′′ 都会出现。我们本来想简化二阶方程,却似乎制造了两个新的二阶未知函数。问题出在表示方式还太松:用两个未知函数表示一个 y,通常有多种写法。我们可以对写法作一个额外约定,选其中比较方便的一种。
具体地,要求
u1′y1+u2′y
这样一阶导数就简化为
yp′=u1y1′
先别急着接受“有自由度,所以可以加条件”这句话。一个更扎实的解释是:给定任意一个足够光滑的函数 y,我们同时要求
{u1y1+
系数行列式正是 W=0,所以每个时刻都能唯一确定 u1,u2。第一行求导后减掉第二行,自动得到 。因此,这个约束没有额外限制我们最终想找的 ;它只是要求同一对系数同时表示位移和速度,消除表示上的多余选择。对于原方程的任何解,都能找到满足这个约束的表示。
现在继续求导:
yp′′=u1′
代入标准方程,并把同一类项放到一起:
两个括号都是零,因为 y1,y2 解的是齐次方程。要让剩下的部分等于 g,我们只需满足
{y1u1
看清楚这次变化:未知量现在是 u1′ 和 u2′,它们在每个时刻满足一个普通的二元一次方程组。方程组解完,再各积一次分,就能得到 u。
辅助约束把变参数法中的两个未知导数组织成线性方程组,Wronskian 不为零保证可唯一解出 u1′、u2′。
我们用消元亲自走一遍,免得负号只能靠记忆。第一行乘 y2′,第二行乘 y2,前者减后者,得到
(y1y2′−y1
第二行乘 y1,第一行乘 y1′,前者减后者,得到
(y1y2′−y1
所以
u1′=−Wy2
Wronskian 出现在分母里,正是二元方程组可解的结果。它不是另外加上的技巧。如果你记不清哪一项有负号,重新写出两行方程并消元,比凭印象猜可靠得多。
选取原函数后,一个特解是
yp=−y1∫W
最后仍然要补齐通解:
y=C1y1+C2y
求一个特解时,两个积分常数可以取零。给 u1,u2 各加一个常数,最后只会多出一个齐次解。可是,一旦你选好了某个带指定初值的特解,再随意删掉其中的齐次项,就可能改变它的初值。能吸收进通解中的常数,不等于可以在固定初值的答案里无条件删除。
交互中固定了正弦、余弦这对齐次解。观察时,把注意力放在 u1,u2 的变化率上:它们不是任意晃动的两个系数,而是每一刻都同时满足辅助约束与输入方程。下面我们换一组具体系数,把这一过程完整算出来。
先准备线性无关的齐次解,再让系数随时间变化;辅助约束与原方程组成二元一次方程组,非零 Wronskian 保证系数导数可解。
例题:外力的形状不再适合猜测
考虑一个经过单位选择的无阻尼振子。其自然角频率为 2,外部装置在一段有限时间内提供随 sec(2t) 变化的拉力。相应方程取为
y′′+4y=8sec(2t).
这是为研究解法设置的理想化输入;当 cos(2t) 接近零时输入会急剧增大,不能把它当成能永远运行的实际装置。我们先在 I=(−π/4,π/4) 上求解,实际向前观察时可取其中 t≥0 的部分。
齐次方程的基本解组是
y1=cos(2t),y2=sin(2t).
注意求导带来的因子 2:
W=cos(2t)⋅2cos(2t)−[−2sin(2t)]sin(2t)=2.
因此
u1′=−2
积分时也要照顾里面的 2t。由于
dtdln∣cos(2t)∣=−2tan(2t),
可取
u1=2ln∣cos(2t)∣,u2=4t.
于是
yp=2cos(2t)ln∣cos(2t)∣+4tsin(2t),
通解为
y=C1cos(2t)+C2
我们再验一遍,看看那些容易漏掉的因子是否都在。记 ℓ(t)=ln∣cos(2t)∣,则 ℓ′=−2tan(2t)。求导后,中间的两项恰好抵消:
yp′=−4sin(2t)ℓ+8tcos(2t).
再求导并加 4yp,得到
y
若还给出 y(0)=1、y′(0)=−2,本例的 y,所以 、。初值问题的答案就是上面的特解再加 。
对数里的绝对值允许公式写在其他不穿过奇点的区间上,但不同区间的积分常数要独立选择。即使某一项的端点极限看起来有限,也不能据此宣布解穿过了输入无定义的时刻;原方程先在那里失去了意义。
例题:变系数和共振都能用同一套构造
系数变化时,先把右端除对
有些模型的有效系数会随自变量变化,不能再写一个常系数特征方程。这里取一个无量纲的数学例子:
t2y′′−4ty′+
已知的候选齐次解是 y1=t、y2=t4。先代入核对:前者给出 ;后者给出 。两者确实都是解。
再除以 t2:
y′′−t4y′+
这里 g=6t。Wronskian 为
W=t⋅4t3−1⋅t4=3t4,
在 t>0 上不为零。于是
u1′=−3t4
取原函数 u1=−t2、u2=−2/t,得到
yp=(−t2)t+(−t
通解及其导数为
y=C1t+C2t
把 t=1 和两个初值代入:
C1+C2=5,C1+
相减得到 C2=1,再得 C1=4。因此
y(t)=4t+t4−3t3,t>0.
快速核对特解,左边作用在 At3 上得到 (6−12+4)At3=−2At,所以 确实给出 。初值也分别是 与 。
这道题的最终答案恰好是多项式,甚至可以把它写到 t=0。但标准方程的系数在零点奇异,通常的二阶初值唯一性结论不能跨过那里直接使用。表达式能延伸,与标准理论保证能延伸,是两件需要分别检查的事。我们解的是初始点 1 所在的 t>0 区间上的问题。
共振时,额外的时间因子自己出现
再看
y′′−4y=3e2t.
这里可以用上一章的待定系数法。我们故意换成变参数法,看看共振时需要补上的 t 会不会自然出现。取
y1=e2t,y2=e
计算得到
u1′=−−4
所以可以选
u1=43t,u2=
进而得到
yp=43te2t−
第二项本身是齐次解,可以在写通解时并入任意常数。我们选一个更简洁的特解 43te2t,通解就是
y=C1e2t+C2e
因为 u1′ 是非零常数,积分必然产生 t。所以共振情况下的时间因子,已经藏在变参数法的积分里,无须另外准备一张修正规则表。核算也很短:(te2t),乘 正好得到右端。
本例有指数增长模态,不能把它解释成前面无阻尼弹簧的周期共振。这里强调的是代数上的同一现象:输入与齐次解重合,普通常数倍不能产生它,系数必须随时间改变。
不定积分求不出来,为什么仍然算解出来了
设一个物体从静止出发,受到随时间平滑变化的加速度。经过单位缩放后,假定
y′′=e−t2,y(0)=0,
齐次方程 y′′=0 的基本解组是 y1=1、y,Wronskian 为 。从 积分,得到
u1(t)=−∫0t
于是解为
y(t)=t∫0te−τ
其中高斯函数的积分不能写成有限个通常的初等函数组合。可这不妨碍表达式精确地指定一个函数:给出任意 t,积分区间、被积函数和结果都确定了。需要数值时可以做数值积分,需要研究性质时可以直接对它求导。
令 I(t)=∫0te−τ2dτ。微积分基本定理告诉我们 ,所以
y′=I(t)+te−t
在 t=0 时,I(0)=0,位移和速度初值也都满足。验证没有用到积分的初等表达。对于 t≥0,还能读出速度非负、位移不断增加;当加速度逐渐变小时,速度仍然保留之前累积的变化,不会因为当前加速度接近零就立刻归零。
这道题也能用两次直接积分完成。选择它,是为了让你看见一个简单事实:解是函数,定积分同样可以定义函数。“还保留着积分号”本身不是未完成的标志,关键是它是否明确、是否满足方程和初值。
把积分下限固定,外力响应就从零开始
前面求通解时,用不定积分很方便。解初值问题时,一个更整齐的选择是把两个积分的下限都设为初始时刻 t0:
u1(t)=−∫
这样 u1(t0)=u2(t0,当然有 。别漏掉速度:辅助约束已经给出 ,所以也有 。
因此,对于初值 y(t0)=y0、y′(t,我们可以先求一个齐次解 ,让它单独满足这两个初值,再加上这个零初值特解。总响应就严格分成了
y=初始状态造成的自由响应
这句话必须和“零初值特解”一起使用。对任意一个随手求出的特解,yp(t0) 和 yp′( 可能不为零,那么齐次部分就要补上差额,不能直接说它单独携带原来的初值。特解不唯一,总解在给定初值后却是唯一的;定积分下限帮助我们把这份分工固定下来。
在一般基本解组下,齐次系数由
{C1y
确定。分母仍然是 W(t0)。Wronskian 不为零,一方面让输入能被分配给两个系数的变化,另一方面让任何初始位置和速度都能选出唯一的自由运动。
Green 核:过去的每一小段输入,今天留下多少影响
把定积分形式展开并合并,可以写成
yp(t)=∫t
这里有两个时刻。τ 是输入发生的时刻,t 是观察响应的时刻。把只与系统和这两个时刻有关的部分记作
G(t,τ)=W(τ)y1
它叫作这个标量二阶初值问题的 Green 核。于是
yp(t)=∫t0t
先检查这个新名字是否真的在描述我们想要的东西。固定输入时刻 τ,把 t 当变量,G 是两个齐次解的常数线性组合,所以在 t>τ 时按齐次方程演化。再在刚开始的时刻计算:
G(τ,τ)=0,∂t∂G(t,τ)
这表示一份作用从时刻 τ 开始传播时,位移没有瞬间跳跃,而速度获得了单位变化,随后按系统自身的运动规律演化。对于标准方程,短时间 Δτ 内的加速度输入 g(τ) 带来的速度增量约为 g(τ)Δτ,它对时刻 t 的位移贡献约为
G(t,τ)g(τ)Δτ.
把过去许多小时间段的贡献相加,再让时间段变细,就得到上面的积分。这就是“输入不断累积”的精确版本。核本身可以有正有负:弹簧早先受到一次向右推动,过一段时间可能已经摆到了左边,所以正输入不必在所有观察时刻都贡献正位移。
这个表达还可以直接验证。因为 G(t,t)=0,对积分求一次导数时,上限带来的边界项消失:
yp′(t)=∫t0
第二次求导,边界项变成 Gt(t,t)g(t)=g(t),因此
yp′′(t)=g(t)+∫
再加 p(t)yp′+q(t)yp,积分里的 为零,最后只剩 。当 时两个积分都为零,初始位移和速度也同时是零。这样,方程与两个初值都从核的性质里得到了验证。
为了表示向前演化的因果响应,我们还规定 t<τ 时 G(t,τ)=0:未来才发生的推动,不能改变当前的位置。本章使用 t≥t0 来解释这种因果性。数学上的定积分解也可以向 左侧求值,但那是在根据初值反向求解,不能把它混同于未来输入影响过去。
这里的 G 对应标准右端 g=f/a2。如果你希望直接对原方程的输入 f(τ) 积分,核应当写成 。对于质量为 的弹簧,这就是还要除以 ;单位力冲量造成的速度增量是 ,而不是 。
一个带质量和阻尼的完整响应
设质量为 2kg,阻尼系数为 4Ns/m,刚度为 10N/m,初始位移与速度都是零。用秒作时间单位,外力取 F(t)=6,其中指数中的衰减率为 。用 SI 单位记录数值,方程是
2y′′+4y′+10y=6e
标准右端为 g=3e−t。齐次方程 y′′+2y′ 的基本解组是 、,计算得 。因此
G(t,τ)=21e−(t−τ)sin
代入积分:
最后一行的位移数值以米计。令 v=43(1−cos2t),则 y=e,有
y′′+2y′+5y=e
原方程两边再乘 2 就核对了外力,v(0)=v′(0)=0 也核对了初值。这个结果同时包含持续输入和阻尼衰减,不需要把运动逐时分段拼接。
本例的核只依赖时间差 t−τ。常系数意味着系统本身不随日历时刻改变,同样的一次输入晚发生一秒,响应就整体晚一秒。因此常系数问题的核可以写成 h(t−τ),零初值响应变为
yp(t)=∫0th(t−τ)g
这类积分叫卷积。对于变系数方程,早晨和晚上输入时系统可能已经不同,核通常必须分别保留 t 和 τ,不能擅自改成只看时间差的形式。这里先认识卷积在时间域里的含义,后续处理阶跃、冲击输入时再专门计算它。
真正动手时,怎样选方法
现在有几条解非齐次方程的路线可用了。对常系数方程,右端又是指数、多项式、正弦余弦的有限组合,待定系数法通常少算几个积分。已经知道齐次基本解组,而右端不属于这些类型,变参数法就能直接开始构造。只知道一个齐次解时,可以先考虑降阶。若齐次解难以求出、输入只有一组采样值,前面学过的数值方法仍然有实际用途。
根据输入形式、基本解组、近似需求和初值开关输入选择非齐次特解构造方法。
选择变参数法后,我建议先写具体的两行方程组,再考虑要不要直接套公式。这样自然会检查三个地方:第二行的右端是否已经除过最高阶系数;两列是不是来自真正的齐次基本解;积分区间有没有越过原方程或基本解的奇点。
最后检查答案时,也分两件事做。先把特解代回非齐次方程,核对右端;再代入初始位置和速度,核对常数。两个候选特解长得不一样时,先相减,如果差是齐次解,它们可以通向同一个通解。但如果要比较两个初值问题的最终答案,除了相减得到齐次解,还必须核对这个差的两个初值都是零。
练习:把每个条件也算进去
从二元方程组重新推出负号
设 y1,y2 是基本解组。不要直接抄变参数公式,从辅助约束和非齐次方程出发,用消元求 u1′,。如果交换 的顺序,最终特解会改变吗?
两行方程是 y1u1′+y2u 与 。第一行乘 减去第二行乘 ,得到 ;第二行乘 减去第一行乘 ,得到 。因此
标准化之后再积分
用变参数法求
3y′′+27y=9sec(3t)
在 (−π/6,π/6) 上的通解。
除以 3,得到 y′′+9y=3sec(3t)。取 y、,则 。所以
一个新的变系数初值问题
已知 y1=t2、y2=t,求
t2y′′−6ty′+
把 t2,t5 分别代入齐次左边,系数是 2−12+10=0 与 20。标准右端为 ,而
一个特解不一定具有零初值
对于 y′′−4y=3e2t,选 q(t)=。它是不是特解?是不是满足 的特解?请通过添加齐次项,把它改成零初值特解。
因为 q′′−4q=3e2t,它确实是特解。但 q(0)=0,而 ,所以速度初值不为零。设修正后的特解为 。要求
用积分核验证一个没有初等表达的解
求初值问题
y′′+16y=e−t2,y
的精确定积分表达,并验证方程及初值。
取 y1=cos4t、y2=sin4t,则 ,核为 。自由响应满足初值,因此
核应该对力积分,还是对加速度积分
质量为 4、无阻尼、刚度为 36 的弹簧满足
4y′′+36y=F(t),y(0)=y
写出直接对 F 积分的响应公式。再取常力 F(t)=12,算出位移并验证。
标准方程是 y′′+9y=F/4。对于标准右端,核是 G(t,τ)=sin(3(。直接对力积分时还要除以质量:
变参数法把复杂输入留在一个明确的积分中,初始状态也可以安排得很清楚。不过,若外力在几个时刻开关,或者我们要反复计算许多不同输入,上面的积分和分段处理仍然可能很长。下一章会从一个带指数权重的积分开始,学习 Laplace 变换:它把求导和初始条件一并送进代数方程。等这套工具准备好,再回看这里的卷积,输入与响应的关系会有另一种便于计算的表达。