資源簡介
Matlab-瑞利波模擬程序。瑞雷波是一種界面彈性波。廣泛應用于地球物理,防震減災。

代碼片段和文件信息
%%?----??Function?Rayleigh_Waves??---??%%
%%?----??本程序是顯示瑞雷面波的程序?---??%%
clc?
clear?
close?
filename=?‘forward.gif‘;??%?生成波場快照的文件名??%%%%%%
set_delay?=?1/24;?????????%?每一幅圖和每一幅圖的時間延遲,注意人眼識別每分鐘24幅圖畫
f?=?0.5;
T?=?1/f;
omega?=?2*pi*f;
vel?=?3000;
ncol?=?7;
%?Set?up?array?of?depths
x?=?[0:300:15000];
z?=?[0:-100:-2000];
Ax?=?200;
Az?=?200;
nx?=?length(x);
nz?=?length(z);
k?=?2*pi*f/vel;
lamda?=?750;
%Start?time?step?loop
n=40;
M=moviein(n);
for?it=1:n
??
????t=T*(it)/n;
????for?ix=1:nx
???
????????dx(ix)?=?0.001*(x(ix)+Ax*exp(z(1)/lamda)*sin(k*x(ix)-omega*t));
????????dz(ix)?=?0.001*(z(1)+Az*exp(z(1)/lamda)*cos(k*x(ix)-omega*t));
??
????end
????figure
????plot(dxdz‘o-‘)
????hold?on
????plot(dx(20)dz(20)‘or‘)
????axis([-0.215.2-2.051])
????title(‘Rayleigh?wave???f=0.5?Hz‘)
????ylabel?(‘depth(km)‘)
????xlabel?(‘(km)‘)?
???
????for?iz=2:ncol-1
????????for?ix=1:nx
????????????dx(ix)?=?0.001*(x(ix)+Ax*exp(z(iz)/lamda)*sin(k*x(ix)-omega*t));
????????????dz(ix)?=?0.001*(z(iz)+Az*exp(z(iz)/lamda)*cos(k*x(ix)-omega*t));
????????end?
????????plot(dxdz‘o‘)
????end
????
????for?ix=1:nx
????
????????dx(ix)?=?0.001*(x(ix)+Ax*exp(z(ncol)/lamda)*sin(k*x(ix)-omega*t));
????????dz(ix)?=?0.001*(z(ncol)+Az*exp(z(ncol)/lamda)*cos(k*x(ix)-omega*t));
????end
????plot(dxdz‘ro‘)
?
????for?iz=ncol+1:nz
????????for?ix=1:nx
????????????dx(ix)?=?0.001*(x(ix)+Ax*exp(z(iz)/lamda)*sin(k*x(ix)-omega*t));
????????????dz(ix)?=?0.001*(z(iz)+Az*exp(z(iz)/lamda)*cos(k*x(ix)-omega*t));
????????end??
????????plot(dxdz‘o‘)
????end
???
????set(gcf‘color‘[1?1?1])
????saveas(gcfstrcat(‘第‘num2str(it))‘bmp‘)
??
????frame=getframe;??????????%?把每一幅圖當做一幀?%
????im=frame2im(frame);??????%?讀入?%
????
????[Imap]=rgb2ind(im256);?%?顏色變為數值?%
???
????if?it==1;?
????????imwrite(Imapfilename‘gif‘‘Loopcount‘inf...
????????????‘DelayTime‘set_delay);????%?loopcount第一個波場快照格式?
????else
????????imwrite(Imapfilename‘gif‘‘WriteMode‘‘append‘...
????????????‘DelayTime‘set_delay);????%?l后面波場快照格式
????end
????hold?off
????
????M(:it)=getframe;
end
??
movie(M10)
close?all
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2262??2018-08-28?10:16??Matlab-瑞利波模擬程序\rayleigh_waves_lzm.m
?????目錄??????????0??2018-09-12?20:30??Matlab-瑞利波模擬程序
-----------?---------??----------?-----??----
?????????????????2262????????????????????2
- 上一篇:基于混沌相空間重構的電力系統故障診斷
- 下一篇:人臉灰度積分投影matlab實現
評論
共有 條評論