본문 바로가기

MATLAB/ODE plot

ODE plot in Matlab

Matlab 에서 미분방정식의 그래프 그리기


Matlab에서 미분방정식의 표준형을 입력하면 그 해를 구해서 그래프로 표현해주는 ODE45 함수의 사용법을 알아보기로 한다


공중에서 자유낙하하는 물체의 속도를 구하는 문제를 예로 들어서 미분방정식을 모델링하고 Matlab에 입력하여 그 해가 그래프로 나타나도록 해보려고 한다


F = ma = mg  - Cv^2


m: 중량

g: 중력가속도(9.8 m/s/s)

C: 저항계수

v: 속도


중력가속도의 크기를 알고 있기 때문에 가속도가 포함된 미분방정식을 세우면 가속도의 원시함수인 속도함수를 구할 수 있다.

ma = mg - CV^2

위의 식 양변을 m 으로 나눈다

a = g - (CV^2)/m

a는 가속도이므로 속도의 미분이기 때문에 다음과 같이 표현할 수 있다 ( Matlab 의 미분방정식 표준형 )

dv/dt = g - (CV^2)/m


위의 식을 Matlab 의 freeFall.m 파일에 다음과 같이 작성하여 저장한다

function vf = freeFall(~,v)

g = 9.8;                    % 중력가속도

m = 10;                    % 중량

C = 0.4;                   % 저항계수

vf = g-(C*v^2)/m;     % 미분방정식 (dv/dt = (C*v^2)/m-g)


위와 같이 작성된 함수를 Matlab 의 명령창에서 실행하려면 다음과 같이 입력하고 엔터를 누른다

>> [t,v] = ode45(@freeFall,[0,30 ],0); % [0,30] 은 시간범위, 0은 속도의 초기값, [t, v] 는 실행 후 리턴되는 벡터(시간에 따른 속도)

plot(t,v);                       % 그래프 출력

xlabel('time(s)');            % x축 표시 라벨

ylabel('velocity(m/s)');    % y축 표시 라벨



Matlab 에서 작성된 freeFall.m 파일과 실행명령



실행 후 그려진 그래프