• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: Matlab
  • 标签: Matlab  瑞雷波  模拟  

资源简介

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


评论

共有 条评论