线性抛物方程的通用有限差分格式及代码(未完)

题目

在这里插入图片描述

通用差分格式

现在是type1 dirichlet边界条件
将显示格式和隐式格式写成一个格式,当 θ = 1 \theta=1 θ=1是隐式格式, θ = 0 \theta=0 θ=0是显式格式, θ = 1 / 2 \theta=1/2 θ=1/2是CN格式。

离散区域 M = ( L − l ) / Δ x , N = T / Δ t , k = 1... M + 1 M=(L-l)/\Delta x,N=T/\Delta t,k=1...M+1 M=(Ll)/Δx,N=T/Δt,k=1...M+1,n=1…N+1
离散初值 u k 1 = g ( k ∗ Δ x ) , k = 1 , . . . , M + 1 u^1_k=g(k*\Delta x),k=1,...,M+1 uk1=g(kΔx),k=1,...,M+1
离散时间项 u k ( n + 1 ) − u k ( n ) Δ t = u t ( k , n ) , n = 1 , . . . , N \frac{u_k^{(n+1)}-u_k^{(n)}}{\Delta t}=u_t(k,n),n=1,...,N Δtuk(n+1)uk(n)=ut(k,n)n=1,...,N
离散空间项
隐式格式 δ 2 u k n + 1 Δ x 2 = u x x ( k , n ) , K = 2 , . . . , M \frac{\delta^2u^{n+1}_k }{\Delta x^2}=u_{xx}(k,n),K=2,...,M Δx2δ2ukn+1=uxx(k,n)K=2,...,M
δ u k n + 1 2 Δ x = u x ( k , n ) , K = 2 , . . . , M \frac{{\delta}u^{n+1}_k }{2\Delta x}=u_{x}(k,n),K=2,...,M 2Δxδukn+1=ux(k,n)K=2,...,M
显式格式 δ 2 u k n Δ x 2 = u x x ( k , n ) , n = 1 , . . . , N \frac{\delta^2u^{n}_k }{\Delta x^2}=u_{xx}(k,n),n=1,...,N Δx2δ2ukn=uxx(k,n)n=1,...,N δ u k n 2 Δ x = u x ( k , n ) , K = 2 , . . . , M \frac{{\delta}u^{n}_k }{2\Delta x}=u_{x}(k,n),K=2,...,M 2Δxδukn=ux(k,n)K=2,...,M
将差分形式代入
u k ( n + 1 ) − u k ( n ) Δ t − θ ν δ 2 u k n + 1 Δ x 2 − ( 1 − θ ) δ 2 u k n Δ x 2 + θ a δ u k n + 1 2 Δ x + ( 1 − θ ) a δ u k 2 Δ x + b θ u k n + 1 + b ( 1 − θ ) u k n = θ F k n + 1 + ( 1 − θ ) F k n \frac{u_k^{(n+1)}-u_k^{(n)}}{\Delta t}-\theta\nu\frac{\delta^2u^{n+1}_k }{\Delta x^2}-(1-\theta)\frac{\delta^2u^{n}_k }{\Delta x^2}+\theta a\frac{{\delta}u^{n+1}_k }{2\Delta x}+(1-\theta)a\frac{{\delta}u^{}_k }{2\Delta x}+b\theta u^{n+1}_k+b(1-\theta)u^{n}_k=\theta F^{n+1}_k+(1-\theta )F^{n}_k Δtuk(n+1)uk(n)θνΔx2δ2ukn+1(1θ)Δx2δ2ukn+θa2Δxδukn+1+(1θ)a2Δxδuk+bθukn+1+b(1θ)ukn=θFkn+1+(1θ)Fkn

