我这里有一个要解决的ODE,它有一个测试参数 a 。 我希望 a 是温度 T 的函数(在此代码中它被解析为 X(2) 因为它随时间变化)。
我想基于 a 和 T 的实验值。
因此,我正在考虑按照 interp1 的方式进行。
这是我的测试虚拟ODE。
function xprime = RabbitTemp(t,X)
% Model of Rabbit Population
% where,
% Xo = Initial Population of Rabbits
% X(1) = Population density of Rabbit
% X(2) = Temperature T (that varies with time)
% a = test parameter
% Interpolate here
Texptdata = [1 2 3 4];
aexptdata =[10 14 19 30];
a= interp1(Texptdata,aexptdata,X(2),'spline');
% ODE
dx = [0 0];
dx(1) = (X(1))*(1 - X(1)*a - 3*(X(2))));
dx(2) = sin(t);
xprime = [dx(1) dx(2)]';
end
我已经尝试使用我的解算器运行代码,它编译得很好。 但是我想知道ODE求解器是否正在调用与 X(2)的正确对应值相对应的正确插值 a 即可。我似乎无法弄清楚如何验证这一点。
任何人都可以帮我验证这一点或指出我如何去做吗?非常感谢!