本文以尽可能清晰、简明的方式来介绍了一阶偏微分方程的特征线法。个人认为这是偏微分方程理论中较为简单但事实上又容易让人含糊的一部分内容,因此尝试以自己的文字来做一番介绍。当然,更准确来说其实是笔者自己的备忘。

拟线性情形 #

一般步骤 #

考虑偏微分方程
α(x,u)xu=β(x,u)
其中α是一个n维向量函数,β是一个标量函数,是向量的点积,uu(x)n元函数,x是它的自变量。

特征线法的思路是,设想x是某个参数s的函数,这时候x(s)实际上就是某条高维曲线的参数方程,也就是所谓的特征线,这样u也成为了参数s的函数。并且我们有
duds=uxdxds
对比原来的偏微分方程(1),我们发现可以让
dxds=α(x,u)
那么就有
duds=β(x,u)
联合(3)(4),我们就得到了一个n+1个方程组成的常微分方程组了。
{dxds=α(x,u)duds=β(x,u)
由于s只是一个额外引入的变量,所以原则上我们可以解得与s无关的结果
c=f(x,u)
其中c是一个n维向量,是该常微分方程组的积分常数,fn维向量函数。剩下的就是根据初值条件来确定各个积分常数之间的关系了。当然,如果要求出一个通解表达式,那就是
G(f(x,u))=0
其中G是任意的n元函数,原则上我们可以从中求解得到u关于x的表达式。

简单例子 #

上面的步骤比较理论化,在实际处理问题中,可以更加灵活些。下面我们来求解
ut+xux=u2,u(x,0)=f(x)
我们得到特征线方程
dt=dxx=duu2
求得
x=C1et,u=1C2t
t=0时,有x=C1,u=1C2=f(C1),从而解得C2=1f(C1),因为我们有C1=xet,C2=u1+t,所以代入得到
u1+t=1f(xet)

u=f(xet)1t×f(xet)

一点讨论 #

特征线究竟是什么含义呢?对于初学者来说,上述过程可能像变魔术一样,先求解出常数,然后消去常数,好像把握不到主干。这就是笔者一开始学习特征线法的困惑。

事实上,我们可以这样认为,特征线已经是偏微分方程的解了,只不过它是在解上的一条线,而完整来说解应该是一个高维的曲面。显然,点动成线、线动成面,想办法让这些线动起来,那么就可以得到这个曲面的方程了,也就是说,各个积分常数c要“动起来”

当然,它们不能毫无约束地乱动,随意动的话,可能就覆盖了整个空间了,该怎么动是取决于初值条件的,因此我们根据初值条件来确定积分常数之间的约束关系。确定完后,我们已经得到了这个曲面的参数方程,从求解的角度,我们没有必要消去各个常数,但很多时候我们更喜欢显式解,所以我们想办法消去常数。

整个过程的逻辑大概就是这样了。

一般情形 #

一般的教材对特征线法的介绍仅限于拟线性偏微分方程,事实上,对于一般的一阶偏微分方程
F(x,u,ux)=0
特征线法也是适用的,其中F是任意多元函数。

这部分工作主要参考自英文维基百科:
https://en.wikipedia.org/wiki/Method_of_characteristics

推导 #

为此,我们先记
p=ux
然后对F(x,u,p)=0两边求导,得到
0=Fxdxds+Fuuxdxds+Fpdpds=(Fx+Fup)dxds+Fpdpds
可以发现,上面是两组向量的点积,它们加起来为0,那么一个有意思的解决方法就是让
dxds=Fp,dpds=FxFup
并且我们还有
duds=uxdxds=pFp
联合起来我们就得到常微分方程组
{dxds=Fpdpds=FxFupduds=pFpF(x,u,p)=0
接下来的步骤就跟拟线性情形的没什么差别了,只不过多引入了n个变量p。解出这个方程来,然后得到2n个与s积分常数的积分常数,根据初值条件来找出常数之间的关系。不同的是,因为多了n个变量p,所以要对初值条件也考虑偏导数,这导致了求解过程更加复杂。请看下面的例子。

又一个例子 #

ut=(ux)2,u(x,0)=f(x)
也就是0=F(p)=ptp2x,于是根据(18)式我们得到特征线方程
{dtds=1,dxds=2pxdptds=0,dpxds=0duds=pt2p2x=p2x
直接取s=t,然后可以得到pt=C1,px=C2都是常数,从而x=2C2t+C3,u=C22t+C4。接着根据初值条件,当t=0时,有x=C3,u=C4,这表明C4=f(C3),代入后有
u=C22t+f(x+2C2t)
然后对初值条件的x变量求偏导,那么当t=0时有
C2=px=f(x)=f(C3)
注意f是事先给定的初值函数,因此上式实际上是一个代数方程,所以我们有
u=t×f(C3)2+f(x+2t×f(C3))=t×f(C3)2+f(C3)
并且
x=2C2t+C3=2t×f(C3)+C3
从中反解出C3并代入前一式就可以得到完整解。比如当f(x)=x2时,解得
C3=x14t
代入得到
u=x214t

自上而下的过程 #

从形式上来看,一般情形的特征线法跟拟线性情形的特征线法差别很大。那么一般情形的特征线法能不能退化到拟线性情形?

事实上,将F=αpβ代入(18)式,就可以得到
{dxds=αduds=pα
关于p的方程就不必写出来了,因为我们有pα=β,代入上式就可以得到封闭的方程组。这就退化为(5)式了。

另外,一种特别简单的情形是F仅仅是p的函数,这时候FxFu都是0,那么特征线方程中p是常数,从而xu都是关于s的线性函数,整个方程都是完全可解的。之后,就变成了一个纯粹的代数方程问题了。

方程组的情形 #

上述特征线技巧能否推广到一阶偏微分方程组?一般是不可行的,因为解决了一阶偏微分方程组就相当于解决了任意阶的偏微分方程了,显然我们没有看到这样的工作(要是可能的话,早就被人做了)。

不过,要是方程组中偏导算子的部分是一致的话,那么特征线法还是可用的。具体来说,考虑偏微分方程
(α(x,u)x)u=β(x,u)
这时候u也是一个向量,但是左边的偏导数算子是共享的,右边的β的各个分量可以不一样。这时候也可以用特征线法得到
{dxds=α(x,u)duds=β(x,u)
当然,这只是原来方法的平凡推广。

转载到请包括本文地址:https://spaces.ac.cn/archives/4718

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Dec. 07, 2017). 《一阶偏微分方程的特征线法 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/4718

@online{kexuefm-4718,
        title={一阶偏微分方程的特征线法},
        author={苏剑林},
        year={2017},
        month={Dec},
        url={\url{https://spaces.ac.cn/archives/4718}},
}