u k ( n + 1 ) − u k ( n ) − Δ t θ ν δ 2 u k n + 1 Δ x 2 − Δ t ( 1 − θ ) δ 2 u k n Δ x 2 + Δ t θ a δ u k n + 1 2 Δ x + Δ t ( 1 − θ ) a δ u k 2 Δ x + Δ t b θ u k n + 1 + Δ t b ( 1 − θ ) u k n = Δ t θ F k n + 1 + Δ t ( 1 − θ ) F k n {u_k^{(n+1)}-u_k^{(n)}}-\Delta t\theta\nu\frac{\delta^2u^{n+1}_k }{\Delta x^2}-\Delta t(1-\theta)\frac{\delta^2u^{n}_k }{\Delta x^2}+\Delta t\theta a\frac{{\delta}u^{n+1}_k }{2\Delta x}+\Delta t(1-\theta)a\frac{{\delta}u^{}_k }{2\Delta x}+\Delta tb\theta u^{n+1}_k+\Delta tb(1-\theta)u^{n}_k=\Delta t\theta F^{n+1}_k+\Delta t(1-\theta )F^{n}_k uk(n+1)uk(n)ΔtθνΔx2δ2ukn+1Δt(1θ)Δx2δ2ukn+Δtθa2Δxδukn+1+Δt(1θ)a2Δxδuk+Δtbθukn+1+Δtb(1θ)ukn=ΔtθFkn+1+Δt(1θ)Fkn
r = ν Δ t Δ x 2 , R = a Δ t 2 Δ x r=\nu\frac{\Delta t}{\Delta x^2},R=a\frac{\Delta t}{2\Delta x} r=νΔx2Δt,R=a2ΔxΔt移项
u k n + 1 − r θ δ 2 u k n + 1 + R θ δ u k n + 1 + Δ t b θ u k n + 1 = u k n + r ( 1 − θ ) δ 2 u k n − R ( 1 − θ ) δ u k n − Δ t b ( 1 − θ ) u k n + Δ t θ F k n + 1 + Δ t ( 1 − θ ) F k n {u_k^{n+1}-r{\theta \delta^2u^{n+1}_k }+R\theta {\delta}u^{n+1}_k +\Delta tb\theta u^{n+1}_k=u_k^{n}}+r{(1-\theta )\delta^2u^{n}_k }-R(1-\theta ){\delta}u^{n}_k-\Delta tb(1-\theta)u^{n}_k+\Delta t\theta F^{n+1}_k+\Delta t(1-\theta )F^{n}_k ukn+1rθδ2ukn+1+Rθδukn+1+Δtbθukn+1=ukn+r(1θ)δ2uknR(1θ)δuknΔtb(1θ)ukn+ΔtθFkn+1+Δt(1θ)Fkn
写成矩阵 Q 1 u k n + 1 = Q 2 u k n + F Q_1u_k^{n+1}=Q_2u_k^{n}+F Q1ukn+1=Q2ukn+F
A 1 = ( − 2 1 0 ⋯ 1 − 2 1 ⋯ ⋮ ⋮ ⋱ ) A_1=\begin{pmatrix} -2 & 1 & 0 & \cdots \\ 1 & -2 & 1& \cdots \\ \vdots & \vdots & \ddots \\ \end{pmatrix} A1=211201
A 2 = ( 0 1 0 ⋯ − 1 0 0 ⋯ ⋮ ⋮ ⋱ ) A_2=\begin{pmatrix} 0 & 1 & 0 & \cdots \\ -1 & 0 & 0& \cdots \\ \vdots & \vdots & \ddots \\ \end{pmatrix} A2=011000
Q 1 = ( 1 + Δ t b θ ) E − r θ A 1 + R θ A 2 Q_1=(1+\Delta t b\theta)E-r\theta A_1+R\theta A_2 Q1=(1+Δtbθ)ErθA1+RθA2
Q 2 = ( 1 − Δ t b ( 1 − θ ) ) E + r ( 1 − θ ) A 1 − R ( 1 − θ ) A 2 Q_2=(1-\Delta t b(1-\theta))E+r(1-\theta) A_1-R(1-\theta) A_2 Q2=(1Δtb(1θ))E+r(1θ)A1R(1θ)A2
F = ( r θ u 1 n + 1 + R θ u 1 n + 1 + r ( 1 − θ ) u 1 n + R ( 1 − θ ) u 1 n 0 ⋮ 0 r θ u M + 1 n + 1 + R θ u M + 1 n + 1 + r ( 1 − θ ) u M + 1 n + R ( 1 − θ ) u M + 1 n ) + Δ t θ F k n + 1 + Δ t ( 1 − θ ) F k n F=\begin{pmatrix} r\theta u_1^{n+1}+R\theta u_1^{n+1}+ r(1-\theta) u_1^{n}+R(1-\theta)u_1^{n}\\ 0\\ \vdots\\ 0\\ r\theta u_{M+1}^{n+1}+R\theta u_{M+1}^{n+1}+r(1-\theta) u_{M+1}^{n}+R(1-\theta) u_{M+1}^{n} \end{pmatrix}+\Delta t\theta F^{n+1}_k+\Delta t(1-\theta )F^{n}_k F=rθu1n+1+Rθu1n+1+r(1θ)u1n+R(1θ)u1n00rθuM+1n+1+RθuM+1n+1+r(1θ)uM+1n+R(1θ)uM+1n+ΔtθFkn+1+Δt(1θ)Fkn

代码

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值