力的无穷分解与格林函数法
By 苏剑林 | 2014-11-24 | 38929位读者 |我小时候一直有个疑问:
直升机上的螺旋桨能不能用来挡雨?
一般的螺旋桨是若干个“条状”物通过旋转对称而形成的,也就是说,它并非一个面,按常理来说,它是没办法用来挡雨的。但是,如果在高速旋转的情况下,甚至假设旋转速度可以任意大,那么我们任意时刻都没有办法穿过它了,这种情况下,它似乎与一个实在的面无异?
力的无穷分解
当然,以上只是笔者小时候的一个“异想天开”的念头,读者不必较真。不过,这个疑问跟本文有什么联系呢?我们在研究振动问题之时,通常会遇到在变力的作用下的受迫振动问题,已知变力是时间的函数,比如f(t),然而,虽然知道f(t)的具体形式,但是由于f的非线性性,加上外力之后的运动,不一定容易求解。然而,如果可以将一个变化的力分段为无数个无穷小时间内的恒力(冲力),那么我们就可以分段讨论我们要研究的运动,而通常来说,恒力的问题会比变力容易。将一个变力离散化,然后再取极限,那么是不是跟原来在变力下的运动是一样的呢?这跟文章开头的疑问有着类似的思想——离线的极限,跟连续本身,是不是等价的?而让人惊喜的是,在通常的物理系统中,将力分段为无数个小区间内的恒力的做法,能够导致正确的答案,而且,这恰好是线性常微分方程的格林函数法。下面我们来分析这一做法。
一阶常微分方程
作为第一个简单的例子,我们来求解
dx(t)dt+x(t)=f(t)
这当然是简单的常微分方程,我们有常数变易法可用。现在让我们暂时忘记常数变易法,重新来理解这个方程。当f(t)≡0时,方程是容易求解的;而当f(t)是一个非零常数时,求解也不难,只要原来的解基础上加上一个常数就行了。但是当f(t)是一个一般的函数时,解就复杂起来了。假设我们已经知道t时刻的状态x(t),那么我们试着来推导出t+ε时刻的状态x(t+ε)。其中,ε是一个很小的时间间隔,它是如此之小,以至于f(t)在这段时间内几乎没有改变,那么[t,t+ε]这段时间内,将外力看成恒定的f(t)。这时我们有
dx(t+s)ds+x(t+s)=f(t),0≤s≤ε
该方程的通解为
x(t+s)=Ce−t−s+f(t)
并且在s=0时有x(t)=Ce−t+f(t),那么C=[x(t)−f(t)]et,于是我们得到
x(t+s)=[x(t)−f(t)]e−s+f(t)
从而
x(t+ε)=[x(t)−f(t)]e−ε+f(t)=x(t)e−ε+(1−e−ε)f(t)=x(t)(1−ε)+εf(t)
当然,这一步是很平凡的,我们可以直接从原来的微分方程得到这一结果,因为我们只在意一阶无穷小,从而
x(t+ε)−x(t)ε≈dx(t)dt=−x(t)+f(t)
简单整理就可以得到x(t+ε)=x(t)(1−ε)+f(t)ε,这跟原来的式子等价。但是,通过以上论述,可以赋予我们的做法以直观的物理意义,所以我们愿意通过稍微长一点的步骤来做这个事情。
留意这个解的特点,我们从t时刻的状态x(t),得到了t+ε时刻的状态,如此迭代n次,我们就能够得到t+nε时刻的状态了:
x(t+nε)=x(t+(n−1)ε)e−ε+f(t+(n−1)ε)ε=[x(t+(n−2)ε)e−ε+f(t+(n−2)ε)ε]e−ε+f(t+(n−1)ε)ε=x(t+(n−2)ε)e−2ε+[e−εf(t+(n−2)ε)+f(t+(n−1)ε)]ε=…=x(t)e−nε+εn∑i=1e−(i−1)εf(t+nε−iε)
固定nε=τ,让n→∞,则
x(t+τ)=x(t)e−τ+∫τ0e−sf(t+τ−s)ds=x(t)e−τ−∫t+τte−t−τ+sf(s)ds
于是我们得到了t+τ时刻的(精确的)解,将任意一个已知的初始状态代入,我们就能得到任意时刻的状态。其中
G(t,s)=e−t+s
被称为该系统的格林函数,借助它我们可以由x(s)得到x(t)。
二阶常微分方程
一阶常微分方程的情况太过平凡了,以至于我们可能会认为这没有价值。下面我们通过同样的思想,给出
d2x(t)dt+x(t)=f(t)
的格林函数解。与一阶不同的是,由于阶的增加,推导过程变成了矩阵和向量的运算。该方程等价于方程组
ddt(x(t)x′(t))=(01−10)(x(t)x′(t))+(0f(t))
也就是
(x(t+ε)x′(t+ε))=[I+ε(01−10)](x(t)x′(t))+ε(0f(t))
这是无穷小间隔的递推公式。要注意我们直接从原方程得到了这一条等式。当然,我们也可以模仿前面的一阶方程的情况,通过更物理的方法得到这一等式,两者的结果基本上是一样的(顶多相差ε2的项)。但不管我们怎样得到这一条等式,我们都知道它的物理意义就是一阶方程说的那样——将变力分解为无穷多个小时间内的恒力。
将上式迭代n次,得到
(x(t+nε)x′(t+nε))=[I+ε(01−10)]n(x(t)x′(t))+εn∑i=1[I+ε(01−10)]n−i(0f(t+nε−iε))
同样令τ=nε,固定τ,令n→∞,得到
(x(t+τ)x′(t+τ))=exp[(01−10)τ](x(t)x′(t))+∫τ0dsexp[(01−10)(τ−s)](0f(t+τ−s))
注意到
(01−10)4=I
也就是说,这个矩阵具有类似虚数单位i的周期性,也就是说,它在二阶矩阵中的作用,就相当于i在复数中的作用,那么根据欧拉公式,我们就可以直接写出:
exp[(01−10)τ]=Icosτ+(01−10)sinτ
代入得
(x(t+τ)x′(t+τ))=(x(t)x′(t))cosτ+(x′(t)−x(t))sinτ+∫τ0ds(0f(t+τ−s))cos(τ−s)+∫τ0ds(f(t+τ−s)0)sin(τ−s)
也就是
x(t+τ)=x(t)cosτ+x′(t)sinτ+∫τ0f(t+τ−s)sin(τ−s)ds=x(t)cosτ+x′(t)sinτ−∫t+τtf(s)sin(s−t)ds
以及
x′(t+τ)=x′(t)cosτ−x(t)sinτ−∫t+τtf(s)cos(s−t)ds
费恩曼物理讲义
可能会让读者意外的是,上述思想,来自于费曼的《费恩曼物理讲义》!它们在第一卷的§25-2节的后半部分。
不知道其他教程有没有阐述这一思想,反正笔者是最近从费曼的了解到的,反正就有眼前一亮、醍醐灌顶的感觉!如此清晰的物理意义,怎么可以不为数学、物理爱好者所知道呢!之前我读《常微分方程》之类的教程时,遇到格林函数法,我是直接跳过的,因为常微分方程的格林函数,似乎还没有偏微分方程的格林函数那么意义明显,我勉强能记住它,却不知道它的意义。现在,经过费曼的“指导”,我就清晰地理解了常微分方程的格林函数!注意,这样清晰的理解,是在一本物理讲义中学到的!
不能不说,费曼本人以及费曼的著作,不管怎么读都不为过!
转载到请包括本文地址:https://spaces.ac.cn/archives/3092
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Nov. 24, 2014). 《力的无穷分解与格林函数法 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/3092
@online{kexuefm-3092,
title={力的无穷分解与格林函数法},
author={苏剑林},
year={2014},
month={Nov},
url={\url{https://spaces.ac.cn/archives/3092}},
}
November 29th, 2014
武侠小说上总是说:一把宝刀舞的是滴水不漏 团团如锦,江湖上少有对手,性格更是豪爽仗义
搜了一下,发现是所谓的《爸爸去哪儿2》的武侠版,无语了。
不过小说这样写确实挺有趣,就是不知道能不能真正的“滴水不漏”。
August 2nd, 2015
x(t+e)=x(t)(1-e)+f(t)e(后面是加号)
已经修正,谢谢~~
September 14th, 2024
请问还有更多这样的例子吗,物理上计算和数学上不一样的