我想评估矩阵形式的微分方程dvdt = -(A - B*(R^-1)*B'*S)'*v - Q*rd使用ode45,其中A,B,Q和R是时变矩阵,rd是一个常数行向量,v是要积分的变量。这个等式在函数文件中定义。另一方面,3D矩阵
S = S (:: 250)
是独立于调用文件中的时间获得的。问题是,在我的方程函数中,我需要使用每个矩阵S在ode45中的每一个时间步长(例如。
(:: 1)
对于第一步,
(:: 2)
对于第二步,
(:: 3)
for time step 3, etc)我想知道如何执行这个过程。函数文件为:
函数dvdt = myfun (t v S)
= (t);B = B (t);R = R (t);Q = Q (t);
= -(A - B*inv(R)*B'*S)'*v - Q*rd;
结束
调用文件很简单:
S = S (:: 250);
[t,v] = ode45(@(f,v) myfun(t,v,S),f,v0);
提前谢谢。