OUC地震波场论数值模拟实验报告.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OUC地震波场论数值模拟实验报告

声波方程数值模拟试验报 姓名: XXX 专业年级:XXXXXXXXXXXX 学号:XXXXXXXXXXX 第一部分:实验结果展示 图1:零相位的雷克子波 图2:单层介质中的波前快照 图3:经过人工界面反射后的波前快照 图4:两层速度模型震源为任意一点某时刻的波前快照 图5:与震源同一深度点的各点所有时刻的波场值 第二部分:实验原理 对于二维速度-深度模型,地下介质中地震波的传播规律可以近似地用声波方程描述: (4-1) 是介质在点(x , z)处的纵波速度, 为描述速度位或者压力的波场, 为震源函数。 图4-1 差分网格划分示意图 网格间隔长度 Δh 时间采样步长 Δt X=i Δh Z=j Δh T=k Δt 表示(i,j)点k时刻的波场值 时间二阶、空间二阶差分格式推导如下: 将上两式相加,略去高阶小量,整理得(i,j)点k时刻的二阶时间微商为: 同理可得(i,j)点k时刻的二阶空间微商分别为: 这就实现了用网个点波场值的差商代替了偏微分方程的微商,将上三个式子代入(4-1)式中得: 式中 同理可得空间四阶精度的差分格式为 FM=20; 同理可得时间二阶、空间四阶精度的声波方程差分格式为: 一般使用一个理论的雷克型子波代替,即: 第三部分:程序源代码及解释 1、雷克子波源程序如下: Xn =100; Zn =100; R =3.0; dt =0.001 Dh= 5.0; V=2500.0; n=1:400; f=exp(-(2*pi*FM*n*dt/R).*(2*pi*FM*n*dt/R)).*cos(2*pi*FM*n*dt); Plot(n,f); 2、小模型代码 对于小模型,输入时间是只要输入不同的值,就可以观察不同时刻的波前值,当n较小时为没到达边界时的值,n较大时为人工反射的波前值,第一部分中的两幅图为其中的两个代表。 C程序代码: #include stdio.h #include math.h #define PI 3.1415926 #define FM 20 #define Xn 100 #define Zn 100 #define R 3.0 #define dt 0.001 #define dh 5.0 #define v 2500.0 #define i_0 50 #define j_0 50 int delta(int x) //定义δ函数 { if(x==i_0) return 1; else return 0; } double s(int n) //定义雷克子波 { double f; f=exp(-pow(2*PI*FM*n*dt/R,2))*cos(2*PI*FM*n*dt); return f; } void main() { int i, j, k, l,m,n,x,y; double p0[Xn][Zn],p1[Xn][Zn],p2[Xn][Zn]; FILE *fp; for(i=0;iXn;i++) //对数组p0,p1,p2初始化为零 for(j=0;jZn;j++) { p0[i][j]=0; p1[i][j]=0; p2[i][j]=0; } printf(请输入时间n(n为dt的整数倍)n=\n); //由用户输入想要得到那一时刻的波前值 scanf(%d,n); for(k=0;kn;k++) { for(i=2;iXn-2;i++) for(j=2;jZn-2;j++) p2[i][j]=2*p1[i][j]-p0[i][j]+pow(v*dt/dh,2)*(-1/12*(p1[i-2][j]+p1[i+2][j])+4/3*(p1[i-1][j]+p1[i+1][j])-5/2*p1[i][j])+pow(v*dt/dh,2)*(-1/12*(p1[i][j-2]+p1[i][j+2])+4/3*(p1[i][j-1]+p1[i][j+1])-5/2*p1[i][j])+s(k)*delta(i)*delta(j); for(x=0;xZn;x++) for(y=0;yZn;y++)// printf(%f\n,p2[i][j]); { p0[x][y]=p1[x][y]; p1[x][y]=p2[x][y]; } } if((fp=fopen(wavefront.dat,w))!=NULL) { fprintf

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档