20190801个人笔记(川大)

官网课程视频地址

笔记主页

复习回顾

{ut+f(u)x=0u(x,0)=u0(x) \begin{cases} u_t + f(u)_x = 0\\[1em] u(x,0) = u^0(x) \end{cases}

超收敛分析

局限性

存在问题

对间断初值问题,间断附近会有震荡,而且L2L^2范数会掉阶,稳定性不能保证无震荡。

解决办法

限制器详细

向前欧拉法
(uhn+1,v)j=(uhn,v)j+Δt((f(uhn),vx)jf^RnVRj+f^LnVLj) (u_h^{n+1}, v)_j = (u_h^n, v)_j+ \Delta t\Big( (f(u_h^n), v_x)_j - \hat f_R^n V_R^j + \hat f_L^n V_L^j \Big)
为了提高文档可读性,此后的DG记号依从
VRj=Vj+12,VLj=Vj12+. V_R^j = V_{j+\frac{1}{2}}^-, \quad V_L^j = V_{j-\frac{1}{2}}^+.

定义平均值
vˉj=1hIjvdx \bar v_j = \frac{1}{h} \int_{I_j} v dx

u~jR=uRjuˉju~jL=uˉjuLj \begin{aligned} \tilde u_j^R &= u_R^j - \bar u_j \\[0.5em] \tilde u_j^L&= \bar u_j - u_L^j \\[0.5em] \end{aligned}

定义minmod函数,如果元素同号取绝对值最小的那个元素,否则取0.

m(u~jR)=minmod(u~jR,uˉj+1uˉj,uˉjuˉj1) m(\tilde u_j^R) = minmod(\tilde u_j^R, \bar u_{j+1} - \bar u_{j}, \bar u_j - \bar u_{j-1})

m(u~jL)=minmod(u~jL,uˉj+1uˉj,uˉjuˉj1) m(\tilde u_j^L) = minmod(\tilde u_j^L, \bar u_{j+1} - \bar u_{j}, \bar u_j - \bar u_{j-1})

目标u~jR=u~jL\tilde u _j^R = \tilde u _j^L

定理

RKDG TVDM(total variation diminishing in the means)
TV(uˉ)=juˉj+1uˉj TV(\bar u) = \sum_j |\bar u_{j+1} - \bar u_j|

引理

如果uˉjn+1=uˉj+CRj(uˉj+1nuˉjn)DLj(uˉjnuˉj1n)\bar u^{n+1}_j = \bar u_j +C^j_R(\bar u_{j+1}^n - \bar u_j^n) - D^j_L(\bar u_j^n - \bar u_{j-1}^n)

其中C>0,D>0,C+D>0C>0, D>0, C+D >0

那么这个格式是 TVD

证明:
根据递推关系,再 多写一项,然后做差加绝对值做放缩最后求和得
juˉjn+1ujnA1+A2+A3 \sum_{j} | \bar u^{n+1}_j - u^n_j | \leq A_1 + A_2 + A_3
其中
A1=j(1CjRDjR)uˉj+1nuˉjn A_1 = \sum_j (1-C_j^R -D_j^R) |\bar u^n_{j+1} - \bar u^n _{j}|
以及
A2=jCj+2uˉj+2nuˉj+1n A_2 = \sum_j C_{j+2} |\bar u^n_{j+2} - \bar u^n _{j+1}|

A3=jDj+1uˉj+1nuˉjn A_3 = \sum_j D_{j+1} |\bar u^n_{j+1} - \bar u^n _{j}|

定理证明

(uhn+1,v)j=(uhn,v)j+Δt((f(uhn),vx)jf^RnVRj+f^LnVLj) (u_h^{n+1}, v)_j = (u_h^n, v)_j+ \Delta t\Big( (f(u_h^n), v_x)_j - \hat f_R^n V_R^j + \hat f_L^n V_L^j \Big)
对上式取v=1v=1

huˉjn+1=huˉjnΔtf^R+Δtf^L h \bar u^{n+1}_j = h \bar u_j^n - \Delta t\hat f_R +\Delta t \hat f_L

uˉjn+1=uˉjnΔtΔx(f^Rf^L) \bar u^{n+1}_j = \bar u^n_j - \frac{\Delta t}{\Delta x}(\hat f_R - \hat f_L)


uˉjn+1=uˉjnλ(f^Rf^L) \bar u^{n+1}_j = \bar u^n_j - \lambda(\hat f_R - \hat f_L)

通过加一项减一项f^(uRj,uLj)\hat f(u^j_R, u_L^j),根据f^\hat f的定义

f^Rj=f^(uRj,uLj+1),f^Lj=f^(uRj1,uLj) \hat f^j_R = \hat f(u^j_R, u_L^{j+1}),\quad \hat f^j_L = \hat f(u^{j-1}_R, u_L^{j})

注: 为了简便,把f^\hat f的上角标省略

于是有

uˉjn+1=uˉjnλ(f^Rf^L) \bar u^{n+1}_j = \bar u^n_j - \lambda(\hat f_R - \hat f_L)


CRj=λf^(uRj,uLj+1)f^(uRj,uLj)uˉj+1uˉj C_R^j = -\lambda \frac{ \hat f(u^j_R, u_L^{j+1}) - \hat f(u^j_R, u_L^{j}) }{\bar u_{j+1} -\bar u_{j}}

容易证明出
0CRjλL1 0 \leq C_R^j \leq \lambda L_1

同理
0CRjλL2 0 \leq C_R^j \leq \lambda L_2

所以
λ12(L1+L2) \lambda \leq \frac{1}{2(L_1 + L_2)}

误差分析

uu足够光滑,平均值在中点处是二阶逼近
uˉj=uj+o(h2) \bar u_j = u_j + o(h^2)

uˉj=1hIjudx=1hIju(xj)+ux(xj)(xxj)+o(h2)dx \bar u_j = \frac{1}{h} \int_{I_j} udx = \frac{1}{h}\int_{I_j} u(x_j) + u_x(x_j)(x-x_j) + o(h^2) dx

同理
u~jR=uRjuˉj=h2ux(xj)+o(h2) \tilde u_j^R = u^j_R - \bar u_j = \frac{h}{2}u_x(x_j) + o(h^2)

u~jL=h2ux(xj)+o(h2) \tilde u_j^L = \frac{h}{2}u_x(x_j) + o(h^2)

再同理
uˉj+1uˉj=ux(xj)h+o(h2) \bar u_{j+1} - \bar u_j = u_x(x_j) h + o(h^2)

m(u~jR)=hux(xj)+o(h2) m(\tilde u_j^R) = hu_x(x_j) + o(h^2)

因为
1Njej1Nh=h2 \frac{1}{N} \sum_{j}|e_j| \geq \frac{1}{N}h = h^2

TVD格式L1L^1 误差至多2阶精度

TV(uˉn+1)TV(uˉn)+o(Δt)(1+CΔt)TV(uˉn) TV(\bar u^{n+1}) \leq TV(\bar u^n) + o(\Delta t)\leq(1+C\Delta t)TV(\bar u^n)

修正minmod
如果第一个分量是被Mh2M_h^2控制,就直接选它

作业

作业1

RKDG求解,用到TVD与TVB格式,取M=5,10,20,40M=5,10,20,40k=0,1,2k=0,1,2
ut+ux=0x[0,1],t>0 u_t + u_x = 0, x\in[0,1], t>0
满足周期边界条件,以及
(1)
u(x,0)=sin(2πx) u(x,0)=\sin(2\pi x)
(2)
u(x,0)={1,14x340,else u(x,0)=\begin{cases} 1, \quad\frac{1}{4} \leq x \leq \frac{3}{4}\\[1em] 0, \quad \text{else} \end{cases}

作业2

对TVB格式,求MM^*使得MMM \geq M^*, 对光滑函数会保持精度

笔记主页