| 查看: 1216 | 回复: 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]) |
» 猜你喜欢
上海大学实验技术岗位非升即走
已经有8人回复
今年审到国自然15份,谈谈感受
已经有14人回复
考博自荐
已经有6人回复
青C资助名额大幅增加!
已经有16人回复
重磅!青年科学基金项目(C类)资助增幅预计超过50%
已经有10人回复
我在等一个没有答案的答案
已经有3人回复
半夜喝咖啡
已经有5人回复
面上本子正文33页,违规吗?会被低分嘛?
已经有6人回复
售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急
已经有4人回复
售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急
已经有7人回复












回复此楼