3.1 Legendre polynomials and nodal elements
x(r)=xkl+1+r2hk,hk=xkr−xkl,r∈[−1,1]
给出
u(x,t)
的modal 和nodal表达:
ukh(x(r),t)=∑n=1Npu^kn(t)ϕn(r)=∑n=1Npukh(xki,t)lki(r)
注意,第二式称为节点表达式,
xki
称之为节点,就是第
k
个区间里的第
(u(r),ϕ(r)m)=∑n=1Npu^n(ϕn,ϕm)⇒Mu^=u⇒u^=u⇒u^i=(u,ϕi)=∫1−1uϕidr
,
这里的
u^=(u^1,...u^Np)
是待求的系数,
u=((u,ϕ1),(u,ϕ2)...(u,ϕNp))
.
对于这个积分,用高斯数值积分公式
∫1−1uϕidr≃∑k=1Npu(rk)ϕi(rk)ωk
注意在modal表达式中取节点
{ξi}
:
记 Vin=ϕn(ξi),u=(u(ξ1),u(ξ2)...u(ξNp)),u^=(u^i) ,上式可以写成矩阵表达式
试着推导关系
番外篇:取数值通量 (au)∗=au− , ui 代表 u 在区间
练习1:推导格式,令 ρi=∑m=0pρi,mLm(x~),where x~=2x−xi−xi+1xi+1−xi
写成矩阵的形式就是:
以下将讨论如何将其化成Runge-Kutta格式来计算:
三阶Runge—Kutta格式:取时间步长为 δ ,编程时就直接取 δ=dt ,开始下面的循环:
练习:从Taylor级数 ρi(t+dt)=ρi(t)+ρ′idt+ρ′′idt22+dt23!ρ′′′i+odt4 推导出上面的循环。
回答以下问题:
(1)简要概述RK-DG的算法;
(2)怎样计算 M ?写出程序来;
(3)怎样计算
(4)怎样实现RK循环?写出程序。
(5)为了回答以上四个问题,你还需要知道怎样生成Legendre基。
Legendre polynomial
Orthogonality of the Legendre polynomial
计算矩阵 D :
L2
范数误差估计
fun=@(x)(sin(x)-x).^2;%必须注意:数值积分的时候^ 使用.^
error2=sqrt(integral(fun,0,1))%被积分函数必须写成@(x)函数
error2 =
0.5774