[求助]大家帮忙看看这段matlab程序
<P>以下是一段解偏微分方程组的程序,谁能告诉我用的是什么方法解的,我怎么查了好多资料都看不出来啊,谢谢大家了!</P><P>%<BR>% Programme pour leopard<BR>%</P>
<P>global d K F N</P>
<P>N = 64</P>
<P>dx = 1/N;</P>
<P>d=10<BR>K=0.01<BR>F=0.1</P>
<P><BR>dt=0.001;</P>
<P>U=rand(N);<BR>V=rand(N);</P>
<P>FourU=fft2(U);<BR>FourV=fft2(V);</P>
<P>for i=1:N,<BR> for j=1:N,<BR> i0=i-1;<BR> j0=j-1;<BR> if i0 > N/2<BR> i0=1+N-i;<BR> end<BR> if j0 > N/2<BR> j0=1+N-j;<BR> end<BR> <BR> FourU(i,j)=FourU(i,j)/(1+(i0*i0+j0*j0)/8);<BR> FourV(i,j)=FourV(i,j)/(1+(i0*i0+j0*j0)/8);<BR> end<BR>end</P>
<P>U=real(ifft2(FourU));<BR>V=real(ifft2(FourV));</P>
<P>compteur=0;</P>
<P>for t=0:dt:1,</P>
<P>format long <BR>max(max(U))<BR>max(max(V))<BR>min(min(V))</P>
<P>FourU=fft2(U);<BR>FourV=fft2(V);</P>
<P>for i=1:N,<BR> for j=1:N,<BR> i0=i-1;<BR> j0=j-1;<BR> if i0 > N/2<BR> i0=1+N-i;<BR> end<BR> if j0 > N/2<BR> j0=1+N-j;<BR> end<BR> <BR> FourU(i,j)=FourU(i,j)*exp(-dt*(i0*i0+j0*j0)/10);<BR> FourV(i,j)=FourV(i,j)*exp(-d*dt*(i0*i0+j0*j0)/10);<BR> end<BR>end</P>
<P>U=real(ifft2(FourU));<BR>V=real(ifft2(FourV));</P>
<P>for i=1:N,<BR> for j=1:N,<BR> P(i,j)=-U(i,j)*V(i,j)^2+F*(1-U(i,j));<BR> G(i,j)=U(i,j)*V(i,j)^2-(F+K)*V(i,j);<BR> end<BR>end</P>
<P>U = U + dt*P;<BR>V = V + dt*G;</P>
<P>for i=1:N,<BR> for j=1:N,<BR> W(i,j)=V(i,j);<BR> M(i,j)=U(i,j);<BR> end<BR>end</P>
<P>if rem(compteur,10) == 0<BR>clf;<BR>if W>0.6<BR>image(100*W-60);<BR>else<BR>image(100*W)<BR>end<BR>if M>0.6<BR>image(100*M-60);<BR>else<BR>image(100*M);<BR>end<BR>drawnow;<BR>end</P>
<P>compteur = compteur +1;</P>
<P>end<BR>%------------------------------------------<BR></P> MATLAB 吧 里面有rand随机数生成,有fft傅立叶算法,得等,可能不会错吧。。
页:
[1]