| 查看: 1237 | 回复: 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]) |
» 猜你喜欢
时间戳他又来了
已经有6人回复
小木虫看见有人已经知道结果了
已经有8人回复
J-J-W不为人知的一面
已经有11人回复
自然基金已经彻底沦为学术资源的交换工具
已经有36人回复
全人类对于AI的整体认知,尚且停留在幼儿园启蒙阶段
已经有14人回复
没消息就是被刷了呗
已经有10人回复
周末思考-婚姻长久底色
已经有12人回复
27考博求助
已经有4人回复
深圳大学材料学院“智能分子材料团队”招聘博士后
已经有4人回复











回复此楼