| 查看: 1260 | 回复: 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人回复
越来越担心硕士毕业后没有竞争力了
已经有13人回复
申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请
已经有3人回复
闲聊
已经有6人回复
申博求助
已经有4人回复










回复此楼