地震层析成像的正演实验报告.docx

上传人:牧羊曲112 文档编号:5088416 上传时间:2023-06-03 格式:DOCX 页数:35 大小:179.77KB
返回 下载 相关 举报
地震层析成像的正演实验报告.docx_第1页
第1页 / 共35页
地震层析成像的正演实验报告.docx_第2页
第2页 / 共35页
地震层析成像的正演实验报告.docx_第3页
第3页 / 共35页
地震层析成像的正演实验报告.docx_第4页
第4页 / 共35页
地震层析成像的正演实验报告.docx_第5页
第5页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《地震层析成像的正演实验报告.docx》由会员分享,可在线阅读,更多相关《地震层析成像的正演实验报告.docx(35页珍藏版)》请在三一办公上搜索。

1、世QCiCi色标日10. 002000.02375.02750.0-3125.0-3500.0-3875.014250.04625.05000.0a缺省颜色设rzx 1 n t- ? b. - 3nnn1-1-1正演的速度模型图tm3.0303.03.0TO3 0 :tu 3 03.030303.03.03.03 03 0 -TM3.03.05.0303.03.03.03 03 0 -M3.03.05.0303.03.03.03 03 0 :3.030303.03.03.03 03 0 -_m3.03.03.03.03.03.03.03.03.0 -m3。3.030303.03.03.03.0

2、3.0 :im3.03.03.03.03.03.03.03.03.0 : m3.03.03.03.03.03.03.0 :f 3.03.03.03.03.03.03.03.03.0 :M3.03.030303.03.03.03.03.0 :WO3Q3.03.03二。3.03尖图1-1-2分块均匀的模型1-2正演的后的走时图良演后的速度值辰演前的谏度值图例图1-3反演前后速度对比图ABCDEFGHI13.67S67400000)001O.4O&8534.0885272.8619690000003001.2265584,0885272.IM42&30000400002.0442634.088527

3、L.22G55B0050000002.8619694.0885270.4088536000000003,6796747000000000S0000000009000000010000000)0011000D0000012000000000图1-5-a第0炮,第5接收点的数据AL1CDtrGH1J10000000023.1574340000000031754134.5&0Z3800000004003508264.9115641.0524780000050003.859086己4557820000600002.4557823.859D860007000001.0524784.9115640.350

4、S2608000000045607381.754139000000003.1574341000)0000001100000000012000000000图1-5-b-1正演第1炮,第8接收点(0为开始的激发点,0开始的接收点)图1-5七-2与1-5七-2对应的验证图形(附注:由于本人u盘被病毒入侵,导致本人做得CAD图丢失,此图引用廖松杰同学的CAD图像,但是1-5-b-2由本人程序自己得出,特此说明。)囹3.4顷I)忤即验证蜡果图1-5-b单边接收第0炮,第5接收点的r数据图图1-5-c四边放炮,四边接收左方第2激发, 第25接收的r图像正反演的程序单边放炮单边接收:#include#inc

5、lude#includevoid fun1(int n,double R144108,double t1212);void fun2(double k,double o,double t1212,double R144108,int m,int n);/k 为斜率,o为炮点坐标,相当于截距;j;double fun(double x1,double y1,double x2,double y2);void main()FILE *fp;int i,j,m,n,l,f;doublec12,d12,K1212,r129=0,v129=0.0,t1212=0.0,u,o,w,R144108=0.0,

6、k,v2144=0;float v1;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列 vij=3000;v22=5000.0;v32=5000.0;v85=2000.0;v86=2000.0;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列v2j*12+i=vij;fp=fopen(速度广wb);for(i=0;i12;i+)for(j=0;j9;j+)v1=vij;fwrite(&v1,sizeof(float),1,fp);fclose(fp);*/点八、/for(i=0;i12;i+)/printf(第d 炮的斜率n,

7、i);ci=(i+0.5)*5.0;/*/激发点for(j=0;j12;j+) dj=(j+0.5)*5;/*接收点*/Kij=(dj-ci)/(9.0*3);/*K斜率/printf(K%d%d=%fn”,i,j,Kij);/printf(n);*/for(i=0;i12;i+)/第 i 炮for(j=0;j12;j+)/第 j 接收点if(Kij=0)/平行于x轴,该行所在的每一个网格均经过,路程都是3fun1(i,R,t);printf(t%d%d=%fn”,i,j,tij);else if(Kij!=0)k=Kij;o=ci;m=i;n=j;fun2(k,o,t,R,i,j);prin

