(来自Matlab Answers的{Crossposted)我正在尝试简化这组代数方程。然后,我想让Matlab为我计算雅可比行列式。但这似乎不符合我的预期。
考虑这个简单的MWE:
% State Variables
syms x_0 x_1 x_2 x_3
% Input Variables
syms u_1 u_2 u_3
% Constants
syms k_1 V_liq dvs
% 3 Algebraic Equations
stateEquations = [...
x_1 == (x_0*(V_liq - u_1/dvs*1e3)*1e-3 + u_1)*1e3/V_liq*exp(-k_1),...
x_2 == (x_1*(V_liq - u_2/dvs*1e3)*1e-3 + u_2)*1e3/V_liq*exp(-k_1),...
x_3 == (x_2*(V_liq - u_3/dvs*1e3)*1e-3 + u_3)*1e3/V_liq*exp(-k_1)];
dstate_x3 = solve(stateEquations,x_3)
dstate_du = jacobian(dstate_x3,[u_1 u_2 u_3])
由于dstate_x3
为空,因此雅可比行列也为空。但是我只希望Matlab在等式中替换x_2
。 3位于其右侧,x_1
位于其右侧...
能否请您提示我如何使用Symbolic Math Toolbox实现这一目标? (手动生成它会非常耗时,尤其是使用x_i,i > 3
时)