Я хотел бы решить систему уравнений символически для beta1
, beta2
и beta3
. Я определил переменные следующим образом и настроить систему уравнений:0-by-1 sym - Что мне нужно изменить, чтобы получить правильные символические результаты?
w1 = sym('w1', 'real');
w2 = sym('w2', 'real');
me1 = sym('me1', 'real');
me2 = sym('me2', 'real');
btm1 = sym('btm1', 'real');
btm2 = sym('btm2', 'real');
mom1 = sym('mom1', 'real');
mom2 = sym('mom2', 'real');
gamma = sym('gamma', 'real');
T = sym('T', 'real');
beta1 = sym('beta1', 'real');
beta2 = sym('beta2', 'real');
beta3 = sym('beta3', 'real');
Nt = sym('Nt', 'real');
r1 = sym('r1', 'real');
r2 = sym('r2', 'real');
syms e1 e2 e3 real
b = [1/T * (1 + (w1 + 1/Nt * beta1 * me1 + beta2 * btm1 + beta3 * mom1) *r1) ^(-gamma) * (1/Nt * me1 * r1) + 1/T * (1 + (w2 + 1/Nt * beta1 * me2 + beta2 * btm2 + beta3 * mom2) *r2) ^(-gamma) * (1/Nt * me2 * r2)
1/T * (1 + (w1 + 1/Nt * beta1 * me1 + beta2 * btm1 + beta3 * mom1) *r1) ^(-gamma) * (1/Nt * btm1 * r1) + 1/T * (1 + (w2 + 1/Nt * beta1 * me2 + beta2 * btm2 + beta3 * mom2) *r2) ^(-gamma) * (1/Nt * btm2 * r2)
1/T * (1 + (w1 + 1/Nt * beta1 * me1 + beta2 * btm1 + beta3 * mom1) *r1) ^(-gamma) * (1/Nt * mom1 * r1) + 1/T * (1 + (w2 + 1/Nt * beta1 * me2 + beta2 * btm2 + beta3 * mom2) *r2) ^(-gamma) * (1/Nt * mom2 * r2)];
Теперь я хочу, чтобы мой результат и всегда получаю Empty sym: 0-by-1
:
res = solve(b-[e1 e2 e3]', beta1, beta2, beta3, 'IgnoreAnalyticConstraints', true);
simplify(res.beta1)
ans =
Empty sym: 0-by-1
Я ожидал, что решить эту проблему с помощью 'IgnoreAnalyticConstraints'
, как предложено в this StackOverflow question. Может кто-нибудь мне помочь?
Я предполагаю, что нет решения, но без ввода невозможно сказать. – Daniel
Я не использовал Input здесь, так как я думал, что было бы легче разрешить символически в первую очередь. Не может ли Matlab просто решить первое уравнение для бета1, а затем подключиться ко второму, решить для бета2 и, наконец, построить все в бета-3? – imeisteri
Почему вы думаете, что эта система имеет аналитическое решение? Это почти не имеет особого значения, особенно когда вы берете несколько вещей произвольной силе 'gamma' (плохой выбор для имени переменной, так как ее имя обычно используется). – horchler