目前我正在努力理解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')
但有一种分歧我无法解释。我理解错了什么?
红色:解析解,蓝色:数值
这个微分方程在这个初始条件下的真解是: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')