Loading
2014. 8. 7. 10:03 - 성돌

[Mathematica] 미분방정식 풀기!



Mathematica로 미분방정식을 푸는 방법에 대해서 알아보자. 

미분방정식을 푸는 방법은 DSolve라는 기능을 이용한다. 사용법은 아래와 같다.


에서 초기조건은 입력해도 되고, 안해도 된다. 
단, 초기조건을 입력하지 않을 때에는 적분상수가 해(solution)에 등장한다.

초기조건을 사용하지 않는 경우의 예를 보자. 
예를 들어, y'(x)+y(x)=asin(x)라는 미분방정식을 푸는 경우, 아래와 같이하면 미분방정식이 풀린다.


에서 a Sin[x]사이에 공간이 있음은 곱셈을 의미한다.
(물론, *이나 팔레트를 이용해 곱셈기호를 사용할 수도 있다)

또한 방정식을 적을 때, '='가 아닌 '=='을 적음에 주목하자. 
이는 이 둘이 항상 같은 것이 아니라, 어쩌다 같은 경우에 대해서 방정식을 풀기에 그렇다.

해로는 아래와 같이 구해진다.
리스트의 형태로 해가 주어지기에 {{}}안에 해가 위치한 것을 볼 수 있다.


초기조건을 입력하지 않았기에, 적분상수인 C[1]가 해에 나타난 것을 볼 수 있다. 

이 해를 ySol이라는 변수에 저장하고 싶다면, 
위에서 보이듯이 해가 괄호안 첫번째에서 다시 한번 괄호안에 첫번째에서 두번째에 위치하기에
아래와 같이 [[1,1,2]]를 붙여주면 된다.




초기조건을 사용한 경우의 예를 보자. 


예를 들어, 위의 미분 방정식을 y(0)=0의 초기조건으로 푸는 경우 
아래와 같이 하면 미분방정식이 풀린다.


아래는 구해진 해를 보여준다.