0

だから、事前定義された変数を方程式自体に入力する方法を考えています。

これがコードです。

function[A, B, C] = A_B_C_problem_generalized(lambda_1, lambda_2, mu_1, mu_2, gamma_1, gamma_2)

clear
clc
syms a1 a2 a4 b1 b2 b4 c1 c2 c4

[a1, a2, a4, b1, b2, b4, c1, c2, c4] = ...
solve('a1 + a4 = lambda_1 + lambda_2', ...
'a1*a4 - a2^2 = lambda_1 * lambda_2', ...
'b1 + b4 = mu_1 + mu_2', ...
'b1*b4 - b2^2 = mu_1 * mu_2', ...
'c1 + c4 = gamma_1 + gamma_2', ...
'c1*c4 - c2^2 = gamma_1 * gamma_2', ...
'c1 = a1 + b1', ...
'c2 = a2 + b2', ...
'c4 = a4 + b4');
...

どうすればこれを行うことができますか?ラムダ、ミュー、ガンマは、入力した数値であるはずです。

4

1 に答える 1

0

ああ、正しいアプローチは文字列を使用しないことでした。代わりに、それを根を見つける問題に変換します。方程式の片側にすべてを移動すると、ソルバーが独自に実行します...

syms a1 a2 a4 b1 b2 b4 c1 c2 c4

[a1, a2, a4, b1, b2, b4, c1, c2, c4] = ...
solve(a1 + a4 - (lambda_1 + lambda_2), ...
a1*a4 - a2^2 - (lambda_1*lambda_2), ...
b1 + b4 - (mu_1 + mu_2), ...
b1*b4 - b2^2 - (mu_1*mu_2), ...
c1 + c4 - (gamma_1 + gamma_2), ...
c1*c4 - c2^2 - (gamma_1*gamma_2), ...
c1 - a1 - b1, ...
c2 - a2 - b2, ...
c4 - a4 - b4)

行く方法です。

于 2012-11-01T19:10:18.373 に答える