一个简单的二维波动方程有限差分正演示例(均匀介质,无吸收边界条件及震源)

博客介绍二维波动方程格式及算法原理。先给出波动方程、初值条件和边界条件及解析解,接着进行网格划分,将方程离散化,包括波动方程、初值条件和边界条件的离散推导,最后提及生成动图及下一目标是实现二维声波方程的有限差分正演。

从FWI.yml文件中导入环境配置

from IPython.display import Latex
from IPython.display import HTML

二维波动方程格式

utt(x,y,t)=uxx(x,y,t)+uyy(x,y,t),(x,y)∈Ω=(0,1)×(0,1),t∈(0,1.4)(1)u_{tt}(x,y,t)=u_{xx}(x,y,t)+u_{yy}(x,y,t),\quad (x,y)\in\Omega = (0,1)\times(0,1),t\in(0,1.4)\quad(1)utt(x,y,t)=uxx(x,y,t)+uyy(x,y,t),(x,y)Ω=(0,1)×(0,1),t(0,1.4)(1)

u(x,y,0)=sin⁡(πx)sin⁡(πy),ut(x,y,0)=0,(x,y)∈(0,1)×(0,1)(2)u(x,y,0) = \sin(\pi x)\sin(\pi y),\quad u_t(x,y,0) = 0, \quad(x,y)\in(0,1)\times(0,1)\quad(2)u(x,y,0)=sin(πx)sin(πy),ut(x,y,0)=0,(x,y)(0,1)×(0,1)(2)

u(x,y,t)=0,(x,y)∈∂Ωt∈[0,1.4](3)u(x,y,t) = 0,\quad(x,y)\in\partial \Omega\quad t\in[0,1.4]\quad(3)u(x,y,t)=0,(x,y)Ωt[0,1.4](3)

解析解为u(x,y,t)=cos⁡(2πt)sin⁡(πx)sin⁡(πy)u(x,y,t)=\cos(\sqrt2\pi t)\sin(\pi x)\sin(\pi y)u(x,y,t)=cos(2 πt)sin(πx)sin(πy)

算法原理

网格划分取h=△x=△y=0.01τ=△t=0.1hh =\triangle x = \triangle y = 0.01\quad \tau = \triangle t = 0.1hh=x=y=0.01τ=t=0.1h 由此,空间采样点N=1h=100N=\frac{1}{h}=100N=h1=100, 时间采样点M=1.40.1h=1400M = \frac{1.4}{0.1h}= 1400M=0.1h1.4=1400,令xi=ih,yj=jh,tk=kτ,i∈[0,N],j∈[0,N],k∈[0,M]x_i = ih,y_j =jh,t_k=k\tau,\quad i\in[0,N],j\in[0,N],k\in[0,M]xi=ih,yj=jh,tk=kτ,i[0,N],j[0,N],k[0,M]

1中(1)、(2)、(3)可离散为

ui,jk+1=r2(ui+1,jk+ui−1,jk+ui,j+1k+ui,j−1k)+(2−4r2)ui,jk−ui,jk−1i∈[1,N−1],j∈[1,N−1],k∈[1,M−1]u_{i,j}^{k+1} = r^2(u_{i+1,j}^{k} +u_{i-1,j}^{k} +u_{i,j+1}^{k} +u_{i,j-1}^{k} )+(2-4r^2)u_{i,j}^k -u_{i,j}^{k-1}\quad i\in[1,N-1],j\in[1,N-1],k\in[1,M-1]ui,jk+1=r2(ui+1,jk+ui1,jk+ui,j+1k+ui,j1k)+(24r2)ui,jk

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值