2012-11-01 31 views
0

所以我想知道如何向方程本身輸入預定義的變量。MATLAB求解器,調用公式中的預定義變量

這是代碼。

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'); 
... 

我怎麼能這樣做呢? lambda,mu和gamma應該是你輸入的數字。

回答

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) 

是要走的路。