Loading
2014. 8. 7. 08:45 - 성돌

[Mathematica] "방정식 또는 연립방정식 풀기!"와 "리스트를 다루는 방법"




Mathematica를 이용해 
방정식을 푸는 방법에 대해 알아보고, 

더불어 리스트를 다룸으로 얻어진 해를 원하는 변수에 저장하는 법을 알아보자.

이 때, 사용되는 기능은 Solve인데, 사용법은 아래와 같다.


위에서 푸는 방정식 또는 문자가 하나일 때는 {}괄호를 사용하지 않아도 된다.


예를 들어 ax²+bx+c=0라는 방정식을 풀고자 한다면, 
Mathematica로 아래와 같이 입력하고 실행시켜주면 된다 (Shift+Enter).


또는 Mathematica에서 윗 첨자를 
Ctrl+6을 이용하여...


Mathematica에서는 x가 녹색으로 보일텐데,

 x녹색으로 표시된 것은 Mathematica가 이를 풀어야 할 변수로 인지했다는 것이다.


여기서 주의해야 할 점은 방정식에 '='가 아닌 '=='가 사용되었다는 점이다.


이에 대해 조금 설명을 하자면, Mathematica에서 =가 사용되면

이 후에는 ax²+bx+c 0을 완전히 같은 것으로 인식하게 된다.  

이것은 우리가 원하는 것이 아니고, 

특정 x 대해서만 이 둘이 같다는 것을 표시하기 위해 =가 아닌 "=="를 사용하는 것이다.




아무튼 위의 방정식을 풀어주게 되면, 아래와 같이 리스트의 형태로 해가 구해지게 된다.

(리스트에 대한 설명은 다른 포스팅을 참고)



이 때, 첫 번째 해와 두 번째 해를 각각 x1 x2에 저장하고자 한다면, 아래와 같이 하면 된다.


위에서 [[1,1,2]]는 리스트에서의 위치를 의미한다.

리스트에서의 원소를 불러들일 때는, 항상 더블 괄호인 [[  ]] 를 사용한다는 것에 유의한다.

[[1,1,2]]의 위치는 
리스트에서의 1번째 괄호 {}안에
1번째 괄호 {}안에
2번 째 원소를 의미한다.

예를 들어, 
[[1,1,1]]와 [[1,2,1]]는 x일 것이다.


리스트에서 1번째와 2번째는 콤마(,)나 오른쪽 화살표 (
)로 구분되어 있다.




이번에는 연립방정식(system of equations)을 풀어보도록 하자. 


사실 연립방정식이라고 해서 특별할 것은 전혀 없고, {}괄호안에 방정식들을 넣으면 되는 것이다.


예를 들어, x²+y²=a² y=bx를 동시에 만족시키는 해의 조합을 찾는다고 하자.

(이것은 사실 원과 직선과의 교차점을 찾는 문제)

 

아래와 같이 명령어를 넣어주고 실행해주면,


실행하여주면, 해는 아래와 같이 찾아진다.

 

 

 이 변수들을 저장하고 싶으면, 앞서 리스트를 다룰 땐 한 방법대로 저장하면 된다.