登录论坛

查看完整版本 : [MATLAB混合编程] 请教一下程序


tianzijun
2009-05-04, 15:19
程序1:function [uf,vf] = sfn(u,v)
global e b k;
ny = size(u,1);
nx = size(u,2);
uer = [u(:,1),u,u(:,nx)];
uec = [u(1,:);u;u(ny,:)];
ul = uec(3:ny+2,:)+uec(1:ny,:)+uer(:,1:nx)+uer(:,3:nx+2)-4*u;
u3 = u.*u.*u;
uf = (u-u3/3-v)/e + k^2*ul;
vf = e*(u+b-0.5*v);
程序2:
clc
global k b e

nsteps = 2000;

nxy = 100;
u = 5*ones(nxy,1)*([1:nxy]-0.4*nxy)/nxy;
v = 5*(([1:nxy]-0.4*nxy)')*ones(1,nxy)/nxy;

h = 0.04;
e = 0.1;
b = 0.67;

colormap hsv;
set(0,'DefaultSurfaceEdgecolor','none');

k=1;

for i=1:nsteps
[uf,vf] = sfn(u,v);
u = u+h*uf;
v = v+h*vf;
if mod(i,3) == 1
pcolor(u); drawnow;
end
end
两个程序运行后能产生一个动态的螺旋波,基于FHN模型的螺旋波,我想知道每一行程序说一下它都干了什么,即解释下程序就行!