特征线法

常系数运输方程初值问题

对于方程

tρ+axρ=0,xR,t>0\partial_t \rho + a \partial_x \rho = 0, x \in \mathbb{R}, t > 0

给定初值条件

ρ(x,0)=ρ0(x)\rho(x,0) = \rho_0(x)

我们发现在特征线上,ρ\rho 保持不变,然后通过特征线反推每一点ρ\rho的值
具体而言是这样的,特征线是下面的常微分方程初值问题的解

dxdt=a,x(0)=x0\frac{\rm{d}x}{\rm{d}t} = a, x(0) = x_0

其实这条线就是x(t,x0)=at+x0x(t,x_0) = at + x_0,但是写成微分形式其实是为了下面的推导
根据全微分公式

df=fxdx+ftdt\rm{d}f = \frac{\partial f}{\partial x} \rm{d}x + \frac{\partial f}{\partial t} \rm{d}t

我们有

dρ=xρdx+tρdt\rm{d}\rho = \partial_x \rho \rm{d}x + \partial_t \rho \rm{d}t

dρdt=xρdxdt+tρ=tρ+axρ=0\frac{\rm{d}\rho}{\rm{d}t} = \partial_x\rho \frac{\rm{d}x}{\rm{d}t} + \partial_t \rho = \partial_t \rho + a\partial_x \rho = 0

最后一步推导使用了原方程条件
上面的推导表明在特征线上ρ\rho为常数,因此对于(x,t)(x,t)平面上的任何一个点(x0,t0)(x_0,t_0),我们都可以找到一条过该点的的特征线x(t,x0at0)=a(tt0)+x0x(t,x_0 - at_0) = a(t-t_0) + x_0,这条线与t=0t=0有一交点x=x0at0x=x_0-at_0,在该点ρ\rho的值是确定的(初值条件),有ρ(x0at0,0)=ρ0(x0at0)\rho(x_0-at_0,0) = \rho_0(x_0-at_0)
实际上我们就推导出了ρ(x,t)=ρ0(xat)\rho(x,t) = \rho_0(x-at)

值得注意的事情是,我们不妨画出t=0t=0的时候ρ\rhoxx变化的图像,那么tt变大即图像右移,tt减小即图像左移,因此被称为输运方程

变系数输运方程初值问题

现在来讨论更为复杂的情况

tρ+x(v(x)ρ)=0,ρ(x,0)=ρ0(x),xR,t>0\partial_t \rho + \partial_x(v(x)\rho) = 0, \rho(x,0) = \rho_0(x), x\in \mathbb{R}, t > 0

经过数学家不知道多少年的研究我们知道这个方程的特征线长这样

dxdt=v(x(t)),x(0)=x0\frac{\rm{d}x}{\rm{d}t} = v(x(t)), x(0) = x_0

然后我们把方程稍微变形一下,把变系数拿出来

tρ+v(x)xρ=v(x)ρ\partial_t \rho + v(x)\partial_x \rho = -v'(x)\rho

同样对ρ\rho求全微分

dρdt=tρ+dxdtxρ=tρ+v(x)xρ=v(x)ρ\frac{\rm{d}\rho}{\rm{d}t} = \partial_t \rho + \frac{\rm{d}x}{\rm{d}t}\partial_x \rho =\partial_t \rho + v(x)\partial_x\rho= -v'(x)\rho

比起其他妖魔鬼怪,这个方程实在是太好解了!
将方程改写成我们熟悉的形式

dρρ=v(x)dt\frac{\rm{d}\rho}{\rho} = -v'(x)\rm{d}t

两边积分

lnρ(x(t,x0),t)lnρ0(x0)=0tv(x)dτ\ln \rho(x(t,x_0),t) - \ln \rho_0(x_0) = -\int^t_0 v'(x) \rm{d}\tau