8、tf(t%d%d=%lfn,i,j,tij);fp=fopen(time.txt,w);for(i=0;i12;i+)for(j=0;j12;j+)fprintf(fp,%lfn,tij);fclose(fp);fp=fopen(系数矩阵 R 的值.txt,w,);for(i=0;i144;i+)for(j=0;j108;j+)fprintf(fp,%ft,Rij);fprintf(fp,n);fclose(fp);fp=fopen(原来的速度值.txt,);for(j=0;j108;j+)fprintf(fp,%ft,v2j);fclose(fp);*当斜率k为0的时候,计算走时t的值voi

9、d fun1(int n,double R144108,double t1212)FILE *fp1;double b=0.0;int i=0,j=0,q=0;/ 循环变量double r129=0.0,v129;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列 vij=3000;v22=5000.0;v32=5000.0;v85=2000.0;v86=2000.0;for(j=0;j9;j+)rnj=3.0;*/的值*写 出 检 验/*fp1=fopen(r 的值.txt,w);for(i=0;i12;i+)for(j=0;j9;j+)fprintf(fp1

10、,%ft,Rij);fprintf(fp1,n);fclose(fp);*/*/*/for(i=0;i12;i+)/第 i 行 for(j=0;j9;j+)/第 j 列b+=rij*(1/vij);tnn=b;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列Rn*12+nq+=rij;double fun(double x1,double y1,double x2,double y2)double s;s=(y2-y1)*(y2-y1)+(x2-x1)*(x2-x1);return sqrt(s);/*/ void fun2(double k,double o

11、,double t1212,double R144108,int m,int n)/k 为斜 率,o为炮点坐标,相当于截距;FILE *fp2;int i=0,j=0,q=0;/ 循环变量int w1,w2,w3,w4;/中间变量,用来判断点在分块均匀上的位置double p=0,v129=0.0,r129=0.0;double x1,y1,x2,y2,x3,y3,x4,y4;float r1;v22=5000.0;v32=5000.0;v85=2000.0;v86=2000.0;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列 vij=3000;rij=0;

