数学建模社区-数学中国

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

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

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

' e! y* r. J$ d 5 t; ^! o& `5 Q1 c

%
% Programme pour leopard
%

3 t K5 l$ `1 |3 Q

global d K F N

) F$ y8 L* \2 z; X) a" Q" h5 Q

N = 64

* q" f+ \7 B/ v6 A) D

dx = 1/N;

6 ?" u; c3 D+ J! r; S

d=10
K=0.01
F=0.1

+ k7 t3 `4 H* l% @0 j3 `" E


dt=0.001;

0 [ Y; w+ M! `; A, J' H+ Z. K: F

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

# z* x4 x! {5 T' D2 D" O8 F

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

) U6 f8 f/ m; 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

" I I- L2 x( M7 n

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

; S$ v& f; T1 K6 r0 g

compteur=0;

1 m9 s- w9 C3 J% X n, }

for t=0:dt:1,

& ~1 Z# E. D- @7 G( ~4 A

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

4 H3 _# F. z* @$ P$ ~& R2 M

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

- |3 Y5 [& ]9 p

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

3 P& r% [9 n7 t0 {. p8 i1 r

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

5 r7 |% g. r: G. Z) }" g" ]

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

9 ?" S3 x2 r$ b" H

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

( K) `, x; X- |) C2 ~6 p# }% m. V

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

^$ m+ |+ F I3 S% L& a" [" ?

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

4 P {- \) j1 J3 |0 \

compteur = compteur +1;

- m* Z# x8 Y9 n

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


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




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