MATLAB ODE45:为什么解析解和数值解之间存在很大差异?

MATLAB ODE45: Why is there a big divergence between analytical and numerical solution?

目前我正在尝试理解 ode45。所以我想解决一个练习。 微分方程为:y=y',y(0)=10。 我写了这段代码:

tspan = [0 5];
y0 = 10;

[t,y] = ode45(@(t,y) y, tspan, y0);
plot(t,y);

我知道解析解是指数函数。所以我将它插入到图中以验证解决方案。 (exp函数需要向上移动9位。)

hold on;
fplot(@(x) exp(x)+9,tspan,'r')

但是有一个分歧我无法解释。我理解错了什么?

red:analytical solution, blue: numerical

此初始条件下微分方程的真解为:10*exp(t)

对于y'(t) = y(t)
解的形式为 c.exp(t),其中 c 为常数。 使用初始条件:y0 = 10
我们有:c exp(0) = 10
因此 c = 10;

因此您比较的金额不正确,
使用:fplot(@(x) 10*exp(x),tspan,'r')