Mathematica로 미분방정식을 푸는 방법에 대해서 알아보자.
미분방정식을 푸는 방법은 DSolve라는 기능을 이용한다. 사용법은 아래와 같다.
위에서 초기조건은 입력해도 되고, 안해도 된다.
단, 초기조건을 입력하지 않을 때에는 적분상수가 해(solution)에 등장한다.
초기조건을 사용하지 않는 경우의 예를 보자.
예를 들어, y'(x)+y(x)=asin(x)라는 미분방정식을 푸는 경우, 아래와 같이하면 미분방정식이 풀린다.
위에서 a와 Sin[x]사이에 공간이 있음은 곱셈을 의미한다.
(물론, *이나 팔레트를 이용해 곱셈기호를 사용할 수도 있다)
또한 방정식을 적을 때, '='가 아닌 '=='을 적음에 주목하자.
이는 이 둘이 항상 같은 것이 아니라, 어쩌다 같은 경우에 대해서 방정식을 풀기에 그렇다.
해로는 아래와 같이 구해진다.
리스트의 형태로 해가 주어지기에 {{}}안에 해가 위치한 것을 볼 수 있다.
초기조건을 입력하지 않았기에, 적분상수인 C[1]가 해에 나타난 것을 볼 수 있다.
이 해를 ySol이라는 변수에 저장하고 싶다면,
위에서 보이듯이 해가 괄호안 첫번째에서 다시 한번 괄호안에 첫번째에서 두번째에 위치하기에
아래와 같이 [[1,1,2]]를 붙여주면 된다.
위에서 보이듯이 해가 괄호안 첫번째에서 다시 한번 괄호안에 첫번째에서 두번째에 위치하기에
아래와 같이 [[1,1,2]]를 붙여주면 된다.
초기조건을 사용한 경우의 예를 보자.
예를 들어, 위의 미분 방정식을 y(0)=0의 초기조건으로 푸는 경우
아래와 같이 하면 미분방정식이 풀린다.
아래는 구해진 해를 보여준다.
'Software > Mathematica' 카테고리의 다른 글
[Mathematica] 많은 실험데이터를 분석하는 코드 (0) | 2014.08.10 |
---|---|
[Mathematica] 리스트, 행렬, 벡터 만들기- (0) | 2014.08.09 |
[Mathematica] "방정식 또는 연립방정식 풀기!"와 "리스트를 다루는 방법" (7) | 2014.08.07 |
[Mathematica] 다른 Mathematica파일을 불러들여 실행시키기- (0) | 2014.08.05 |
[Mathematica] for문 역할을 하는 Do명령어! (0) | 2014.08.03 |