一阶偏微分方程的特征线法
By 苏剑林 | 2017-12-07 | 89598位读者 |本文以尽可能清晰、简明的方式来介绍了一阶偏微分方程的特征线法。个人认为这是偏微分方程理论中较为简单但事实上又容易让人含糊的一部分内容,因此尝试以自己的文字来做一番介绍。当然,更准确来说其实是笔者自己的备忘。
拟线性情形 #
一般步骤 #
考虑偏微分方程
α(x,u)⋅∂∂xu=β(x,u)
其中α是一个n维向量函数,β是一个标量函数,⋅是向量的点积,u≡u(x)是n元函数,x是它的自变量。
特征线法的思路是,设想x是某个参数s的函数,这时候x(s)实际上就是某条高维曲线的参数方程,也就是所谓的特征线,这样u也成为了参数s的函数。并且我们有
duds=∂u∂x⋅dxds
对比原来的偏微分方程(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维向量,是该常微分方程组的积分常数,f是n维向量函数。剩下的就是根据初值条件来确定各个积分常数之间的关系了。当然,如果要求出一个通解表达式,那就是
G(f(x,u))=0
其中G是任意的n元函数,原则上我们可以从中求解得到u关于x的表达式。
简单例子 #
上面的步骤比较理论化,在实际处理问题中,可以更加灵活些。下面我们来求解
∂u∂t+x∂u∂x=u2,u(x,0)=f(x)
我们得到特征线方程
dt=dxx=duu2
求得
x=C1et,u=1C2−t
当t=0时,有x=C1,u=1C2=f(C1),从而解得C2=1f(C1),因为我们有C1=xe−t,C2=u−1+t,所以代入得到
u−1+t=1f(xe−t)
即
u=f(xe−t)1−t×f(xe−t)
一点讨论 #
特征线究竟是什么含义呢?对于初学者来说,上述过程可能像变魔术一样,先求解出常数,然后消去常数,好像把握不到主干。这就是笔者一开始学习特征线法的困惑。
事实上,我们可以这样认为,特征线已经是偏微分方程的解了,只不过它是在解上的一条线,而完整来说解应该是一个高维的曲面。显然,点动成线、线动成面,想办法让这些线动起来,那么就可以得到这个曲面的方程了,也就是说,各个积分常数c要“动起来”。
当然,它们不能毫无约束地乱动,随意动的话,可能就覆盖了整个空间了,该怎么动是取决于初值条件的,因此我们根据初值条件来确定积分常数之间的约束关系。确定完后,我们已经得到了这个曲面的参数方程,从求解的角度,我们没有必要消去各个常数,但很多时候我们更喜欢显式解,所以我们想办法消去常数。
整个过程的逻辑大概就是这样了。
一般情形 #
一般的教材对特征线法的介绍仅限于拟线性偏微分方程,事实上,对于一般的一阶偏微分方程
F(x,u,∂u∂x)=0
特征线法也是适用的,其中F是任意多元函数。
这部分工作主要参考自英文维基百科:
https://en.wikipedia.org/wiki/Method_of_characteristics
推导 #
为此,我们先记
p=∂u∂x
然后对F(x,u,p)=0两边求导,得到
0=∂F∂x⋅dxds+∂F∂u∂u∂x⋅dxds+∂F∂p⋅dpds=(∂F∂x+∂F∂up)⋅dxds+∂F∂p⋅dpds
可以发现,上面是两组向量的点积,它们加起来为0,那么一个有意思的解决方法就是让
dxds=∂F∂p,dpds=−∂F∂x−∂F∂up
并且我们还有
duds=∂u∂x⋅dxds=p⋅∂F∂p
联合起来我们就得到常微分方程组
{dxds=∂F∂pdpds=−∂F∂x−∂F∂upduds=p⋅∂F∂pF(x,u,p)=0
接下来的步骤就跟拟线性情形的没什么差别了,只不过多引入了n个变量p。解出这个方程来,然后得到2n个与s积分常数的积分常数,根据初值条件来找出常数之间的关系。不同的是,因为多了n个变量p,所以要对初值条件也考虑偏导数,这导致了求解过程更加复杂。请看下面的例子。
又一个例子 #
∂u∂t=(∂u∂x)2,u(x,0)=f(x)
也就是0=F(p)=pt−p2x,于是根据(18)式我们得到特征线方程
{dtds=1,dxds=−2pxdptds=0,dpxds=0duds=pt−2p2x=−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=x1−4t
代入得到
u=x21−4t
自上而下的过程 #
从形式上来看,一般情形的特征线法跟拟线性情形的特征线法差别很大。那么一般情形的特征线法能不能退化到拟线性情形?
事实上,将F=α⋅p−β代入(18)式,就可以得到
{dxds=αduds=p⋅α
关于p的方程就不必写出来了,因为我们有p⋅α=β,代入上式就可以得到封闭的方程组。这就退化为(5)式了。
另外,一种特别简单的情形是F仅仅是p的函数,这时候∂F∂x和∂F∂u都是0,那么特征线方程中p是常数,从而x和u都是关于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}},
}
January 10th, 2018
这是我在网上找到的讲的最清楚的特征线法,学习了!
January 17th, 2018
您好,有没有容易理解一点的偏微分方程的教材及辅导教材推荐?
March 19th, 2019
请问老师,您在求解方程(19)的时候,为什么只用初值条件不需要边界条件呢?
一般来说扩散型方程有初值就够了。边界条件是另外的约束了,需要具体问题具体分析。
哦哦,那如果增加两个边界条件的话,如何利用特征线法求解一个热方程的解?
March 20th, 2019
对于下面这个简单的例子:
ut(x,t)=ux(x,t),x∈[0,1],t>0,
u(x,0)=u0(x).
利用特征线法,可以知道方程的解是u(x,t)=u0(x+t),
那么增加这个边界条件后呢:
u(1,t)=0。
增加了就过约束了吧
May 1st, 2024
苏剑林老师有什么好的纯英文教材推荐吗,辞职后正在德国读数学硕士,老师讲课内容和推荐的课本还有作业都完全无关,我正在学习偏微分方程,离散数学,和随机指标2(测度论是默认会的),我本科内容已经忘的差不多了,希望老师能给点建议,推荐的课本,我毕业三年了,我基础忘的差不多了,最近学习太吃力了,不想听天书了
很抱歉,我基本上没有看过纯英文教材,当时学基础数学的内容,都是普通的国内中文教材。