dudu84 发表于 2003-1-15 11:40

[求助]大家帮忙看看这段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 &gt; N/2<BR>   i0=1+N-i;<BR>  end<BR>  if j0 &gt; 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 &gt; N/2<BR>   i0=1+N-i;<BR>  end<BR>  if j0 &gt; 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&gt;0.6<BR>image(100*W-60);<BR>else<BR>image(100*W)<BR>end<BR>if M&gt;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>

争气的败家子 发表于 2007-9-5 21:45

MATLAB 吧 里面有rand随机数生成,有fft傅立叶算法,得等,可能不会错吧。。
页: [1]
查看完整版本: [求助]大家帮忙看看这段matlab程序