叠加地震记录的相移波动方程正演模拟_第1页
叠加地震记录的相移波动方程正演模拟_第2页
叠加地震记录的相移波动方程正演模拟_第3页
叠加地震记录的相移波动方程正演模拟_第4页
叠加地震记录的相移波动方程正演模拟_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科生实验报告实验课程 数值模型模拟 学院名称 地球物理学院 专业名称 勘测技术与工程(石油物探) 学生姓名 学生学号 指导教师 熊高君 实验地点 5417 实验成绩 2015年5月 成都理工大学地震数值模拟实验报告实验时间2015年 5月开课单位地球物理学院指导教师熊高君实验题目: 叠加地震记录的相移波动方程正演模拟姓名学号班级专业勘测技术与工程(石油物探)院(系)地球物理学院 地球探测与信息技术系单项成绩内容理解写作结构程序设计模型设计计算结果结果分析总成绩实验报告一、 实验题目叠加地震记录的相移波动方程正演模拟二、实验目的掌握各向同性介质任意构造、水平层状速度结构地质模型的相移波动方程正

2、演模拟基本理论、实现方法与程序编制,由正演记录初步分析地震信号的分辨率。三、原理公式1、地震波传播的波动方程设(x,z)为空间坐标,t为时间,地震波传播速度为v(x,z),则二维介质中任意位置、任意时刻的地震波场为p(z,x,t):压缩波纵波。则二维各向同性均匀介质中地震波传播遵循的声波方程:2p(x,z,t)x2+2p(x,z,t)z2=1v2(x,z)2p(x,z,t)t2 (1)2、傅里叶变换的微分性质p(t)与其傅里叶变换的P()的关系:P=-pte-itdt 正傅里叶变换 pt=12-Peitdt 逆傅里叶变换 2则有时间微分性质:(i)P=-dptdte-itdt 一阶微分 (i)

3、2P=-d2ptdt2e-itdt 二阶微分 3为频率,=2T,T为周期。同理有空间微分性质:(ik)Pk=-dpxdxe-ikxdx 一阶微分 (ik)2Pk=-d2pxdx2e-ikxdx 二阶微分 (4)k为波数,k=2, 为波长3、地震波传播的相移外推公式令速度v 不随x 变化,只随z 变化,则利用傅里叶变换微分性质(3)和(4)式,把波动方程(1)式变换到频率波数域,得:ik2Pk,zi,+2P(k,z,)z2=i2vz2P(k,z,)或:2P(k,z,)z2=-2vz2-k2Pk,z, (5)令:kz2=2vz2-k2则(5)式的解为: Pk,z,=c1e-ikzz+c2eikzz

