特征线法
常系数运输方程初值问题
对于方程
∂tρ+a∂xρ=0,x∈R,t>0
给定初值条件
ρ(x,0)=ρ0(x)
我们发现在特征线上,ρ 保持不变,然后通过特征线反推每一点ρ的值
具体而言是这样的,特征线是下面的常微分方程初值问题的解
dtdx=a,x(0)=x0
其实这条线就是x(t,x0)=at+x0,但是写成微分形式其实是为了下面的推导
根据全微分公式
df=∂x∂fdx+∂t∂fdt
我们有
dρ=∂xρdx+∂tρdt
dtdρ=∂xρdtdx+∂tρ=∂tρ+a∂xρ=0
最后一步推导使用了原方程条件
上面的推导表明在特征线上ρ为常数,因此对于(x,t)平面上的任何一个点(x0,t0),我们都可以找到一条过该点的的特征线x(t,x0−at0)=a(t−t0)+x0,这条线与t=0有一交点x=x0−at0,在该点ρ的值是确定的(初值条件),有ρ(x0−at0,0)=ρ0(x0−at0)
实际上我们就推导出了ρ(x,t)=ρ0(x−at)
值得注意的事情是,我们不妨画出t=0的时候ρ随x变化的图像,那么t变大即图像右移,t减小即图像左移,因此被称为输运方程
变系数输运方程初值问题
现在来讨论更为复杂的情况
∂tρ+∂x(v(x)ρ)=0,ρ(x,0)=ρ0(x),x∈R,t>0
经过数学家不知道多少年的研究我们知道这个方程的特征线长这样
dtdx=v(x(t)),x(0)=x0
然后我们把方程稍微变形一下,把变系数拿出来
∂tρ+v(x)∂xρ=−v′(x)ρ
同样对ρ求全微分
dtdρ=∂tρ+dtdx∂xρ=∂tρ+v(x)∂xρ=−v′(x)ρ
比起其他妖魔鬼怪,这个方程实在是太好解了!
将方程改写成我们熟悉的形式
ρdρ=−v′(x)dt
两边积分
lnρ(x(t,x0),t)−lnρ0(x0)=−∫0tv′(x)dτ
这里有几点需要注意的,首先是我们代入了ρ(x,0)=ρ0(x)的初值条件
其次稍微换了一下符号,因为这里我们是对[0,t]区间积分,把原来的t换成了τ
继续变换(使用了dx/dτ=v(x(τ)))
−RHS=∫0tv′(x(τ))dτ=∫0tv(x(τ))v′(x(τ))dτdxdτ=∫x0x(t,x0)v(x)v′(x)dx=lnv(x0)v(x(t,x0))
整理一下就是
ρ(x(t,x0),t)=ρ0(x0)v(x(t,x0))v(x0)
接下来还有一点问题,其实刚刚的x0是任意的,现在我们需要根据确定的t来反推x0。这个事情通过求解特征线方程来解决,我们先求dx/dt=v(x(t)),x(0)=x0的解为x=x(t,x0),然后反推就能得到x0=φ(x,t)
最终的结果是
ρ(x,t)=ρ0(φ(x,t))v(x)v(φ(x,t))
不管你晕没晕,反正笔者是晕了这里给出一个例题帮助理解
例题1
求下面初值问题的解
∂tu+(x+t)∂xu+u=0,u(x,0)=x,x∈R,t>0
特征线是
dtdx=x+t,x(0)=x0
代入原方程,有(原来偏导的几项变成了全微分)
dtdu+u=x(t,x0)
先解特征线方程,不难得到
x(t)=et(1+x0)−(1+t)
然后代入u的方程,解得但是我已经不会解ODE了
u(t)=1/2(x0+1)et+1/2(x0−1)e−t−t
同样特征线方程导出的结果,能够得到
x0=(x+t+1)e−t−1
代入得到
u(x,t)=1/2(x+t+1)e−2t−e−t+1/2(x−t+1)
齐次化原理
这大概是你们都不会学但是因为某位老师的恶趣味被塞进来的内容
线性方程是可叠加的,具体看这个例子
对于弦波动方程的两个解u1,u2(这个方块算子是我的老师规定的,版权在他)
□ui=∂ttui−a2∂xxui=fi(x,t)
那么u=λ1u1+λ2u2就是
□u=λ1f1+λ2f2
的解
齐次化原理爷爷用线性叠加原理打掉一维波动方程初值问题
一维波动方程初值问题是
□u=f,u(x,0)=φ(x),∂tu(x,0)=ψ(x)
由于线性叠加可行,我们对问题进行拆分
□u1=0,u1(x,0)=φ(x),∂tu1(x,0)=0
□u2=0,u2(x,0)=0,∂tu2(x,0)=ψ(x)
□u3=f,u3(x,0)=0,∂tu3(x,0)=0
原问题的解就是
u=u1+u2+u3
齐次化原理是说,我们能够直接从u2推导出u3。u2推u1不是齐次化原理,但是是比较显然的
总结一下就是下面的定理
定理
假设算子M满足条件:u2=Mψ(x,t)给出了u2的解,那么u1,u3可以分别被表示为
u1=∂tMψ(x,t),u3=∫0tMfτ(x,t−τ)dτ
我们先不要去关心M是什么,先看看这个定理怎么证明
先用u2推导u1
已知
(a)□Mφ=0, (b)Mφ(x,0)=0, (c)∂tMφ(x,0)=φ(x)
希望推导出的是
(a′)□∂tMφ=0, (b′)∂tMφ(x,0)=φ(x), (c′)∂t∂tMφ(x,0)=0
(c)就是(b’)
(a’)即
□(∂tMφ)=∂t□Mφ=0
(b’)即
∂ttMφ(x,0)=a2∂xxMφ(x,0)=0
第二个等号利用了(b)
接下来要证明u2⇒u3的部分
(a′′)□u3=f, (b′′)u3(x,0)=0, (c′′)∂tu3(x,0)=0
不妨记
v(x,t)=∫0tMfτ(x,t−τ)dτ
得到(b′′)v(x,0)=0的结果
(c′′)∂tv(x,t)=∂t∫0tMfτ(x,t−τ)dτ=Mft(x,t−τ)∣τ=0+∫0t∂tMfτ(x,t−τ)dτ=∫0t∂tMfτ(x,t−τ)dτ
显然有(c′′)∂t(x,0)=0
在上面导出的∂tv(x,t)的基础上我们再求导
∂ttv(x,t)=∂t∫0t∂tMfτ(x,t−τ)dτ=∂tMft(x,0)+∫0t∂ttMfτ(x,t−τ)dτ=f(x,t)+∫0t∂ttMfτ(x,t−τ)dτ
最后一个等号使用了(c)
那么
□v(x,t)=f(x,t)+∫0t∂ttMfτ(x,t−τ)dτ−a2∫0t∂xxMfτ(x,t−τ)dτ=f(x,t)+∫0t□Mfτ(x,t−τ)dτ=f(x,t)
第一个等号使用了求导和积分的次序交换,第二个等号使用了(a)
证毕
一维初值问题
现在,我们只要得出u2的解,就可以推导出原问题的解
先进行算子分解
□=∂tt−a2∂xx=(∂t+a∂x)(∂t−a∂x)
我们假装算子分解是合理的,于是导出下面的结论
∂tu2−a∂xu2=v,u2(x,0)=0∂tv+a∂xv=0,v(x,0)=(∂tu2−a∂xu2)∣t=0=ψ(x)
这里将算子的复合看作“乘法”,其实是先进行算子分解结果右侧的运算得到v,然后再对v做左侧的运算
然后我们就能够使用特征线法对方程进行求解
先根据原有的条件我们得到
dtdx=adtdv=∂tv+dtdx∂xv=∂tv+a∂xv=0v(x,t)=ψ(x−at)
再次使用特征线法
dtdx=−a,x(0)=x0⇒x0=x−atdtdu2=∂tu2+dtdx∂xu2=v(x,t)=ψ(x−at),u2(x(0),0)=0u2=∫0tψ(x0−2aτ)dτ=2a1∫x−atx+atψ(ξ)dξ
我们获得了所有的结果
u1=∂tMφ(x,t)=2a1∂t(∫x−atx+atψ(ξ)dξ)=2a1(aφ(x+at)−(−a)φ(x−at))=21(φ(x+at)−φ(x−at))
u3=∫0tMfτ(x,t−τ)dτ=2a1∫0t∫x−atx+atf(ξ,τ)dξdτ
合并得到
u(x)=21(φ(x+at)−φ(x−at))+21∫x−atx+atψ(ξ)dξ+2a1∫0t∫x−atx+atf(ξ,τ)dξdτ
其实这个时候我都忘了原来的方程条件给了哪些了,我在这里再重抄一遍x
□u=f(x,t),u(x,0)=φ(x),∂tu(x,0)=ψ(x)
f≡0的时候,上面的公式又被称为D’ Alembert公式(我并不知道怎么念。。)
u(x,t)=21(φ(x+at)+φ(x−at))+2a1∫x−atx+atψ(ξ)dξ
有意思的事情是,解在(x,t)的数值仅仅依赖于x轴上区间[x−at,x+at]上的初值条件,而与其他地方的初值条件无关。区间[x−at,x+at]称为点(x,t)的依赖区间
略过上述内容并不会对我们后续的学习产生太大影响