数学建模社区-数学中国

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

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

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

2 ]6 h5 Z: ^$ E$ `; W" R / B: o: R# v, Y& E

%
% Programme pour leopard
%

! Z# J6 P2 |& G+ X/ @/ A) U

global d K F N

7 N( m, w3 M. z+ \0 t

N = 64

?$ [) u( {+ }- y

dx = 1/N;

) t5 ^" c% E: J/ P# n" ~

d=10
K=0.01
F=0.1

4 c0 N6 W6 T0 J, l) }


dt=0.001;

: i( n9 O' _1 p5 Q

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

! a$ X8 K$ P: T1 F! v. c/ i: r% u

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

) B) N/ |+ x: i r

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

+ E; j2 W* d# ~3 w

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

4 \# P- I3 z6 p7 g

compteur=0;

( D/ Z& J) }# N* O: g3 |3 v( q3 @

for t=0:dt:1,

# Y# k0 S+ o m1 n3 {# }

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

( k' }" X" P& h# M) S* [

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

8 J. i# f. e8 h

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

2 i2 u, X) _/ h

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

# N& |* L8 j+ v6 w+ a8 a0 l

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

8 d2 c" v& K0 m" I" C1 L# z

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

' t4 D: H7 C/ c- D

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

. k7 D3 I# n4 t: U

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

- Y! }6 ^9 \ x# H6 @: ^7 K, }- G

compteur = compteur +1;

( `2 ^; i3 I5 W$ j, q& a- v- Z% T. ^" s

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


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




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