경제, 금융, 공학

동두천양주교육지원청 영재교육원 최우수 수료, 한국디지털미디어고등학교 해킹방어과 졸업, 연세대학교 공과대학 재학중, 2022 교육부 장학생.

Study Steady

Yonsei Univ/Matlab

Matlab 7 - 미분방정식 풀이 ode 함수

uniblack 2022. 12. 28. 01:11

ode45 함수의 형식에 맞춰서 입력하면 미분방정식 해를 구해 그래프를 그릴 수 있다.

@ydot 은 함수 핸들러 파일이다.(input이 t와 y이고 output 이 dy/dt를 나타내는 벡터여야 함)

tspan 은 독립변수 t의 범위를 포함하고 있다.

y0은 y의 초기값을 의미한다.

미분방정식이 1차라면(1계도함수) y0은 스칼라 값이다.

(더 higher 하다면, y0은 벡터값이다.)

function hdot = height(t,h)

hdot = -(0.0344*sqrt(h))/(10*h-h^2);

end

[t,h] = ode45(@height, [0,2465], 9);
plot(t,h)

%%ode45 함수는 matlab의 미분방정식을 풀어주는 solver이다.
%%To solve the equation dy/dt = f(t,y)

xdot 행렬을 만든 뒤,

[t, x] = ode45(@example_1, [0, 6], [3, 9]);

문제에서 t의 범위와 x(함숫값)의 처음 위치를 알려준다.

여기서는 이계도함수이므로 y0이 벡터값이다. ( [3,9] 임 )

이렇게 plot 을 그리면

plot(t,x(:,1),t,x(:,2))

[ 현재 x 벡터에는 xdot1과 xdot2 가 같이 있을 것이다. 따라서 모든행 1열(xdot1 값) x(:,1) 만 출력해주면 아래 그래프와 같이 표현된다. ]