4、 (6)包括上行波和下行波两项,正演模拟取上行波:Pk,z,=c1e-ikzz (7)若Zj和Zj+1间隔为z,速度v(z)为在此间隔内不随Z变的常数,(7)式实现波场从Zj+1到Zj的延拓,即:Pk,zj,=c1e-ikzz在深度Zj+1开始向上延拓到Zj,若延拓深度为零,即:Z=Zj+1-Zj,则 Pk,zj=zj+1,=c1e-ikz(zj+1-zj)=ce-ikz×0=c (8) 对于任意深度Zj+1到Zj的延拓,可得正演模拟中地震波的传播方程(延拓公式Pk,zj,=Pk,zj+1,c1e-ikz(zj+1-zj) (9)4、初始条件和边界条件按照爆炸界面理论,反射界面震源在

5、 t=0 时刻同时起爆,此时刻的波场就是震源。根据不同情况,可直接使用反射系数脉冲或子波作震源。如果直接使用反射系数作震源脉冲,则初始条件可表示为: p0x,z,t=rx,z t=0 0 t=其他 (10) p0x,z,t对时间t和空间x做二维傅立叶变换,则得频率-波数域的初始波场 p0k,z,。边界条件: p0x,z,t=rx,z t=0,xmin<x<xmax,zmin<z<zmax 0 t=其他,x=其他,z=其他 (11) 其他参数都是在xmin<x<xmax,zmin<z<zmax范围内定义的。5、边界处理(1)边界反射问题把实际无穷空

6、间区域中求解波场的问题化为有穷区域求解时,左右两边使用零边界条件。物理上假设探区距Xmin与Xmax两个端点很远,在两个端点上收到的反射波很弱。但是,上述条件在实际中不能成立,造成零边界条件反而成为绝对阻止波通过的强反射面。在正演模拟的剖面上出现了边界假反射干涉正常界面的反射。(2)边界强反射的处理镶边法、削波法、吸收边界都能有效消除边界强反射。削波法就是在波场延拓过程中,每延拓一次,在其两侧均匀衰减到零,从而消除边界强反射的影响。假设横向总长度为NX,以两边Lx道吸波为例,有以下吸波公式:AbsNx-Ix=AbsIx=sin(2×LxLx-1) 0<=Ix<Lx Abs

7、Ix=1. Ix=其它 (12) 6、数字化根据数字信号处理的采样定理,把连续的信号变为计算机能处理的数字信号,使相移法正演模拟得以实现。频域抽样定理:一个频谱受限信号 f(t),如果时间只占据 -tm-tm的范围,若在频域以不大于 1/2tm 频率间隔 f1/2tm 对信号f(t)的频谱F()采样,则抽样到的离散信号 F1 可以唯一表示原信号。时域抽样定理:一个时间受限信号 f(t),如果频谱只占据-m-m的范围,则信号 f(t)可以用等间隔的抽样值唯一表示出来,而时间 t 抽样间隔必须不大于1/2fm,m=2fm,t=1/2fm。四、实验内容削波法相位移正演模拟(1)点绕射构造和水平层状速

8、度模型(参数如图1所示)的正演数值模拟; 1)削波的正演;2)无削波的正演;(2)计算中点和两个边界的 信号位置,分析实验结果的正确性;(3)做同样模型的褶积模型 数值模拟,对比分析两者的异同;图1 点绕射构造与水平速度模型(4)改变绕射点位置、速度,再做正演模拟;五、 方法路线1、参数初始化;2、形成边界削波数据;3、波场初始化;3、Zmax层波场延拓到深度Zmax-1;5、Zi+1层波场延拓到深度Zi;6、重复5,从Iz=Nz-1开始,直到Iz=1,得测线上的频率空间域波场;7、频率-空间域波场对频率做反傅里叶变换,得时间-空间波场;8、使用Fimage软件显示所得结果。六、实验结果1、结

9、果显示及分析(点绕射结构)图2 削波(左)正演模拟结果与未削波正演模拟结果(右)由图2分析可知:削波前,由于在两个端点上收到的反射波很弱,造成零边界条件反而成为绝对阻止波通过的强反射面,在正演模拟的剖面上出现了边界假反射干涉正常界面的反射。削波后,边界假反射的影响消除了,且曲线变得更光滑了。a、速度V1=5000、V2=5500,深度h=2000时,改变绕射点x的位置;图3 x=Nx/4-1时,反射系数(左)与削波正演模拟结果(右)图4 x=Nx/2-1时,反射系数(左)与削波正演模拟结果(右)由图3与图4对比分析可知:当速度,深度一定时,改变绕射点的位置,曲线随绕射点位置的改变而左右移动,且

10、移动趋势与绕射点位置的移动一致。b、绕射点x=Nx/2-1,深度h=2000 ,速度V2=5500时,改变速度V1;V2=5500V1=4000图5 V1=4000时,速度模型(左)与削波正演模拟结果(右)V1=6000V2=5500图6 V1=6000时,速度模型(左)与削波正演模拟结果(右)由图5与图6对比分析可知:当绕射点位置固定,深度一定时,随着介质速度增大,曲线变得越平缓。这是由于速度增大时,波的传播时间减小所致。c、速度V1=5000、V2=5500,绕射点x=Nx/2-1,改变深度h;图7 h=1000时,反射系数(左)与削波正演模拟结果(右)图8 h=3000时,反射系数(左)

