ode45
비경직성(Nonstiff) 미분방정식 풀기 — 중간 차수 방법
구문
설명
[
입니다. 여기서 t
,y
] = ode45(odefun
,tspan
,y0
)tspan = [t0 tf]
는 t0
에서 tf
까지의 구간에서 초기 조건 y0
을 사용하여 연립미분방정식 를 적분합니다. 해 배열 y
의 각 행은 열 벡터 t
에 반환된 값에 대응합니다.
모든 MATLAB® ODE 솔버는 형식의 연립방정식이나 질량 행렬이 있는 문제 를 풀 수 있습니다. 솔버는 모두 유사한 구문을 사용합니다. ode23s
솔버는 상수 질량 행렬을 갖는 문제만 풀 수 있습니다. ode15s
와 ode23t
는 특이 질량 행렬을 포함하는 문제(즉, 미분대수방정식(DAE))를 풀 수 있습니다. odeset
의 Mass
옵션을 사용하여 질량 행렬을 지정합니다.
ode45
는 다용도 ODE 솔버이며 대부분의 문제에서 최우선적으로 시도해 봐야 할 솔버입니다. 하지만, 문제가 경직성 문제이거나 높은 정확성을 요하는 경우 다른 ODE 솔버가 더 적합할 수 있습니다. 자세한 내용은 ODE 솔버 선택하기 항목을 참조하십시오.
[
는 이벤트 함수라고 하는 (t,y)의 함수가 0인 위치를 추가로 찾습니다. 출력값에서 t
,y
,te
,ye
,ie
] = ode45(odefun
,tspan
,y0
,options
)te
는 이벤트 발생 시간이고, ye
는 이벤트 발생 시 계산된 해이며, ie
는 트리거된 이벤트의 인덱스입니다.
각 이벤트 함수에 대해, 0에서 적분을 종료할지 여부와 영점교차의 방향을 고려할지 여부를 지정합니다. 이를 수행하려면 'Events'
속성을 함수(예: myEventFcn
또는 @myEventFcn
)로 설정하고 대응 함수 [value
,isterminal
,direction
] = myEventFcn
(t
,y
)를 생성합니다. 자세한 내용은 ODE 이벤트 위치 항목을 참조하십시오.
예제
입력 인수
출력 인수
알고리즘
ode45
는 명시적 룽게-쿠타(Explicit Runge-Kutta) (4,5) 공식인 도르만드-프린스(Dormand-Prince) 쌍을 기반으로 합니다. 이는 단일 스텝(Single-step) 솔버입니다. 즉, y(tn)
을 계산할 경우 이 솔버는 바로 이전 시간 점 y(tn-1)
에서의 해만 필요로 합니다[1], [2].
참고 문헌
[1] Dormand, J. R. and P. J. Prince, “A family of embedded Runge-Kutta formulae,” J. Comp. Appl. Math., Vol. 6, 1980, pp. 19–26.
[2] Shampine, L. F. and M. W. Reichelt, “The MATLAB ODE Suite,” SIAM Journal on Scientific Computing, Vol. 18, 1997, pp. 1–22.
확장 기능
버전 내역
R2006a 이전에 개발됨