12、for(i=0;i12;i+)for(j=0;j=(j*3.0)&(x1=(j*3.0)&(x2=(i*5.0)&(y3=(i*5.0)&(y4=(i+1)*5.0)&(x4=(j+1)*3.0);/ 右方计算路径长度r,当有两个点存在时,有下面的六种情况。if(w1!=0&w3!=0)rij=fun(x1,y1,x3,y3);else if(w1!=0&w2!=0)rij=fun(x1,y1,x2,y2);else if(w2!=0&w4!=0)rij=fun(x2,y2,x4,y4);else if(w4!=0&w1!=0)rij=fun(x1,y1,x4,y4);else if(w3!=

13、0&w2!=0)rij=fun(x2,y2,x3,y3);else if(w3=1&w4=1)rij=fun(x3,y3,x4,y4);走时等于射线经度每一个单元格的时间与慢速和(1/v)的累 加p+=(rij*(1/vij);tmn=p;for(i=0;i12;i+)for(j=0;j9;j+)Rm*12+nq+=rij;*检验第0炮,第五接收点r的正确性if(m=0&n=5)fp2=fopen(r2 的值.txt,w);for(i=0;i12;i+)for(j=0;j9;j+)fprintf(fp2,%ft,rij);fprintf(fp2,nH);fclose(fp2);fp2=fope

14、n(r2 的值,wb);for(i=0;i12;i+)for(j=0;j9;j+)r1=rij;fwrite(&r1,sizeof(float),1,fp2);fclose(fp2);四边放炮四边接收:#include#include#includevoid fun1(int n,double R120108,double t430,int m );void fun2(double k,double o,double t430,double R120108,int m,int n);/k 为斜率,o为炮点坐标,相当于截距;double fun(double x1,double y1,doubl

15、e x2,double y2);void fun3(int n,double R1133108,double t433,int m);void fun4(double k,double o,double t1433,double R1133108,int m,int n);/k 为斜率,o为炮点坐标,相当于截距main()FILE *fp;int i,j,j1,m,n,l,e;double c112,c29,c312,c49,c12,c59;double d112,d29,d312,d49;double K1430=0.0,K2433=0.0,K3430=0.0,K4433=0.0;doubl

16、eK1242,r129=0,v129,t430=0.0,t1 4 33=0.0,u,o,w,R120108=0.0,R1133108=0.0,k;*计算 各 点 的* 左方激 发*/for(i=0;i4;i+)c1i=12.5+10*i;/*左激发点*/for(j1=0;j130;j1+)if(j19)d2j1=1.5+j1*3.0;/* *上接收点 */K1ij1=-c1i/d2j1;else if(j1=9)d3j1-9=2.5+(j1-9)*5.0;/* 右接收点K1ij1=(d3j1-9-c1i)/27.0;elsed4j1-21=1.5+(j1-21)*3.0;/* 下接收点K1ij

17、1=(60-c1i)/d3j1-21;/ printf(K1%d%d=%fn,i,j1,K1ij1);/* 上方激发for(i=0;i4;i+)/printf(第d 炮的斜率n,i);c2i=4.5+6.0*i;/*上激发点*/for(j1=0;j133;j1+)if(j112)d3j1=2.5+(j1)*5.0;/* * 右接收点 */K2ij1=d3j1/(27-c2i);else if(j1=12)d4j1-12=1.5+(j1-12)*3.0;/* 下接收点*/K2ij1=60/(d4j1-12-c2i);elsed1j1-21=2.5+5.0*(j1-21);/* 左接收点K2ij1

18、=-(d1j1-21/c2i);/printf(K2%d%d=%fn,i,j1,K2ij1);/printf(n);/* 右 方 激 发/for(i=0;i4;i+)/printf(第d 炮的斜率n,i);c3i=12.5+10*i;/* 右激发点 */for(j1=0;j130;j1+)if(j19)d4j1=1.5+(j1)*3.0;/* *下接收点*/K3ij1=(60-c3i)/(d4j1-27);else if(j1=9)d1j1-9=2.5+5.0*(j1-9);/* 左接收点*/K3ij1=(c3i-d1j1-9)/27;elsed2j1-21=1.5+(j1-21)*3.0;/

19、*上接收点 */K3ij1=c3i/(27-d2j1-21);/ printf(K3%d%d=%fn,i,j1,K3ij1);/printf(n);下方激发 *for(i=0;i4;i+)/printf(第| 炮的斜率n,i);c4i=4.5+6*i;/*下激发点*/for(j1=0;j133;j1+)if(j112)d1j1=2.5+5.0*(j1);/* 左接收点 */K4ij1=(60-d1j1)/c4i;else if(j1=12)d2j1-12=1.5+(j1-12)*3.0;/* 上 接K4ij1=60/(c4i-d2j1-12); elsed3j1-21=2.5+5.0*(j1-

20、21);/* 右 接 收 点K4ij1=(60-d3j1-21)/(c4i-27);/printf(K4%d%d=%fn,i,j1,K4ij1);/printf(n);*/*/*/*/R1for(i=0;i4;i+)/第 i 炮for(j=0;j30;j+)/第 j 接收点Kij=K1ij;if(Kij=0)/平行于x轴,该行所在的每一个网格均经过,路程都是3m=j;fun1(i,R,t,m);/printf(t%d%d=%fn,i,j,tij);else if(Kij!=0)k=Kij;o=ci=c1i;m=i;n=j;fun2(k,o,t,R,i,j);/printf(t%d%d=%lfn

21、,i,j,tij);fp=fopen(time1.txt,w);for(i=0;i4;i+)for(j=0;j30;j+)fprintf(fp,%lfn,tij);fclose(fp);fp=fopen(系数矩阵 R1 的值.txt,w);for(i=0;i120;i+)for(j=0;j108;j+)fprintf(fp,%ft,Rij);fprintf(fp,n);fclose(fp);R3 和t3*/for(i=0;i4;i+)/第 i 炮for(j=0;j30;j+)/第 j 接收点Kij=K3ij;if(Kij=0)/平行于x轴,该行所在的每一个网格均经过,路程都是3m=j;fun1

22、(i,R,t,m);/printf(t%d%d=%fn,i,j,tij);else if(Kij!=0)k=Kij;o=ci=c2i;m=i;n=j;fun2(k,o,t,R,i,j);/ printf(t%d%d=%lfn,i,j,tij);fp=fopen(time3.txt,w);for(i=0;i4;i+)for(j=0;j30;j+)fprintf(fp,%lfn,tij);fclose(fp);fp=fopen(系数矩阵 R3 的值.txt,);for(i=0;i120;i+)for(j=0;j108;j+)fprintf(fp,%ft”,Rij);fprintf(fp,n);fc

23、lose(fp);K2 和for(i=0;i4;i+)/第 i 炮for(j=0;j33;j+)/第 j 接收点Kij=K2ij;if(Kij=0)/平行于x轴,该行所在的每一个网格均经过,路程都是3m=j;fun3(i,R1,t1,m);/printf(t%d%d=%fn”,i,j,t1ij);else if(Kij!=0)k=Kij;o=c5i=c2i;m=i;n=j;fun4(k,o,t1,R1,i,j);/printf(t%d%d=%lfn”,i,j,t1ij);fp=fopen(time2.txt,w);for(i=0;i4;i+)for(j=0;j33;j+)fprintf(fp,

24、%lfn,t1ij);fclose(fp);fp=fopen(系数矩阵 R2 的值.txt,w);for(i=0;i120;i+)for(j=0;j108;j+)fprintf(fp,%ft,R1ij);fprintf(fp,n);fclose(fp);K4 和for(i=0;i4;i+)/第 i 炮for(j=0;j33;j+)/第 j 接收点Kij=K4ij;if(Kij=0)/平行于x轴,该行所在的每一个网格均经过,路程都是3m=j;fun3(i,R1,t1,m);/printf(t%d%d=%fn,i,j,t1ij);else if(Kij!=0)k=Kij;o=c5i=c4i;m=i

25、;n=j;fun4(k,o,t1,R1,i,j);/printf(t%d%d=%lfn,i,j,t1ij);fp=fopen(time4.txt”,w”);for(i=0;i4;i+)for(j=0;j33;j+)fprintf(fp,%lfn,t1ij);fclose(fp);fp=fopen(系数矩阵 R4 的值.txt,w);for(i=0;i133;i+)for(j=0;j108;j+)fprintf(fp,%ft,R1ij);fprintf(fp,n);fclose(fp);*当斜率k为0的时候,计算走时t的值void fun1(int n,double R120108,double

26、 t430,int m)FILE *fp1;double b=0.0;int i=0,j=0,q=0;/ 循环变量double r129=0.0,v129;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列vij=3000;v22=5000.0;v32=5000.0;v85=2000.0;v86=2000.0;for(j=0;j9;j+)rnj=3.0;*/* 写 出 检 验/*fp1=fopen(r 的值.txt,w);for(i=0;i12;i+)for(j=0;j9;j+)fprintf(fp1,%ft,Rij);fprintf(fp1,n);fclose

27、(fp1);*/*/*/for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列b+=rij*(1/vij);tnm=b;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列 Rn*30+mq+=rij;double fun(double x1,double y1,double x2,double y2)double s;S=(y2-y1)*(y2-y1)+(x2-x1)*(x2-x1);return sqrt(s); void fun2(double k,double o,double t430,double R120108,int m

28、,int n)/k 为斜 率,o为炮点坐标,相当于截距;FILE *fp2;int i=0,j=0,q=0;/ 循环变量int w1,w2,w3,w4;/中间变量,用来判断点在分块均匀上的位置double p=0,v129=0.0,r129=0.0;double x1,y1,x2,y2,x3,y3,x4,y4;float r1;v22=5000.0;v32=5000.0;v85=2000.0;v86=2000.0;for(i=0;i12;i+)/第 i 行for(j=0;j9;j+)/第 j 列 vij=3000;rij=0;for(i=0;i12;i+)for(j=0;j=(j*3.0)&(x1=(j*3.0)&(x2=(i*5.0)&(y3=(i*5.0)&(y4=(i+1)*5.0)&(x4=(j+1)*3.0);/ 右方计算路径长度r,当有两个点存在时,有下面的六种情况。 if(w1!=0&w3!=0)rij=fun(x1,y1,x3,y3);else if(w1!=0&w2!=0)rij=fun(x1,y1,x2,y2);else if(w2!=0&w4!=0)rij=fun(x2,y2,x4,y4);else if(w4!=0&w1!=0)rij=fun(x1,y1,x4,y4); else if(w3!=0&w2!=0)rij=fun(x2,y2,x3,y3);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号