这里有几点需要注意的,首先是我们代入了ρ(x,0)=ρ0(x)\rho(x,0)=\rho_0(x)的初值条件
其次稍微换了一下符号,因为这里我们是对[0,t][0,t]区间积分,把原来的tt换成了τ\tau
继续变换(使用了dx/dτ=v(x(τ))\rm dx/d\tau = v(x(\tau))

RHS=0tv(x(τ))dτ=0tv(x(τ))v(x(τ))dxdτdτ=x0x(t,x0)v(x)v(x)dx=lnv(x(t,x0))v(x0)-RHS = \int^t_0 v'(x(\tau))\rm{d}\tau = \int^t_0 \frac{v'(x(\tau))}{v(x(\tau))}\frac{\rm{d}x}{\rm{d}\tau} \rm{d}\tau = \int^{x(t,x_0)}_{x_0} \frac{v'(x)}{v(x)}\rm{d}x = \ln \frac{v(x(t,x_0))}{v(x_0)}

整理一下就是

ρ(x(t,x0),t)=ρ0(x0)v(x0)v(x(t,x0))\rho(x(t,x_0),t) = \rho_0(x_0)\frac{v(x_0)}{v(x(t,x_0))}

接下来还有一点问题,其实刚刚的x0x_0是任意的,现在我们需要根据确定的tt来反推x0x_0。这个事情通过求解特征线方程来解决,我们先求dx/dt=v(x(t)),x(0)=x0\rm dx/dt = v(x(t)),x(0)=x_0的解为x=x(t,x0)x=x(t,x_0),然后反推就能得到x0=φ(x,t)x_0=\varphi(x,t)
最终的结果是

ρ(x,t)=ρ0(φ(x,t))v(φ(x,t))v(x)\rho(x,t) = \rho_0(\varphi(x,t))\frac{v(\varphi(x,t))}{v(x)}

不管你晕没晕,反正笔者是晕了这里给出一个例题帮助理解

例题1

求下面初值问题的解

tu+(x+t)xu+u=0,u(x,0)=x,xR,t>0\partial_t u + (x+t)\partial_x u + u = 0, u(x,0) = x, x\in \mathbb{R}, t > 0

特征线是

dxdt=x+t,x(0)=x0\frac{\rm dx}{\rm dt} = x+t, x(0) = x_0

代入原方程,有(原来偏导的几项变成了全微分)

dudt+u=x(t,x0)\frac{\rm d u}{\rm dt} + u = x(t,x_0)

先解特征线方程,不难得到

x(t)=et(1+x0)(1+t)x(t)=e^t(1+x_0)-(1+t)

然后代入u的方程,解得但是我已经不会解ODE了

u(t)=1/2(x0+1)et+1/2(x01)ettu(t) = 1/2(x_0+1)e^t + 1/2(x_0-1)e^{-t} -t

同样特征线方程导出的结果,能够得到

x0=(x+t+1)et1x_0 = (x+t+1)e^{-t} - 1

代入得到

u(x,t)=1/2(x+t+1)e2tet+1/2(xt+1)u(x,t) = 1/2(x+t+1)e^{-2t} - e^{-t} + 1/2(x-t+1)

齐次化原理

这大概是你们都不会学但是因为某位老师的恶趣味被塞进来的内容
线性方程是可叠加的,具体看这个例子
对于弦波动方程的两个解u1,u2u_1,u_2(这个方块算子是我的老师规定的,版权在他)

ui=ttuia2xxui=fi(x,t)\square u_i = \partial_{tt}u_i - a^2\partial_{xx}u_i = f_i(x,t)

那么u=λ1u1+λ2u2u = \lambda_1 u_1 + \lambda_2 u_2就是

u=λ1f1+λ2f2\square u = \lambda_1 f_1 + \lambda_2 f_2

的解

齐次化原理爷爷用线性叠加原理打掉一维波动方程初值问题

一维波动方程初值问题是

u=f,u(x,0)=φ(x),tu(x,0)=ψ(x)\square u = f, u(x,0) = \varphi(x), \partial_t u(x,0) = \psi(x)

由于线性叠加可行,我们对问题进行拆分

u1=0,u1(x,0)=φ(x),tu1(x,0)=0\square u_1 = 0, u_1(x,0) = \varphi(x), \partial_t u_1(x,0) = 0

u2=0,u2(x,0)=0,tu2(x,0)=ψ(x)\square u_2 = 0, u_2(x,0) = 0, \partial_t u_2(x,0) = \psi(x)

u3=f,u3(x,0)=0,tu3(x,0)=0\square u_3 = f, u_3(x,0) = 0, \partial_t u_3(x,0) = 0

原问题的解就是

u=u1+u2+u3u = u_1 + u_2 + u_3

齐次化原理是说,我们能够直接从u2u_2推导出u3u_3u2u_2u1u_1不是齐次化原理,但是是比较显然的
总结一下就是下面的定理

定理

假设算子MM满足条件:u2=Mψ(x,t)u_2 = M_{\psi}(x,t)给出了u2u_2的解,那么u1,u3u_1,u_3可以分别被表示为

u1=tMψ(x,t),u3=0tMfτ(x,tτ)dτu_1 = \partial_t M_{\psi}(x,t), u_3 = \int^t_0 M_{f_\tau}(x,t-\tau)\rm{d}\tau

我们先不要去关心MM是什么,先看看这个定理怎么证明
先用u2u_2推导u1u_1
已知

(a)Mφ=0, (b)Mφ(x,0)=0, (c)tMφ(x,0)=φ(x)(a)\square M_\varphi = 0,\space (b) M_\varphi(x,0) = 0,\space(c) \partial_t M_\varphi(x,0) = \varphi(x)

希望推导出的是

(a)tMφ=0, (b)tMφ(x,0)=φ(x), (c)ttMφ(x,0)=0(a')\square \partial_t M_\varphi = 0,\space (b') \partial_t M_\varphi(x,0) = \varphi(x),\space(c') \partial_t \partial_t M_\varphi(x,0) = 0

(c)就是(b’)
(a’)即

(tMφ)=tMφ=0\square (\partial_t M_\varphi) = \partial_{t} \square M_\varphi = 0

(b’)即

ttMφ(x,0)=a2xxMφ(x,0)=0\partial_{tt} M_\varphi(x,0) = a^2\partial_{xx} M_\varphi(x,0) = 0

第二个等号利用了(b)
接下来要证明u2u3u_2 \Rarr u_3的部分

(a)u3=f, (b)u3(x,0)=0, (c)tu3(x,0)=0(a'')\square u_3 = f, \space (b'') u_3(x,0) = 0, \space (c'') \partial_t u_3(x,0) = 0

不妨记

v(x,t)=0tMfτ(x,tτ)dτv(x,t) = \int^t_0 M_{f_\tau}(x,t-\tau)\rm{d}\tau

得到(b)v(x,0)=0(b'')v(x,0) = 0的结果

(c)tv(x,t)=t0tMfτ(x,tτ)dτ=Mft(x,tτ)τ=0+0ttMfτ(x,tτ)dτ=0ttMfτ(x,tτ)dτ\begin{align*} (c'')\partial_t v(x,t) &= \partial_t \int^t_0 M_{f_\tau}(x,t-\tau)\rm{d}\tau \\ &= M_{f_t}(x,t-\tau) |_{\tau = 0} + \int^t_0 \partial_t M_{f_\tau}(x,t-\tau)\rm{d}\tau \\ &= \int^t_0 \partial_t M_{f_\tau}(x,t-\tau)\rm{d}\tau \end{align*}

显然有(c)t(x,0)=0(c'')\partial_t (x,0) = 0
在上面导出的tv(x,t)\partial_t v(x,t)的基础上我们再求导

ttv(x,t)=t0ttMfτ(x,tτ)dτ=tMft(x,0)+0tttMfτ(x,tτ)dτ=f(x,t)+0tttMfτ(x,tτ)dτ\begin{align*} \partial_{tt} v(x,t) &= \partial_t \int_0^t \partial_t M_{f_\tau}(x,t-\tau)\rm{d}\tau\\ &= \partial_t M_{f_t}(x,0) + \int^t_0 \partial_{tt} M_{f_\tau}(x,t-\tau)\rm{d}\tau \\ &= f(x,t) + \int^t_0 \partial_{tt} M_{f_\tau}(x,t-\tau)\rm{d}\tau \end{align*}

最后一个等号使用了(c)
那么

v(x,t)=f(x,t)+0tttMfτ(x,tτ)dτa20txxMfτ(x,tτ)dτ=f(x,t)+0tMfτ(x,tτ)dτ=f(x,t)\begin{align*} \square v(x,t) &= f(x,t) + \int^t_0 \partial_{tt} M_{f_\tau}(x,t-\tau)\rm{d}\tau - a^2\int^t_0 \partial_{xx} M_{f_\tau}(x,t-\tau)\rm{d}\tau \\ &= f(x,t) + \int^t_0 \square M_{f_\tau}(x,t-\tau)\rm{d}\tau \\ &= f(x,t) \end{align*}

第一个等号使用了求导和积分的次序交换,第二个等号使用了(a)
证毕

一维初值问题

现在,我们只要得出u2u_2的解,就可以推导出原问题的解

先进行算子分解

=tta2xx=(t+ax)(tax)\square = \partial_{tt} - a^2\partial_{xx} = (\partial_t + a\partial_x) (\partial_t - a\partial_x)

我们假装算子分解是合理的,于是导出下面的结论

tu2axu2=v,u2(x,0)=0tv+axv=0,v(x,0)=(tu2axu2)t=0=ψ(x)\partial_t u_2 - a \partial_x u_2 = v , u_2(x,0) = 0 \\ \partial_t v + a \partial_x v = 0, v(x,0) = (\partial_t u_2 - a\partial_x u_2)|_{t=0} = \psi(x)

这里将算子的复合看作“乘法”,其实是先进行算子分解结果右侧的运算得到v,然后再对v做左侧的运算

然后我们就能够使用特征线法对方程进行求解

先根据原有的条件我们得到

dxdt=advdt=tv+dxdtxv=tv+axv=0v(x,t)=ψ(xat)\rm \frac{dx}{dt} = a \\ \rm \frac{dv}{dt} = \partial_t v + \frac{dx}{dt}\partial_x v =\rm \partial_t v + a\partial_x v = 0\\ v(x,t) = \psi(x-at)

再次使用特征线法

dxdt=a,x(0)=x0x0=xatdu2dt=tu2+dxdtxu2=v(x,t)=ψ(xat),u2(x(0),0)=0u2=0tψ(x02aτ)dτ=12axatx+atψ(ξ)dξ\rm \frac{dx}{dt} = -a, x(0) = x_0 \Rarr x_0 = x - at \\ \rm \frac{du_2}{dt}= \partial_t u_2 + \frac{dx}{dt}\partial_x u_2 = v(x,t) = \psi(x-at), u_2(x(0),0) = 0\\ u_2 = \int^t_0 \psi(x_0 - 2a\tau)\rm d\tau = \frac{1}{2a}\int^{x+at}_{x-at} \psi(\xi)\rm d \xi

我们获得了所有的结果

u1=tMφ(x,t)=12at(xatx+atψ(ξ)dξ)=12a(aφ(x+at)(a)φ(xat))=12(φ(x+at)φ(xat))\begin{align*} u_1 = \partial_t M_{\varphi}(x,t) &= \frac{1}{2a}\partial_t(\int^{x+at}_{x-at} \psi(\xi)\rm d \xi) \\ &= \frac{1}{2a}(a\varphi(x+at) - (-a)\varphi(x-at)) = \frac{1}{2}(\varphi(x+at) - \varphi(x-at)) \end{align*}

u3=0tMfτ(x,tτ)dτ=12a0txatx+atf(ξ,τ)dξdτu_3 = \int^t_0 M_{f_\tau}(x,t-\tau){\rm d\tau} = \frac{1}{2a}\int^t_0\int^{x+at}_{x-at} f(\xi,\tau)\rm d \xi d\tau

合并得到

u(x)=12(φ(x+at)φ(xat))+12xatx+atψ(ξ)dξ+12a0txatx+atf(ξ,τ)dξdτu(x) = \frac{1}{2}(\varphi(x+at) - \varphi(x-at)) + \frac{1}{2}\int^{x+at}_{x-at}\psi(\xi){\rm d}\xi + \frac{1}{2a}\int^t_0\int^{x+at}_{x-at} f(\xi,\tau)\rm d \xi d\tau

其实这个时候我都忘了原来的方程条件给了哪些了,我在这里再重抄一遍x

u=f(x,t),u(x,0)=φ(x),tu(x,0)=ψ(x)\square u = f(x,t), u(x,0) = \varphi(x), \partial_t u(x,0) = \psi(x)

f0f\equiv 0的时候,上面的公式又被称为D’ Alembert公式(我并不知道怎么念。。)

u(x,t)=12(φ(x+at)+φ(xat))+12axatx+atψ(ξ)dξu(x,t) = \frac{1}{2}(\varphi(x+at)+\varphi(x-at))+\frac{1}{2a}\int^{x+at}_{x-at}\psi(\xi)\rm d\xi

有意思的事情是,解在(x,t)(x,t)的数值仅仅依赖于x轴上区间[xat,x+at][x-at,x+at]上的初值条件,而与其他地方的初值条件无关。区间[xat,x+at][x-at,x+at]称为点(x,t)(x,t)的依赖区间

略过上述内容并不会对我们后续的学习产生太大影响