特别鸣谢原文作者:苏剑林
本文以尽可能清晰、简明的方式来介绍了一阶偏微分方程的特征线法。个人认为这是偏微分方程理论中较为简单但事实上又容易让人含糊的一部分内容,因此尝试以自己的文字来做一番介绍。当然,更准确来说其实是笔者自己的备忘。
拟线性情形 ↺
一般步骤 ↺
考虑偏微分方程
α(x,u)⋅∂∂xu=β(x,u)(1) (1) α ( x , u ) ⋅ ∂ ∂ x u = β ( x , u )
其中
α α 是一个
n n 维向量函数,
β β 是一个标量函数,
⋅ ⋅ 是向量的点积,
u≡u(x) u ≡ u ( x ) 是
n n 元函数,
x x 是它的自变量。
特征线法的思路是,设想 x x 是某个参数 s s 的函数,这时候 x(s) x ( s ) 实际上就是某条高维曲线的参数方程,也就是所谓的特征线,这样 u u 也成为了参数 s s 的函数。并且我们有
duds=∂u∂x⋅dxds(2) (2) d u d s = ∂ u ∂ x ⋅ d x d s
对比原来的偏微分方程
(1) ( 1 ) ,我们发现可以让
dxds=α(x,u)(3) (3) d x d s = α ( x , u )
那么就有
duds=β(x,u)(4) (4) d u d s = β ( x , u )
联合
(3) ( 3 ) 和
(4) ( 4 ) ,我们就得到了一个
n+1 n + 1 个方程组成的常微分方程组了。
⎧⎩⎨⎪⎪⎪⎪<br/>dxds=α(x,u)duds=β(x,u)(5) (5) { d x d s = α ( x , u ) < b r / > d u d s = β ( x , u )
由于
s s 只是一个额外引入的变量,所以原则上我们可以解得与
s s 无关的结果
c=f(x,u)(6) (6) c = f ( x , u )
其中
c c 是一个
n n 维向量,是该常微分方程组的积分常数,
f f 是
n n 维向量函数。剩下的就是根据初值条件来确定各个积分常数之间的关系了。当然,如果要求出一个通解表达式,那就是
G(f(x,u))=0(7) (7) G ( f ( x , u ) ) = 0
其中
G G 是任意的
n n 元函数,原则上我们可以从中求解得到
u u 关于
x x 的表达式。
简单例子 ↺
上面的步骤比较理论化,在实际处理问题中,可以更加灵活些。下面我们来求解
∂u∂t+x∂u∂x=u2,u(x,0)=f(x)(8) (8) ∂ u ∂ t + x ∂ u ∂ x = u 2 , u ( x , 0 ) = f ( x )
我们得到特征线方程
dt=dxx=duu2(9) (9) d t = d x x = d u u 2
求得
x=C1et,u=1C2−t(10) (10) x = C 1 e t , u = 1 C 2 − t
当
t=0 t = 0 时,有
x=C1,u=1C2=f(C1) x = C 1 , u = 1 C 2 = f ( C 1 ) ,从而解得
C2=1f(C1) C 2 = 1 f ( C 1 ) ,因为我们有
C1=xe−t,C2=u−1+t C 1 = x e − t , C 2 = u − 1 + t ,所以代入得到
u−1+t=1f(xe−t)(11) (11) u − 1 + t = 1 f ( x e − t )
即
u=f(xe−t)1−t×f(xe−t)(12) (12) u = f ( x e − t ) 1 − t × f ( x e − t )
一点讨论 ↺
特征线究竟是什么含义呢?对于初学者来说,上述过程可能像变魔术一样,先求解出常数,然后消去常数,好像把握不到主干。这就是笔者一开始学习特征线法的困惑。
事实上,我们可以这样认为,特征线已经是偏微分方程的解了,只不过它是在解上的一条线,而完整来说解应该是一个高维的曲面。显然,点动成线、线动成面,想办法让这些线动起来,那么就可以得到这个曲面的方程了,也就是说,各个积分常数 c c 要“动起来”。
当然,它们不能毫无约束地乱动,随意动的话,可能就覆盖了整个空间了,该怎么动是取决于初值条件的,因此我们根据初值条件来确定积分常数之间的约束关系。确定完后,我们已经得到了这个曲面的参数方程,从求解的角度,我们没有必要消去各个常数,但很多时候我们更喜欢显式解,所以我们想办法消去常数。
整个过程的逻辑大概就是这样了。
一般情形 ↺
一般的教材对特征线法的介绍仅限于拟线性偏微分方程,事实上,对于一般的一阶偏微分方程
F(x,u,∂u∂x)=0(13) (13) F ( x , u , ∂ u ∂ x ) = 0
特征线法也是适用的,其中
F F 是任意多元函数。
这部分工作主要参考自英文维基百科:
https://en.wikipedia.org/wiki/Method_of_characteristics
推导 ↺
为此,我们先记
p=∂u∂x(14) (14) p = ∂ u ∂ x
然后对
F(x,u,p)=0 F ( x , u , p ) = 0 两边求导,得到
0=<br/>∂F∂x⋅dxds+∂F∂u∂u∂x⋅dxds+∂F∂p⋅dpds=(∂F∂x+∂F∂up)⋅dxds+∂F∂p⋅dpds<br/>(15) (15) 0 = ∂ F ∂ x ⋅ d x d s + ∂ F ∂ u ∂ u ∂ x ⋅ d x d s + ∂ F ∂ p ⋅ d p d s < b r / > = ( ∂ F ∂ x + ∂ F ∂ u p ) ⋅ d x d s + ∂ F ∂ p ⋅ d p d s < b r / >
可以发现,上面是两组向量的点积,它们加起来为0,那么一个有意思的解决方法就是让
dxds=∂F∂p,dpds=−∂F∂x−∂F∂up(16) (16) d x d s = ∂ F ∂ p , d p d s = − ∂ F ∂ x − ∂ F ∂ u p
并且我们还有
duds=∂u∂x⋅dxds=p⋅∂F∂p(17) (17) d u d s = ∂ u ∂ x ⋅ d x d s = p ⋅ ∂ F ∂ p
联合起来我们就得到常微分方程组
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪<br/><br/><br/>dxds=∂F∂pdpds=−∂F∂x−∂F∂upduds=p⋅∂F∂pF(x,u,p)=0(18) (18) { d x d s = ∂ F ∂ p < b r / > d p d s = − ∂ F ∂ x − ∂ F ∂ u p < b r / > d u d s = p ⋅ ∂ F ∂ p < b r / > F ( x , u , p ) = 0
接下来的步骤就跟拟线性情形的没什么差别了,只不过多引入了
n n 个变量
p p 。解出这个方程来,然后得到
2n 2 n 个与
s s 积分常数的积分常数,根据初值条件来找出常数之间的关系。不同的是,因为多了
n n 个变量
p p ,所以要对初值条件也考虑偏导数,这导致了求解过程更加复杂。请看下面的例子。
又一个例子 ↺
∂u∂t=(∂u∂x)2,u(x,0)=f(x)(19) (19) ∂ u ∂ t = ( ∂ u ∂ x ) 2 , u ( x , 0 ) = f ( x )
也就是
0=F(p)=pt−p2x 0 = F ( p ) = p t − p x 2 ,于是根据
(18) ( 18 ) 式我们得到特征线方程
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪<br/><br/>dtds=1,dxds=−2pxdptds=0,dpxds=0duds=pt−2p2x=−p2x(20) (20) { d t d s = 1 , d x d s = − 2 p x < b r / > d p t d s = 0 , d p x d s = 0 < b r / > d u d s = p t − 2 p x 2 = − p x 2
直接取
s=t s = t ,然后可以得到
pt=C1,px=C2 p t = C 1 , p x = C 2 都是常数,从而
x=−2C2t+C3,u=−C22t+C4 x = − 2 C 2 t + C 3 , u = − C 2 2 t + C 4 。接着根据初值条件,当
t=0 t = 0 时,有
x=C3,u=C4 x = C 3 , u = C 4 ,这表明
C4=f(C3) C 4 = f ( C 3 ) ,代入后有
u=−C22t+f(x+2C2t)(21) (21) u = − C 2 2 t + f ( x + 2 C 2 t )
然后对初值条件的
x x 变量求偏导,那么当
t=0 t = 0 时有
C2=px=f′(x)=f′(C3)(22) (22) C 2 = p x = f ′ ( x ) = f ′ ( C 3 )
注意
f f 是事先给定的初值函数,因此上式实际上是一个代数方程,所以我们有
u=<br/>=−t×f′(C3)2+f(x+2t×f′(C3))−t×f′(C3)2+f(C3)<br/>(23) (23) u = − t × f ′ ( C 3 ) 2 + f ( x + 2 t × f ′ ( C 3 ) ) < b r / >= − t × f ′ ( C 3 ) 2 + f ( C 3 ) < b r / >
并且
x=−2C2t+C3=−2t×f′(C3)+C3(24) (24) x = − 2 C 2 t + C 3 = − 2 t × f ′ ( C 3 ) + C 3
从中反解出
C3 C 3 并代入前一式就可以得到完整解。比如当
f(x)=x2 f ( x ) = x 2 时,解得
C3=x1−4t(25) (25) C 3 = x 1 − 4 t
代入得到
u=x21−4t(26) (26) u = x 2 1 − 4 t
自上而下的过程 ↺
从形式上来看,一般情形的特征线法跟拟线性情形的特征线法差别很大。那么一般情形的特征线法能不能退化到拟线性情形?
事实上,将 F=α⋅p−β F = α ⋅ p − β 代入 (18) ( 18 ) 式,就可以得到
⎧⎩⎨⎪⎪⎪⎪<br/>dxds=αduds=p⋅α(27) (27) { d x d s = α < b r / > d u d s = p ⋅ α
关于
p p 的方程就不必写出来了,因为我们有
p⋅α=β p ⋅ α = β ,代入上式就可以得到封闭的方程组。这就退化为
(5) ( 5 ) 式了。
另外,一种特别简单的情形是 F F 仅仅是 p p 的函数,这时候 ∂F∂x ∂ F ∂ x 和 ∂F∂u ∂ F ∂ u 都是0,那么特征线方程中 p p 是常数,从而 x x 和 u u 都是关于 s s 的线性函数,整个方程都是完全可解的。之后,就变成了一个纯粹的代数方程问题了。
方程组的情形 ↺
上述特征线技巧能否推广到一阶偏微分方程组?一般是不可行的,因为解决了一阶偏微分方程组就相当于解决了任意阶的偏微分方程了,显然我们没有看到这样的工作(要是可能的话,早就被人做了)。
不过,要是方程组中偏导算子的部分是一致的话,那么特征线法还是可用的。具体来说,考虑偏微分方程
(α(x,u)⋅∂∂x)u=β(x,u)(28) (28) ( α ( x , u ) ⋅ ∂ ∂ x ) u = β ( x , u )
这时候
u u 也是一个向量,但是左边的偏导数算子是共享的,右边的
β β 的各个分量可以不一样。这时候也可以用特征线法得到
⎧⎩⎨⎪⎪⎪⎪<br/>dxds=α(x,u)duds=β(x,u)(29) (29) { d x d s = α ( x , u ) < b r / > d u d s = β ( x , u )
当然,这只是原来方法的平凡推广。
原文地址