美好的一天。我有兴趣解决形式问题:
x_dot = Ax + F,
使用Matlab。使用数值解算器(ode23 / ode45)似乎很简单,但在我的例子中,矩阵A和向量F是状态相关的。因此,我需要在每次迭代步骤后使用新派生的状态更新它们。
可以使用ode23 / ode45实际完成吗?我需要走另一条道路吗?
提前致谢,任何见解都表示赞赏。
答案 0 :(得分:0)
您的问题非常符合ode45
的描述。例如,采用以下无意义的方程,并在数值上求解系统t = [0,1],x(0)=(1,1):
A = @(t,x) [ x(2), exp(-t) ; ...
exp(-2*t), x(1) ];
F = @(t,x) [ -0.1*x(2) ; ...
sin(2*pi*t) ];
[t_out, x_out] = ode45(@(t,x) A(t,x)*x + F(t,x), 0:0.01:1, [1;1]);
figure();
plot(t_out,x_out(:,1), '-b');
hold on;
plot(t_out,x_out(:,2), '-r');