📄 kdv.m
字号:
% 模拟偏微分方程kdv方程的水波。
%通过修改已可以用来模拟其他的如KP方程等。
dt=0.0001;dx=0.1;c=dt/dx^3;d=dt/dx;
x=-6:0.1:25;n=length(x);
y(:,1)=3*(sech(x')).^2;%初始条件
h=plot(x(1:end),y(1:end,1),'linewidth',2);
axis([-6,25,-3,6])
set(h,'EraseMode','xor','MarkerSize',18);
y(3:(n-2),2)=-c/2*(y(5:n,1)-2*y(4:(n-1),1)+...
2*y(2:(n-3),1)-y(1:(n-4),1))+y(3:(n-2),1)...
-6*y(3:(n-2),1).*d.*(y(4:(n-1),1)-y(2:(n-3),1));
for j=1:100000;
y(3:(n-2),3)=-c*(y(5:n,2)-2*y(4:(n-1),2)+...
2*y(2:(n-3),2)-y(1:(n-4),2))+y(3:(n-2),1)...
-6*y(3:(n-2),2).*d.*(y(4:(n-1),2)-y(2:(n-3),2));
y(3:(n-2),1)=y(3:(n-2),2);
y(3:(n-2),2)=y(3:(n-2),3);
if mod(j,40)==0;
set(h,'XData',x,'YData',y(:,2));
drawnow;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -