我正在使用以下命令来求解 ODE 函数“DynamicFunc”:
x0_sim = zeros(12,1);
time_sim = [0 100];
options=odeset('AbsTol',1e-9,'RelTol',1e-6);
[tp,xp]=ode45(@DynamicFunc,time_sim,x0_sim,options);
DynamicFunc 可以是任何函数,并且代码运行良好。模拟时间为 0 - 100 秒。决赛 XP 的大小为 3017x12(即有 12 个状态和 3017 个试验点)。如果我想在持续时间为 1 秒的 FOR 循环中运行此代码,则如下所示:
x0_sim = zeros(12,1);
time_sim = [0 1];
for tt = 1:100
options=odeset('AbsTol',1e-9,'RelTol',1e-6);
[tp,xp]=ode45(@DynamicFunc,time_sim,x0_sim,options);
x0_sim = xp(:,end);
end
最终迭代的次数会如此不同。如何使它们具有相同的大小(使两种方法的最终输出具有相同的向量大小)?我猜这个问题可能与设置特定选项有关,但我找不到。