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 파일과 실행명령
실행 후 그려진 그래프