如何使用不同的预定义三维矩阵的时间步在一个函数文件包含微分方程要由ode 45解决

1次查看(最近30天)
曼扎诺
曼扎诺 2013年9月1日
我想评估矩阵形式的微分方程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);
提前谢谢。

答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!