상세 컨텐츠

본문 제목

미분방정식1 - ode45

장.Matlab/Differential Equation solver

by 수내동떡볶이주먹 2021. 2. 19. 14:12

본문

매트랩을 이용하면 다양한 미분방적식의 해를 구할 수 있다.

손으로 풀기 힘든 방정식의 해를 구할 수도 있지만 대부분 해를 plot 하는 방법으로 많이 사용된다

 

매트랩에는 미분방적식을 풀기위한 많은 내장함수가 있지만 ode45만 사용해도 학부 수준에서는 충분하다고 생각된다.

미분방정식은 matrix 형태로 코드가 작성되기 때문에 처음에는 많이 헷갈리고 어려울 수 있다.

그러나 한번 이해하고 적응이되면 당연하게 받아들일 수 있으므로 같이 문제를 풀고 익힌다면 많은 도움이 될것이라고 생각한다.

 

 

해가 존재하는 미분 방정식의 해를 식으로 구하고 싶다면 fsolve기능을 이용해야 한다. 그러나 많은 경우에 미분 방정식은 해를 식으로 구하기 힘든 경우가 많기에 그래프로 나타내는 경우가 대부분이다. 

 

ode45는 미분 방정식의 해를 그래프로서 plot 해준다.

 

기억을 더듬어보면 미분 방정식을 푸는데 필요한 조건이 있다. 

 

1. 식

2. 해를 구할 범위

3. 초기값

 

위의 3가지를 먼저 정의를 해 주어야한다. 

 

ode45(@미분방정식, 범위 , 초기값) 의 형식으로 입력하도록 한다.

 

 

 

1. 식 : d(y(t))/dt = -y(t) -5exp(-t)sin(5t) , y(0) = 1

 

1

위에서 풀이한 기본적인 미분 방정식의 형태를 꼭 기억하도록하자.

뒤에 나오는 모든 미분방정식의 풀이가 위와 같은 꼴을 지닌다.

1차 미분 방정식이기 때문에 y' = ~~~~ 의 형태로 식을 정리 할 수 있다.

y'=~꼴로 정리한 식을 myode라는 부함수로 만들어주고 

main함수에서 호출하여 사용하는 방식으로 진행한다. 

 

 

 

위에서 푼 방정식의 벡터필드를 그려보자.

quiver를 이용하면 벡터필드를 그릴 수 있다

벡터필드는 기울기의 강도나 변화의 정도를 파악할 때 많이 사용하므로 익혀두는 것이 좋다.

 

향후 유체역학이나 열역학을 공부할 때 자주 사용할 가능성이 높다.

quiver(x mesh, y mesh, x gradient, y gradient).

 

 

간단한 미분방정식의 소개를 하였다.

다음부터는 조금 더 어려운 상미분방정식을 풀어보도록 하자.

 

관련글 더보기

댓글 영역