11、与削波正演模拟结果(右)由图7与图8对比分析可知:当介质速度一定,绕射点位置不变时,随着绕射点深度的增加,曲线变得越来越平滑。显然是由于深度变大,波的传播时间变小所致。2、结果分析(水平层速度模型)图9 未削波(左)正演模拟结果与削波正演模拟结果(右)由图9分析可知:削波前,由于在两个端点上收到的反射波很弱,造成零边界条件反而成为绝对阻止波通过的强反射面,在正演模拟的剖面上出现了边界假反射干涉正常界面的反射。削波后,边界假反射的影响消除了,且曲线变得更光滑了。a、 深度h=2000 ,速度V2=5500时,改变速度V1;V1=4000V2=5500图10 V1=4000时,速度模型(左)与削波

12、正演模拟结果(右)V2=5500V1=6000图11 V1=6000时,速度模型(左)与削波正演模拟结果(右)由图10与图11对比分析可知:水平层深度不变时,随着速度的增加,结果显示的水平层向上移动。这是由于速度增大时,波的传播时间减小的。b、 速度V1=5000、V2=5500,改变深度h;图12 h=1000时,反射系数(左)与削波正演模拟结果(右)图13 h=3000时,反射系数(左)与削波正演模拟结果(右)由图12与图13对比分析可知:当波的传播速度不改变时,随着水平层深度的增加,结果显示的水平层向下移动。这是由于深度增加,波的传播时间增大。七、讨论建议1、实验收获通过本次实验,对叠后

13、相移波动方程正演模拟的过程有了更深入的理解,以及对其公式和意义都有了进一步的认识。编程能力又有了一定提高。2、存在问题图14 x=3*Nx/4-1时,反射系数(左)与削波正演模拟结果(右)如图14,当速度,深度一定时,绕射点位置x=3*Nx/4-1,其反射系数不能用Fimage正确显示,由显示的削波正演模拟结果可知,使用削波函数并未起到削波的作用。3、心得体会本次实验,并不容易。在实验中,必须要理解理论知识,才能够正确的编写程序。在实验过程中,遇到许多问题,通过和同学讨论,向老师求解,最终才得出实验结果。在以后的学习工作中,当一个人的力量不够时,要积极和其他人求教,共同学习,共同进步。附程序代

14、码:#include <stdlib.h>#include <conio.h>#include <math.h>#include <stdio.h>#include <string.h>#define Nx 128 / Trace Number#define Nt 256 / Record Number#define Nz 100 / Depth Number#define Labs 10 / Length Of Boundary Absorbing#define Dx 20 / Trace Interval#define Dt 0.

15、004 / Record Interval#define Dz 20 / Depth Interval#define Pai 3.1415926/function01: Judge the power of 2int Po2Judge(int N)int k=0;long Ln=0;for(k=0;N-Ln>0;k+)Ln=(long)pow(2,k);Ln=(long)pow(2,k-1);if(fabs(Ln-N)>=1)return(0);return(1);/function02: Absorb Bounderyint Absorb( )FILE *fp_Abs;int I

