DG


3.1 Legendre polynomials and nodal elements
x(r)=xkl+1+r2hk,hk=xkrxkl,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 个区间里的第i个节点。这的 ϕn(r)=Pn1(r)γn1,γn=22n+1 , Pn 是Legendre多项式,这样的话就有 11ϕi(r)ϕj(r)dr=δij,M=((ϕi,ϕj))Np×Np=I .
(u(r),ϕ(r)m)=n=1Npu^n(ϕn,ϕm)Mu^=uu^=uu^i=(u,ϕi)=11uϕidr ,
这里的 u^=(u^1,...u^Np) 是待求的系数, u=((u,ϕ1),(u,ϕ2)...(u,ϕNp)) .
对于这个积分,用高斯数值积分公式 11uϕidrk=1Npu(rk)ϕi(rk)ωk
注意在modal表达式中取节点 {ξi} :

u(ξi)=n=1Npu^nϕn(ξi)

Vin=ϕn(ξi),u=(u(ξ1),u(ξ2)...u(ξNp)),u^=(u^i) ,上式可以写成矩阵表达式
Vu^=u

试着推导关系
VTl(r)=P¯(r)

番外篇:取数值通量 (au)=au , ui 代表 u 在区间[xi,xi+1]之间的逼近
xi+1xi(uit+auix)ϕndx=ϕn(xi)(ui1(xi)ui(xi))

练习1:推导格式,令 ρi=m=0pρi,mLm(x~),where x~=2xxixi+1xi+1xi
 m=0pMnmdρi,mdt+am=0pDnmρi,m=aLn(1)m=0pρi1,mLm(1)aLn(1)m=0pρi,mLm(1)=a(1)nm=0pρi1,m(1)n+mam=0pρi,m

写成矩阵的形式就是:
Mdρidt+aDρi=a[(1)n]ρi1[(1)n+m]ρi
其中需要注意的是: [(1)n] 是矩阵,它的每一行都是 (1)n,n 是行指标。 ρi 也是一个列向量,代表在 i cell里面的系数。
以下将讨论如何将其化成Runge-Kutta格式来计算:
dρidt=(2n+1xi+1xi)(a(D+[(1)n+m]ρi)+aρi1[(1)n])

三阶Runge—Kutta格式:取时间步长为 δ ,编程时就直接取 δ=dt ,开始下面的循环:
σσσσρi(t+δ)=ρi(t)=ρi(t)+δ3ddtσ=ρi(t)+δ2ddtσ=ρi(t)+δ1ddtσ=σ

练习:从Taylor级数 ρi(t+dt)=ρi(t)+ρidt+ρ′′idt22+dt23!ρ′′′i+odt4 推导出上面的循环。
回答以下问题:
(1)简要概述RK-DG的算法;
(2)怎样计算 M ?写出程序来;
(3)怎样计算D?写出程序来;
(4)怎样实现RK循环?写出程序。
(5)为了回答以上四个问题,你还需要知道怎样生成Legendre基。
Legendre polynomial
Lm+1(x)=2m+1m+1xLm(x)mm+1Lm1(x);L0=1,L1=x

Orthogonality of the Legendre polynomial
11Ln(x)Lm(x)dx=0

计算矩阵 D : dρidx~=m=0pρ(1)i,mLm(x~),ρ(1)i,m=(2m+1)j=m+1pρi,j


L2 范数误差估计

error=10(uhu)2dx

ehe2he2hehlne2hehln2=Chr=C(2h)2=2r=r

fun=@(x)(sin(x)-x).^2;%必须注意:数值积分的时候^ 使用.^
error2=sqrt(integral(fun,0,1))%被积分函数必须写成@(x)函数

error2 =

    0.5774
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值