我正在使用以下代码,但找不到问题所在:
xx = 0:1/50:1;
v = 3.*exp(-xx)-0.4*xx;
xq = xx;
vq = @(xq) interp1(xx,v,xq);
tspan = 0:1/50:1;
x0 = 3;
[~, y2] = ode45(@(t,x)vq(x), tspan, x0);
我明白了y2 = [3;NAN;NAN;NAN,.....]
。然而,当我在调用 之前绘制两个方程时ode45
,我发现它们是相等的,这并不奇怪。
当我计算时:
f = @(t,r) 3.*exp(-r)-0.4*r;
[~, y] = ode45(f,tspan,x0);
它工作正常。但我需要证明,如果我进行插值,我可以获得相同的结果。为什么这不起作用?