lilei2.m
来自「这是我和同事门一起努力编的的孤立子程序。基本上所以孤立子的情况都考虑到了」· M 代码 · 共 62 行
M
62 行
clear all;
lambda0=-1;
choice=2; %只有当lambda0<0时使用
if lambda0>=0
k=sqrt(lambda0);
flag=true; %lambda0>=0
else
k=sqrt(-lambda0);
flag=false; %lambda0<0
end
w=4*k^2;
p=w*k;
deltat=0.1; %大于0
ST=-2.0 %开始时间
ET=2.0; %终止时间
SX=-10.0; %x开始
EX=10.0; %x终止
x=SX:0.1:EX; %x序列
SY=-10.0; %y开始
EY=10.0; %y终止
y=SY:1:EY; %y序列
figure(1);
pause(3);
[X,Y]=meshgrid(x,y);
A=2*(k*X+p*ST);
deltapt=2*p*deltat;%偏移
for t=ST:deltat:ET
if flag %labmda0>=0
u1=w*sec(A).^2; %(第11页2.35)
u2=-w*sin(A).*(sec(A).^2);
else %labmda0<0
if choice==1 %选择第一个解(第11页2.38)
u1=w./(sinh(A).^2);
u2=-w*coth(A)./sinh(A);
else %选择第二个解(第12页2.41)
u1=-w./(cosh(A).^2);
u2=w*tanh(A)./cosh(A);
end
end
subplot(1,2,1);
surf(X,Y,u1);
title(['u,t=' num2str(t)]);
%print -dpsc www1.eps;
subplot(1,2,2)
surf(X,Y,u2);
title(['w,t=' num2str(t)]);
%print -dpsc www2.eps;
A=A+deltapt; %下一时刻的值
%pause;
pause(0.5);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?