Main Content

ODE 옵션 요약

ODE를 풀 때에는 파라미터를 미세 조정하거나, 허용오차를 조정하거나, 추가 정보를 솔버에 전달해야 할 경우가 많습니다. 여기에서는 옵션을 지정하는 방법과, 각 옵션이 어떤 미분 방정식 솔버와 호환되는지 보여줍니다.

옵션 구문

odeset 함수를 사용하여 솔버에 네 번째 입력 인수로 전달할 options 구조체를 생성합니다. 예를 들어, 상대 허용오차와 절대 허용오차를 조정하려면 다음을 입력하십시오.

opts = odeset('RelTol',1e-2,'AbsTol',1e-5);
[t,y] = ode45(@odefun,tspan,y0,opts);

명령 odeset을 입력값 없이 사용할 경우 MATLAB®은 각 옵션에 대해 가능한 값의 목록을 표시합니다(디폴트 값은 중괄호 {}로 표시됨).

odeget 함수는 기존 구조체의 옵션 값을 쿼리합니다. 이를 사용하여 조건을 기준으로 옵션 값을 동적으로 변경할 수 있습니다. 예를 들어, 다음 코드는 Stats'on'으로 설정되어 있는지 여부를 알아내고 필요한 경우 값을 변경합니다.

if isempty(odeget(opts,'Stats'))
  odeset(opts,'Stats','on')
end

옵션과 각 솔버의 호환성

odeset의 옵션 중에는 어떤 솔버와도 호환되는 일반적인 옵션이 있는 반면, 특정 솔버에만 사용할 수 있는 옵션도 있습니다. 다음 표에는 여러 솔버에 대한 각 옵션의 호환성이 정리되어 있습니다.

옵션 그룹옵션ode45ode23ode78ode89ode113ode15sode23sode23tode23tbode15i
오차 제어RelTol

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

AbsTol

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

NormControl

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

솔버 출력값NonNegative

Supported

Supported

Supported

Supported

Supported

Supported

Unsupported

Supported

Supported

Unsupported

OutputFcn

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

OutputSel

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Refine

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Stats

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

스텝 크기InitialStep

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

MaxStep

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

이벤트 위치Events

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

야코비 행렬(Jacobian Matrix)Jacobian

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Supported

Supported

Supported

Supported

JPattern

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Supported

Supported

Supported

Supported

Vectorized

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Supported

Supported

Supported

Supported

질량 행렬과 DAEMass

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Supported

Unsupported

MStateDependence

Supported

Supported

Supported

Supported

Supported

Supported

Unsupported

Supported

Supported

Unsupported

MvPattern

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Supported

Supported

Unsupported

MassSingular

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Supported

Unsupported

Unsupported

InitialSlope

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Supported

Unsupported

Unsupported

ode15sode15i에 대한 알고리즘 옵션MaxOrder

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Unsupported

Unsupported

Supported

BDF

Unsupported

Unsupported

Unsupported

Unsupported

Unsupported

Supported

Unsupported

Unsupported

Unsupported

Unsupported

* 질량 행렬이 없는 문제의 경우에만 NonNegative 파라미터를 ode15s, ode23t, ode23tb와 함께 사용하십시오.

** ode15i에 대한 이벤트 함수는 yp에 대한 세 번째 입력 인수를 받아야 합니다.

사용 예제

MATLAB에는 다양한 옵션의 사용 방법을 보여주는 여러 예제 파일이 포함되어 있습니다. 예를 들어, edit ballode를 입력하면 'Events'를 사용하여 이벤트 함수를 지정하는 예제를 볼 수 있고, edit batonode를 입력하면 'Mass'를 사용하여 질량 행렬을 지정하는 예제를 볼 수 있습니다. 예제 파일에 대한 전체적인 개요와 각 예제 파일에서 어떤 옵션을 사용하는지 보려면 ODE 예제와 파일에 대한 요약 항목을 참조하십시오.

참고 항목

|

관련 항목