Mathematica로 미분방정식을 푸는 방법에 대해서 알아보자.
미분방정식을 푸는 방법은 DSolve라는 기능을 이용한다. 사용법은 아래와 같다.
1 | DSolve [{미분방정식, 초기조건}, 풀고자 하는 함수, 풀고자 하는 함수의 변수] |
위에서 초기조건은 입력해도 되고, 안해도 된다.
단, 초기조건을 입력하지 않을 때에는 적분상수가 해(solution)에 등장한다.
초기조건을 사용하지 않는 경우의 예를 보자.
예를 들어, y'(x)+y(x)=asin(x)라는 미분방정식을 푸는 경우, 아래와 같이하면 미분방정식이 풀린다.
1 | DSolve [y'[x] + y[x] == a Sin [x], y[x], x] |
위에서 a와 Sin[x]사이에 공간이 있음은 곱셈을 의미한다.
(물론, *이나 팔레트를 이용해 곱셈기호를 사용할 수도 있다)
또한 방정식을 적을 때, '='가 아닌 '=='을 적음에 주목하자.
이는 이 둘이 항상 같은 것이 아니라, 어쩌다 같은 경우에 대해서 방정식을 풀기에 그렇다.
해로는 아래와 같이 구해진다.
리스트의 형태로 해가 주어지기에 {{}}안에 해가 위치한 것을 볼 수 있다.
초기조건을 입력하지 않았기에, 적분상수인 C[1]가 해에 나타난 것을 볼 수 있다.
이 해를 ySol이라는 변수에 저장하고 싶다면,
위에서 보이듯이 해가 괄호안 첫번째에서 다시 한번 괄호안에 첫번째에서 두번째에 위치하기에
아래와 같이 [[1,1,2]]를 붙여주면 된다.
위에서 보이듯이 해가 괄호안 첫번째에서 다시 한번 괄호안에 첫번째에서 두번째에 위치하기에
아래와 같이 [[1,1,2]]를 붙여주면 된다.
1 | ySol = DSolve [y'[x] + y[x] == a Sin [x], y[x], x][[1, 1, 2]] |
초기조건을 사용한 경우의 예를 보자.
예를 들어, 위의 미분 방정식을 y(0)=0의 초기조건으로 푸는 경우
아래와 같이 하면 미분방정식이 풀린다.
1 | DSolve [{y'[x] + y[x] == a Sin [x], y[0] == 0}, y[x], x] |
아래는 구해진 해를 보여준다.
'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 |