matlab一个程序的每步意义求解释n=20;w=(pi/30:(2*pi-pi/30)/19:2*pi);an=randn(1,20);rad=(-pi:2*pi/19:pi);g=9.8;h=zeros(21,21);j=1;k=1;t=0;x=(-10:10);y=(-10:10);for o=1:300t=t+0.1for m=1:21for n=1:21for i=1:20e=2*pi*rand();a=(w(i)^2)/g;h(j,k)
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 15:59:50
matlab一个程序的每步意义求解释n=20;w=(pi/30:(2*pi-pi/30)/19:2*pi);an=randn(1,20);rad=(-pi:2*pi/19:pi);g=9.8;h=zeros(21,21);j=1;k=1;t=0;x=(-10:10);y=(-10:10);for o=1:300t=t+0.1for m=1:21for n=1:21for i=1:20e=2*pi*rand();a=(w(i)^2)/g;h(j,k)
matlab一个程序的每步意义求解释
n=20;
w=(pi/30:(2*pi-pi/30)/19:2*pi);
an=randn(1,20);
rad=(-pi:2*pi/19:pi);
g=9.8;
h=zeros(21,21);
j=1;
k=1;
t=0;
x=(-10:10);
y=(-10:10);
for o=1:300
t=t+0.1
for m=1:21
for n=1:21
for i=1:20
e=2*pi*rand();
a=(w(i)^2)/g;
h(j,k)=h(j,k)+an(i)*cos(a*x(j)*cos(rad(i))+a*y(k)*cos(rad(i)-w(i)*t+e));
end
k=k+1;
if k==21
k=1;
end
end
j=j+1;
if j==21
j=1;
end
end
p=surf(x,y,h)
F(o)=getframe
end
%movie2avi(F,'out.avi','compression','none');
如题是一个海浪模拟的程序,请问这个程序是如何运行的.每步的意义和运用的海浪表达公式以及定义的w是什么.
写论文中,matlab基本都忘了求高人解答~
怎么运行明白~只是想知道这个程序运用的原公式=0= 否则不好解释这个程序是怎么得出来的
matlab一个程序的每步意义求解释n=20;w=(pi/30:(2*pi-pi/30)/19:2*pi);an=randn(1,20);rad=(-pi:2*pi/19:pi);g=9.8;h=zeros(21,21);j=1;k=1;t=0;x=(-10:10);y=(-10:10);for o=1:300t=t+0.1for m=1:21for n=1:21for i=1:20e=2*pi*rand();a=(w(i)^2)/g;h(j,k)
打开MATLAB 新建一个空文件(Ctrl+N),把上面的代码复制到里面,点F5就可以运行了
这个程序就是模拟海浪的形态,就是在X Y平面内每一点的Z坐标
h(j,k)=h(j,k)+an(i)*cos(a*x(j)*cos(rad(i))+a*y(k)*cos(rad(i)-w(i)*t+e)); 这个就是Z坐标
至少公式的意义就不清楚了,定义的W就是用到计算h,h就是一个和随机数有关的有公式
p=surf(x,y,h) 这个就是画三围图的函数
你的程序里X和Y是从-10到10,就是在这个范围内画300张三围图
F(o)=getframe
把这300张实现动画播放