|
以下是一段解偏微分方程组的程序,谁能告诉我用的是什么方法解的,我怎么查了好多资料都看不出来啊,谢谢大家了! ! O" o) e; i. B% \5 C
- k5 W; ]- @( y( h! b$ i
% % Programme pour leopard %
! Z% M8 T3 [% Lglobal d K F N
" c0 W$ o1 {. NN = 64 0 u( y+ D: e/ S4 V0 Q
dx = 1/N; $ r: E2 ~0 {, b2 p
d=10 K=0.01 F=0.1 7 U3 H2 _1 R7 C* z0 U; z
dt=0.001; ; c7 J2 H* I9 Z0 X/ P* i
U=rand(N); V=rand(N); 5 E' r$ J; m1 V% s( q% p
FourU=fft2(U); FourV=fft2(V);
* \: Y- q, l2 x; ofor 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 5 _* N8 U0 R+ ]- o/ x- D/ q$ L
U=real(ifft2(FourU)); V=real(ifft2(FourV));
* g( [+ K4 T3 S0 R7 x7 wcompteur=0; ) [0 W0 G$ f7 y9 R
for t=0:dt:1, ' S m# u3 {, a2 M9 }2 F* o
format long max(max(U)) max(max(V)) min(min(V)) 0 e+ w" } ], ^% ]
FourU=fft2(U); FourV=fft2(V); $ f3 X$ j' J$ q! S! Q8 R6 F4 z
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 ) |' J/ g9 H) o* h$ b; a
U=real(ifft2(FourU)); V=real(ifft2(FourV));
3 M8 t4 j5 m2 d+ f& Afor 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 : M3 u. P$ d$ v
U = U + dt*P; V = V + dt*G;
, B1 Q" K) f1 v- ~. g+ C, Vfor i=1:N, for j=1:N, W(i,j)=V(i,j); M(i,j)=U(i,j); end end + M: Z- S5 p# n
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 ?. [- r( G% J" k
compteur = compteur +1;
2 S5 r' q5 b' {$ |7 W; Zend %------------------------------------------
|