2017-09-04 53 views
0

我正在爲2個變量求解下列方程。保存變量求解結果

Solve[{2*x1* y1 + 2*k*x3*y3 + (Sqrt[2 + q])*x1 == m1, 
    2*x1*y3 - 2*x3*y1 - (Sqrt[2 + q])*x3 == m2}, {x1, x3}] 

輸出OD的代碼是 {{X1 - >61分之18,X3 - > - (61分之15)}} 我怎樣才能保存在2個獨立的變量這些輸出。

+0

'{a,b} = { x1,x3} /。First @ Solve ...' – agentp

+0

請參閱這裏:https://mathematica.stackexchange.com/a/18706/12 – Szabolcs

回答

0

首先,您已經給出了其他變量的特定值的輸出,但您沒有向我們顯示。不過,你編碼的方式會帶來一些透明度的損失。你可能有這樣的事情更好的着手:

eqn01 = 2*x1*y1 + 2*k*x3*y3 + (Sqrt[2 + q])*x1 == m1; 
eqn02 = 2*x1*y3 - 2*x3*y1 - (Sqrt[2 + q])*x3 == m2; 
params = {y1 -> 1., y3 -> 3, m1 -> 1, m2 -> 2, q -> 1, k -> 1}; (* yr vals here *) 
solns = Solve[{eqn01, eqn02} /. params, {x1, x3}] 

其次,WL支持開箱多任務,所以如果你真的是因爲他們是你可以解開他們節省你的兩個解決方案。例如,

{soln11, soln12} = [email protected] 

一般來說,確實沒有必要這樣做。事實上,由於這些是單一解決方案的兩個部分,通常將它們分開是沒有意義的。但是,它可以讓你的手的實際值是有用的:

{x1, x3} /. [email protected] 

當然,你可以存儲在一個變量值的這份名單中,但很少需要。最後,如果你真的堅持僅僅爲了存儲這兩個單獨的值而引入變量 - 這幾乎總是會產生不必要的混亂 - 你可以再次解壓它們:

{val1, val3} = {x1, x3} /. [email protected] 
相關問題