16、x;float AbsNx;if(fp_Abs=fopen("Absb.dat","wb")=NULL)printf("Connot open file ""Absb""");for(Ix=0;Ix<Nx;Ix+)AbsIx=1.0;/1.Absorb Boundary Initializing ?for(Ix=0;Ix<Labs;Ix+)AbsIx=sqrt(sin(Pai/2)*Ix/(Labs-1);AbsNx-Ix-1=AbsIx;/2.Absorb Boundary Com

17、pute?for(Ix=0;Ix<Nx;Ix+)fwrite(&AbsIx,sizeof(AbsIx),Nx,fp_Abs);/3.Byte Number offclose(fp_Abs);return(1);/function03: Form Reflect Structure Modelint Rflct( )FILE *fp_Rflct;int Ix,Iz;float RflctNz;if(fp_Rflct=fopen("Rflct.dat","wb")=NULL)printf("Connot open file "

18、;"Reflection""");for(Ix=0;Ix<Nx;Ix+)for(Iz=0;Iz<Nz;Iz+)RflctIz=0.;if(Ix=Nx/4-1&&Iz=Nz/2-1) RflctIz=1;fwrite(&RflctIz,sizeof(RflctIz),1,fp_Rflct);/4.fclose(fp_Rflct);return(1);/function04: Form Velocity Modelint Vlcty( )FILE *fp_Vlcty;int Ix,Iz;float VlctyNz;if(f

19、p_Vlcty=fopen("Vlcty.dat","wb")=NULL)printf("Connot open file ""Vlcty""");for(Ix=0;Ix<Nx;Ix+)for(Iz=0;Iz<(int)(3*Nz/4);Iz+)VlctyIz=5000.;fwrite(&VlctyIz,sizeof(VlctyIz),1,fp_Vlcty);/5. for(Iz=(int)(3*Nz/4);Iz<Nz;Iz+)VlctyIz=5500.;fwrite(

20、&VlctyIz,sizeof(VlctyIz),1,fp_Vlcty);/6.fclose(fp_Vlcty);return(1);/Fourier Transform: FFT(i=0) or IFFT(l=1)int kkfft(float pr, float pi, int n, int l)int it,m,is,i,j,nv,l0,il=0;float p,q,s,vr,vi,poddr,poddi;float fr4096,fi4096;int k=0;long Ln=0;for(k=0;n-Ln>0;k+)Ln=(long)pow(2,k);k=k-1;for (

21、it=0; it<=n-1; it+)m = it;is = 0;for(i=0; i<=k-1; i+)j = m/2;is = 2*is+(m-2*j);m = j;frit = pris;fiit = piis;pr0 = 1.0;pi0 = 0.0;p = 6.283185306/(1.0*n);pr1 = (float) cos(p);pi1 = -(float)sin(p);if (l!=0)pi1=-pi1;for (i=2; i<=n-1; i+)p = pri-1*pr1;q = pii-1*pi1;s = (pri-1+pii-1)*(pr1+pi1);p

22、ri = p-q;pii = s-p-q;for (it=0; it<=n-2; it=it+2)vr = frit;vi = fiit;frit = vr+frit+1;fiit = vi+fiit+1;frit+1 = vr-frit+1;fiit+1 = vi-fiit+1;m = n/2;nv = 2;for (l0=k-2; l0>=0; l0-)m = m/2;nv = 2*nv;for(it=0; it<=(m-1)*nv; it=it+nv)for (j=0; j<=(nv/2)-1; j+)p = prm*j*frit+j+nv/2;q = pim*j

23、*fiit+j+nv/2;s = prm*j+pim*j;s = s*(frit+j+nv/2+fiit+j+nv/2);poddr = p-q;poddi = s-p-q;frit+j+nv/2 = frit+j-poddr;fiit+j+nv/2 = fiit+j-poddi;frit+j = frit+j+poddr;fiit+j = fiit+j+poddi;if(l!=0)for(i=0; i<=n-1; i+)fri = fri/(1.0*n);fii = fii/(1.0*n);if(il!=0)for(i=0; i<=n-1; i+)pri = sqrt(fri*f

24、ri+fii*fii);if(fabs(fri)<0.000001*fabs(fii)if (fii*fri)>0)pii = 90.0;elsepii = -90.0;elsepii = atan(fii/fri)*360.0/6.283185306;for(i=0;i<n;i+)pri=fri;pii=fii;return ( 1 );/function05: Form Inition Wave Field: Reflect Coefficiency /int WvFld0()FILE *fp_Rflct,*fp_Wfld0r,*fp_Wfld0i;int Ix,Iz,I

25、t;float RflctNz;float Wfld0rNt,Wfld0iNt;if(fp_Wfld0r = fopen("Wfld0r.dat","wb")=NULL)printf("Connot open Wfld0r.dat");if(fp_Wfld0i = fopen("Wfld0i.dat","wb")=NULL)printf("Connot open Wfld0i.dat");if(fp_Rflct = fopen("Rflct.dat", &

26、quot;rb")=NULL)printf("Connot open Rflct.dat");for(Ix=0;Ix<Nx;Ix+)for(Iz=0;Iz<Nz;Iz+)fread(&RflctIz,sizeof(RflctIz),1,fp_Rflct);for(It=0;It<Nt;It+)Wfld0rIt=0.0;/7Wfld0iIt=0.0;/8.Initial Wave field Initializing: Wfld0r0=RflctIz;/9.Initial Wave field Initializingif( kkfft(W

27、fld0r,Wfld0i,Nt,0 ) !=1 )/10.FFT or Inver FFT?printf("FFT is error");exit(0);for(It=0;It<Nt/2+1;It+)/fwrite(&Wfld0rIt,sizeof(Wfld0rIt),1,fp_Wfld0r);/11fwrite(&Wfld0iIt,sizeof(Wfld0iIt),1,fp_Wfld0i);/12 fclose(fp_Rflct);fclose(fp_Wfld0r);fclose(fp_Wfld0i);return(1);/ Function06.1

28、.1: Read In Velocity Data and Absorb Boundary Dataint ReadVlctyAbsb(float Vlcty,float Absb)FILE *fp_Vlcty,*fp_Absb;int Iz,Ix;if(fp_Vlcty = fopen("Vlcty.dat", "rb") =NULL)printf("Connot open Rflct.dat" );for(Iz=0;Iz<Nz;Iz+)fread(&VlctyIz,sizeof(VlctyIz),1,fp_Vlcty

29、);/19.fclose(fp_Vlcty);if(fp_Absb = fopen("Absb.dat", "rb") =NULL)printf("Connot open Absb.dat" );for(Ix=0;Ix<Nx;Ix+)fread(&AbsbIx,sizeof(AbsbIx),1,fp_Absb);/20.fclose(fp_Absb);remove("Absb.dat");return(1);/ 06.1.2.1: Read Data From (Ix,Iz,Iw)Oder to (I

30、w,Iz,Ix)Oderint ReadIxIzIwToIwIzIx(FILE *fp_Wfld0r,FILE *fp_Wfld0i,float Wfld0r,float Wfld0i,int Iz,int Iw)int Ix,Nw=Nt;long Mgrtn;for(Ix=0;Ix<Nx;Ix+)Mgrtn=(Ix*Nz+1+Iz)*(Nt/2+1)+Iw;/25.fseek(fp_Wfld0r, sizeof(Wfld0rIx)*Mgrtn,0);/26fread(&Wfld0rIx,sizeof(Wfld0rIx),1,fp_Wfld0r); /27fseek(fp_Wfl

31、d0i, sizeof(Wfld0iIx)*Mgrtn,0);/28fread(&Wfld0iIx,sizeof(Wfld0iIx),1,fp_Wfld0i); /29. return(1);/ 06.1.2: Form New Wave Fieldint FrmNewWfld(FILE *fp_Wfld0r,FILE *fp_Wfld0i,float Wfldr,float Wfldi,float Absb,int Iz,int Iw)int ReadIxIzIwToIwIzIx(FILE *fp_Wfld0r,FILE *fp_Wfld0i,float Wfld0r,float W

32、fld0i,int Iz,int Iw);int Ix,Nw=Nt;float Wfld0rNx,Wfld0iNx;if(ReadIxIzIwToIwIzIx(fp_Wfld0r,fp_Wfld0i,Wfld0r,Wfld0i,Iz,Iw)!=1)printf("exp_ikzDz is error");exit(0);for(Ix=0;Ix<Nx;Ix+)WfldrIx+=Wfld0rIx;/21.WfldiIx+=Wfld0iIx;/22. WfldrIx=WfldrIx*AbsbIx;/23. WfldiIx=WfldiIx*AbsbIx;/24.return(

33、1);/ 06.1.3.1: Compute out PhaseShift Dataint exp_ikzDz(float eikzdz,int Ix,float Vc,int Iw,float Dw,float Dkx)float kz;eikzdz0 = 0.;eikzdz1 = 0.;kz =sqrt(pow(Iw*Dw/Vc,2)-pow(Ix*Dkx,2);/38. if(kz >0.0)/39.eikzdz0 = (float)cos(kz*Dz);/40. eikzdz1 = (float)sin(-1)*kz*Dz);/41.return(1);/ 06.1.3: Ext

34、rapolate One Depth Stepint MoveOneDz(float Wfldr,float Wfldi,float Vz,float Dkx,float Dw,int Iw)int Ikx,Nkx=Nx;float kz2,Wfld_r,Wfld_i;if(kkfft(Wfldr,Wfldi,Nx,0)!=1 ) /30printf("FFT is error");exit(0);for(Ikx=0;Ikx<Nkx/2+1;Ikx+) /31.if( exp_ikzDz(kz,Ikx,Vz,Iw,Dw,Dkx) !=1 )printf("e

35、xp_ikzDz is error");exit(0);Wfld_r =kz0*WfldrIkx-kz1*WfldiIkx;/32Wfld_i =kz0*WfldiIkx+kz1*WfldrIkx;/33 WfldrIkx = Wfld_r;WfldiIkx = Wfld_i;if(Ikx!=0)&&(Ikx!=Nkx/2)/34Wfld_r =kz0*WfldrNkx-Ikx-kz1*WfldiNkx-Ikx;/35.Wfld_i =kz0*WfldiNkx-Ikx+kz1*WfldrNkx-Ikx;/36. WfldrNkx-Ikx = Wfld_r;WfldiN

36、kx-Ikx = Wfld_i;if(kkfft(Wfldr, Wfldi,Nkx,1) !=1 )/37.printf("FFT is error");exit(0);return(1);/function06.1: PhaseShift calculateint PhaseShift( )int ReadVlctyAbsb(float *,float *);int FrmNewWfld(FILE *,FILE *,float *,float *,float *,int,int);int MoveOneDz (float *,float *,float,float,flo

37、at,int);FILE *fp_Wfldr,*fp_Wfldi,*fp_Wfld0r,*fp_Wfld0i;int Ix,Iz,Iw,Nw=Nt;float VlctyNz,AbsbNx;float WfldrNx,WfldiNx;float Dkx,Dw;Dkx=(float)(Pai/Dx)/Nx;/13.Dw =(float)(Pai/Dt)/Nt;/14.if(ReadVlctyAbsb(Vlcty,Absb)!=1)printf("ReadVlctyAbsb Error");exit(0);if(fp_Wfld0r = fopen("Wfld0r.da

38、t","rb") =NULL) printf("Connot open Wfld0r.dat");if(fp_Wfld0i = fopen("Wfld0i.dat","rb") =NULL) printf("Connot open Wfld0i.dat");if(fp_Wfldr = fopen("Wfldr.dat", "wb") =NULL) printf("Connot open Wfldr.dat" );if(fp_W

39、fldi = fopen("Wfldi.dat", "wb") =NULL) printf("Connot open Wfldi.dat" );for(Iw=0;Iw<Nw/2+1;Iw+)printf("Iw=%dn",Iw);for(Ix=0;Ix<Nx;Ix+)WfldrIx=0.0;/15. WfldiIx=0.0;/16for(Iz=Nz-1;Iz>0;Iz-)if( FrmNewWfld(fp_Wfld0r,fp_Wfld0i,Wfldr,Wfldi,Absb,Iz,Iw)!=1)pr

40、intf("FrmNewWfld Error");exit(0);if(MoveOneDz(Wfldr,Wfldi,(float)(VlctyIz/2.),Dkx,Dw,Iw)!=1)printf("WfldMoveOneStep Error");exit(0);for(Ix=0;Ix<Nx;Ix+)fwrite(&WfldrIx,sizeof(WfldrIx),1,fp_Wfldr);/17 fwrite(&WfldiIx,sizeof(WfldiIx),1,fp_Wfldi);/18fclose(fp_Wfld0r); remo

41、ve("Wfld0r.dat");fclose(fp_Wfld0i); remove("Wfld0i.dat");fclose(fp_Wfldr); fclose(fp_Wfldi);return(1);/ Function03: Wave Field Fourier Transform From Frequency Domain to Time Domainint Frqcy2Time( )FILE *fp_Wfldr,*fp_Wfldi;FILE *fp_Record;int Ix,It,Iw,Nw=Nt;float WfldtrNt,WfldtiN

42、t;long AddFrmStrt;if(fp_Wfldr = fopen("Wfldr.dat", "rb")=NULL) printf("Connot open Wfldr.dat" );exit(0);if(fp_Wfldi = fopen("Wfldi.dat", "rb")=NULL) printf("Connot open Wfldi.dat" );exit(0);if(fp_Record = fopen("Record.dat", "wb")=NULL) printf("Connot open Record.dat");exit(0);for(Ix=0;I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论