(2) 尝试对简单的二阶 ODE 建模:为什么时间步越小并不越好

计算科学 matlab
2021-12-10 10:22:37

这个问题与另一个问题有关: 尝试对简单的二阶 ODE 建模

在另一个问题上,我得到了一些有用的评论,说明为什么模拟如此糟糕。

但是,我还有一个问题:为什么时间步越小不是越好?先感谢您。

h=0.05 %h=0.5;
max=100;
np=max/h;
u=[];
y=[];
u(1)=0;
u(2)=-h^2/2-h;
y(1)=0;
y(2)=-h^2/2-h;
x=[0:h:max];
for i=3:np+1;
    u(i)=u(i-1)*(h+2)+u(i-2)*(-h-1)+h^2*x(i);
    y(i)=-(x(i))^2/2-(x(i));
end
close all
plot(x,u)
hold on
plot(x,y,'r')

在此处输入图像描述

在此处输入图像描述

1个回答

这显然是之间的区别ex(1+h)x/h对于不同的值h. 后者是在求解全局误差的递归不等式时直接出现的术语,对于小h这收敛到指数。

为了x=100h=0.5一个得到价值1.6529199107882081e+35,与h=0.05该值是2.3911022046137546e+42,它大约符合观察到的幅度差异。指数值为2.6881171418161356e+43