( Crossposted из ответов Matlab) Я пытаюсь упростить этот набор алгебраических c уравнений. Затем я хотел бы, чтобы Матлаб вычислил для меня якобиан. Но, похоже, это не работает так, как я ожидаю.
Рассмотрим этот простой 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
справа ...
Не могли бы вы подсказать, как этого добиться с помощью Symboli c Math Toolbox? (Получение его вручную будет очень трудоемким, особенно с x_i, i > 3
)