数学建模社区-数学中国

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

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

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

2 E9 _$ o6 z1 V- I5 i$ c( x) { 5 `& L/ N9 s7 z

%
% Programme pour leopard
%

) S0 p8 o2 {+ M% t8 Y6 }

global d K F N

5 A; q1 ~- ~ _9 p0 E. O( ]

N = 64

6 ~6 [9 d- E' H( e1 y" D

dx = 1/N;

$ r: K2 S5 R! n1 m2 d

d=10
K=0.01
F=0.1

9 f8 {( _: l; W) n5 H


dt=0.001;

! y% V: W1 q5 w

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

6 m0 X$ D7 P) J. x8 @

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

9 ?6 L; q/ F4 B: v r/ A$ @! \

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

# L* u: _+ o$ `+ ?7 ~0 H

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

) e& p A* {/ \6 u! M

compteur=0;

/ g: `4 U- T! x

for t=0:dt:1,

* e+ a8 Y+ E* W3 t7 O5 m

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

; ?. Z* v" x4 |, m" Y M

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

7 Q* a6 S/ @3 @9 v

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

; ^) Y4 Y1 m7 A% D; H

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

: x8 K- E' ]/ q# e0 a# M

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

/ S0 k. z# {, Y/ W* E/ S

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

, E2 ~$ S; {! Y$ [ q( q# ^7 n

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

1 j8 S$ u- D" U- _4 i8 m

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

# J# q1 c: _( F/ e

compteur = compteur +1;

9 |1 a7 X9 @/ Z& C C! U

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


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




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