我在用matlab编写一地震波数值模拟程序,运行时总显示有错,求高手指教.程序如下clear;%parameter form 参数表V=2563.5; %velocity dt=0.002; %steptime 时间步长time=0.5; %snaptime 快照时间f=30; %wavelet frequency 子
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 18:34:45
![我在用matlab编写一地震波数值模拟程序,运行时总显示有错,求高手指教.程序如下clear;%parameter form 参数表V=2563.5; %velocity dt=0.002; %steptime 时间步长time=0.5; %snaptime 快照时间f=30; %wavelet frequency 子](/uploads/image/z/11418505-25-5.jpg?t=%E6%88%91%E5%9C%A8%E7%94%A8matlab%E7%BC%96%E5%86%99%E4%B8%80%E5%9C%B0%E9%9C%87%E6%B3%A2%E6%95%B0%E5%80%BC%E6%A8%A1%E6%8B%9F%E7%A8%8B%E5%BA%8F%2C%E8%BF%90%E8%A1%8C%E6%97%B6%E6%80%BB%E6%98%BE%E7%A4%BA%E6%9C%89%E9%94%99%2C%E6%B1%82%E9%AB%98%E6%89%8B%E6%8C%87%E6%95%99.%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%B8%8Bclear%3B%25parameter+form+%E5%8F%82%E6%95%B0%E8%A1%A8V%3D2563.5%3B+%25velocity+dt%3D0.002%3B+%25steptime+%E6%97%B6%E9%97%B4%E6%AD%A5%E9%95%BFtime%3D0.5%3B+%25snaptime+%E5%BF%AB%E7%85%A7%E6%97%B6%E9%97%B4f%3D30%3B+%25wavelet+frequency+%E5%AD%90)
我在用matlab编写一地震波数值模拟程序,运行时总显示有错,求高手指教.程序如下clear;%parameter form 参数表V=2563.5; %velocity dt=0.002; %steptime 时间步长time=0.5; %snaptime 快照时间f=30; %wavelet frequency 子
我在用matlab编写一地震波数值模拟程序,运行时总显示有错,求高手指教.程序如下
clear;
%parameter form 参数表
V=2563.5; %velocity
dt=0.002; %steptime 时间步长
time=0.5; %snaptime 快照时间
f=30; %wavelet frequency 子波频率
wavelet=0.05; %wavelet length 子波长度
dx=20; %x方向步长
dz=20; %z方向步长
a=100;b=100; %source position
line=200;row=200;
p=zeros(line+1,row+1);
pp=zeros(line+1,row+1);
ppb=zeros(line+1,row+1);
fic=fopen('dizhen.dat','rb');
[v]=fread(fic,750*685,'float32');
k=1;
for i=1:685
for j=1:750
V(i,j)=v(k);
k=k+1;
end
end
%computate the wavelet
for t=0:dt:time
% t=0:0.001:0.05
if(t
我在用matlab编写一地震波数值模拟程序,运行时总显示有错,求高手指教.程序如下clear;%parameter form 参数表V=2563.5; %velocity dt=0.002; %steptime 时间步长time=0.5; %snaptime 快照时间f=30; %wavelet frequency 子
问题出现V上面.
在第3行,程序明确V是一个数值而已
但是第19行到第24行,程序已经把V改变成为一个矩阵,行为685,列为750
这样直接导致第39行中(V*dt/dx).^2*(pp(x+1,z)+pp(x-1,z)-2*pp(x,z))该项的结果也是这样一个685*750的矩阵
这样的矩阵是不能直接赋值给第39行的左边的数值p(x,z)的.