数学建模社区-数学中国

标题: [求助]大家帮忙看看这段matlab程序 [打印本页]

作者: dudu84    时间: 2003-1-15 11:40
标题: [求助]大家帮忙看看这段matlab程序

以下是一段解偏微分方程组的程序,谁能告诉我用的是什么方法解的,我怎么查了好多资料都看不出来啊,谢谢大家了!

, V W/ }1 w0 b& R. | ' p, z7 |. C& a

%
% Programme pour leopard
%

& o6 M4 X; f/ |7 w

global d K F N

4 R4 x% ~: T6 Q

N = 64

/ L- W0 j; P5 k# U" P9 k

dx = 1/N;

" ]9 X% o# T ]* |

d=10
K=0.01
F=0.1

! C1 F0 F% C. M' u! |$ z3 c


dt=0.001;

6 }5 O& l- l) b$ p4 ?

U=rand(N);
V=rand(N);

" M& n; m) k) @( q3 n

FourU=fft2(U);
FourV=fft2(V);

% ^0 r0 l T, ]9 V" f

for i=1:N,
for j=1:N,
i0=i-1;
j0=j-1;
if i0 > N/2
i0=1+N-i;
end
if j0 > N/2
j0=1+N-j;
end

FourU(i,j)=FourU(i,j)/(1+(i0*i0+j0*j0)/8);
FourV(i,j)=FourV(i,j)/(1+(i0*i0+j0*j0)/8);
end
end

2 U/ ?7 Z# [! c

U=real(ifft2(FourU));
V=real(ifft2(FourV));

: U! _5 _' F) W; W2 V) e2 O' @7 s

compteur=0;

: q4 d/ E" _' q6 {# R$ ?# \

for t=0:dt:1,

6 t- \. ]* t+ x- q

format long
max(max(U))
max(max(V))
min(min(V))

: y1 y, W. S( g( V: p

FourU=fft2(U);
FourV=fft2(V);

% L9 B/ L; ^0 D$ ?' z# x

for i=1:N,
for j=1:N,
i0=i-1;
j0=j-1;
if i0 > N/2
i0=1+N-i;
end
if j0 > N/2
j0=1+N-j;
end

FourU(i,j)=FourU(i,j)*exp(-dt*(i0*i0+j0*j0)/10);
FourV(i,j)=FourV(i,j)*exp(-d*dt*(i0*i0+j0*j0)/10);
end
end

( H0 G* V5 L1 O6 B' O1 `

U=real(ifft2(FourU));
V=real(ifft2(FourV));

5 k% m v& i8 Z6 @ B

for i=1:N,
for j=1:N,
P(i,j)=-U(i,j)*V(i,j)^2+F*(1-U(i,j));
G(i,j)=U(i,j)*V(i,j)^2-(F+K)*V(i,j);
end
end

; O( P+ r6 v+ V7 Y

U = U + dt*P;
V = V + dt*G;

7 a, T# T q3 r

for i=1:N,
for j=1:N,
W(i,j)=V(i,j);
M(i,j)=U(i,j);
end
end

! R1 }* U' v0 U4 M; X4 b

if rem(compteur,10) == 0
clf;
if W>0.6
image(100*W-60);
else
image(100*W)
end
if M>0.6
image(100*M-60);
else
image(100*M);
end
drawnow;
end

. Q: _/ I' s- X/ I8 ]+ D6 m

compteur = compteur +1;

% C0 e3 X/ \+ V7 ]* Z, I: v

end
%------------------------------------------


作者: 争气的败家子    时间: 2007-9-5 21:45
MATLAB 吧 里面有rand随机数生成,有fft傅立叶算法,得等,可能不会错吧。。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5