在matlab中找到矩阵的雅可比行列式

时间:2017-04-17 01:19:42

标签: matlab matrix

我在matlab中有以下脚本,目标是计算$f_1,f_2,f_3,f_4$的jacobian,它应该给我一个4乘4矩阵,但我得到一个7乘4 $矩阵。我不确定这个代码应该有什么问题。

syms m M L J p_x p_theta theta X g K_m K_g r V_in R_m;
h= (m+M)*(m*L^2/4+J) - (m*L/2 * cos(theta))^2;
f_1 = [1/h * [ (m*L^2/4+J)*p_x + m*L/2 cos(theta)* p_theta]];
f_2 = [1/h * [ (m*L/2 * cos(theta))*p_x + (m+M)*p_theta]];
F = K_m *K_g/r *[ (V_in -K_m*K_g * f_1/r)/R_m];
f_3 = F;
f_4 = m*L/2 *sin (theta)*(f_1*f_2+g);
J_1=jacobian([f_1,f_2,f_3,f_4],[X;theta;p_x;p_theta]);
subs(J_1,[X,theta,p_x,p_theta],[0,0,0,0])

1 个答案:

答案 0 :(得分:2)

我唯一能看到的是你在定义f_1时错过了一个操作员。你的意思是1x2阵列吗?如果没有,我建议如下(我在*L/2之间插入cos(theta)):

f_1 = [1/h * [ (m*L^2/4+J)*p_x + m*L/2 * cos(theta)* p_theta]];

根据需要,这将为最终答案提供4x4矩阵。