| 查看: 1189 | 回复: 0 | ||
BreakX金虫 (小有名气)
|
[求助]
大神们帮帮忙 一个matlab程序转成fortran
|
|
MATLAB 的程序如下 %program 2 :the pseudospectral method %iu_t+u_xx+2abs(u)^2u=0 L=80;N=256;dt=0.02;tmax=20;nmax=round(tmax/dt); dx=L/N;x=[-L/2:dx:L/2-dx];K=[0:N/2-1,-N/2:-1]*2*pi/L;k2=K.^2; s1=1.2;s2=0.8;b1=1;b2=0;d1=20;d2=0; u=s1*sech(s1*(x+d1)).*exp(b1*1i*x)+s2*sech(s2*(x+d2)).*exp(b2*1i*x); udata=u;tdata=0; for nn=1:nmax du1=1i*(ifft(-k2.*fft(u))+2*u.*u.*conj(u)); v=u+0.5*du1*dt; du2=1i*(ifft(-k2.*fft(v))+2*v.*v.*conj(v)); v=u+0.5*du2*dt; du3=1i*(ifft(-k2.*fft(v))+2*v.*v.*conj(v)); v=u+du3*dt; du4=1i*(ifft(-k2.*fft(v))+2*v.*v.*conj(v)); u=u+(du1+2*du2+2*du3+du4)*dt/6; if mod(nn,round(nmax/25))==0 udata=[udata;u]; tdata=[tdata nn*dt]; end end % plot waterfall(x,tdata,abs(udata)); colormap([0 0 0]); view(10,60) text(-2,-6,'x','fontsize',15) text(50,5,'t','fontsize',15) zlabel('|u|','fontsize',15) axis([-L/2 L/2 0 tmax 0 2]);grid off set(gca ,'xtick',[-40 -20 0 20 40]) set(gca ,'ytick',[0 10 20]) set(gca ,'ztick',[0 1 2]) |
» 猜你喜欢
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
假如你的研究生提出不合理要求
已经有5人回复
所感
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有28人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复












回复此楼