C语言实现矩阵按列运算

问题遇到的现象和发生背景

请问如何用C语言实现四阶系统的欧拉法求解

用代码块功能插入代码,请勿粘贴截图

以下是matlab代码
for n=1:length(t)
Q_e(:,n)=Q_d(:,n)-Q(:,n);
dQ_e(:,n)=dQ_d(:,n)-dQ(:,n);
Int_e=Int_e+Q_e(:,n);
F(:,n)=inv(B)(AdQ(:,n)+ddQ_d(:,n)+kvdQ_e(:,n)+kpQ_e(:,n)+kIInt_e-W);
dQ(:,n+1)=dQ(:,n)+(-A
dQ(:,n)+BF(:,n)+W)h ; %q2=dq/dt
Q(:,n+1)=Q(:,n)+dQ(:,n)h ;
end
Qe是偏差,Qd是预期位姿,Q是实际位姿,dQe,dQd,dQ分别是三者的导数,它们都是4
n的矩阵,Int_e是4
1的积分器,F是需要控制的力,A,B是已知4
4矩阵,KV,KP,KI为常数

我的解答思路和尝试过的方法

matlab里面是通过列运算求解的F(:,n), dQ(:,n+1), Q(:,n+1).但是C语言使用矩阵库函数后好像矩阵只能整体运算,或者用二维数组好像也不行,数组的话是一个元素一个元素运算了,而我需要一列一列地进行运算。不知道各位有没有解决办法。在此万分感谢

这个能不能通俗描述和解释下,因为matlab不是每个人都懂的,用数学公式能懂的描述下

img


动力学方程为四阶的,偏差qe=预期位置qd-实际位置q。通过控制电磁力F的大小来保证偏差qe为0,A,B,C都是已知的4x4矩阵,F,q,qd,qe都是4xn的矩阵,kp,kv是已知系数,我想使用欧拉法由这一时刻q的导数和q的二阶导数求得下一时刻q的导数,由这一时刻的q和q的导数求得下一时刻的q。在上面matlab代码里有体现出来,但不知道怎么用C语言实现。预期位置qd是假设好了的,偏差qe是要让它最后保持为0的,实际位置q是要通过欧拉法计算输出的

matlab的算法转C有些困难,得从底层造轮子,可以找C语言/C++领域创作者咨询一下如何实现相关的矩阵列运算,缩小问题范围,提高准确性,回复率更高。