2017-09-04 18 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}] 

인 {-> 61분의 18, X3 - {X1> - (61분의 15)}} I는 2 개 개의 별도의 변수 이러한 출력을 저장할 수있는 방법 .

+0

을'{A, B} = { x1, x3} /. 처음 @ 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]