dde23
상수 지연(Constant Delay)의 지연 미분 방정식(DDE) 풀기
구문
sol = dde23(ddefun,lags,history,tspan)
sol = dde23(ddefun,lags,history,tspan,options)
인수
| 미분 방정식 의 우변을 구하는 함수 핸들입니다. 이 함수는 다음과 같은 형식이어야 합니다. dydt = ddefun(t,y,Z) 여기서 |
| 상수, 양의 지연 τ1, ..., τk의 벡터입니다. |
|
|
|
|
| 적분 인수입니다(선택 사항). |
설명
sol = dde23(ddefun,lags,history,tspan)
은 다음 DDE 시스템을
구간 [t0,tf]에서 적분합니다. 여기서 τ1, ..., τk는 상수, 양의 지연 및 t0,tf입니다. 입력 인수 ddefun
은 함수 핸들입니다.
함수를 파라미터화하기에는 필요한 경우 ddefun
함수에 추가 파라미터를 제공하는 방법이 설명되어 있습니다.
dde23
은 해를 구조체 sol
로 반환합니다. 보조 함수 deval
과 출력 인수 sol
을 사용하여 구간 tspan = [t0,tf]
의 특정 지점 tint
에서 해를 구합니다.
yint = deval(sol,tint)
dde23
이 반환한 구조체 sol
은 다음 필드를 가집니다.
|
|
|
|
|
|
| 솔버 이름 |
sol = dde23(ddefun,lags,history,tspan,options)
는 디폴트 적분 속성을, ddeset
에서 생성된 인수 options
값으로 대체한 뒤 위와 같이 문제를 풉니다. 자세한 내용은 ddeset
항목과 지연 미분 방정식 풀기 항목을 참조하십시오.
일반적으로 사용되는 옵션은 스칼라 상대 허용오차 'RelTol'
(기본적으로 1e-3
)과 절대 허용오차 'AbsTol'
로 구성된 벡터(기본적으로 모든 성분은 1e-6
임)입니다.
'Jumps'
옵션을 사용하여, 내역 또는 해에 불연속이 들어 있는 문제를 풉니다. t0
이전(즉, 내역)의 해에 있는 불연속 위치 또는 t0
이후의 알려진 t 값에서의 방정식 계수에 있는 불연속 위치가 포함된 벡터로 이 옵션을 설정합니다.
'Events'
옵션을 사용하여, 함수 가 0이 되는 곳을 찾기 위해 dde23
이 호출하는 함수를 지정합니다. 이 함수는 다음과 같은 형식이어야 합니다.
[value,isterminal,direction] = events(t,y,Z)
또한 각 이벤트를 테스트할 이벤트 함수를 포함해야 합니다. events
의 k
번째 이벤트 함수의 경우:
value(k)
는k
번째 이벤트 함수의 값입니다.이 이벤트 함수의 0에서 적분을 종료하려는 경우에는
isterminal(k) = 1
이고 그렇지 않은 경우에는0
입니다.dde23
으로 이 이벤트 함수의 모든 0을 계산하려는 경우에는direction(k) = 0
이고, 이벤트 함수가 증가하는 곳의 0만 계산하려는 경우에는+1
이고, 이벤트 함수가 감소하는 곳의 0만 계산하려는 경우에는-1
입니다.
'Events'
옵션을 지정한 상태에서 이벤트가 발견되면 출력 구조체 sol
은 다음 필드도 포함합니다.
| 모든 이벤트의 위치(즉, 이벤트 함수가 0이 되는 시간)를 요소로 갖는 행 벡터 |
| 행렬로, 이 행렬의 열은 |
| 벡터로, |
예제
이 예제에서는 지연값(lags)이 1과 0.2인 구간 [0, 5]에서 DDE를 풉니다. 함수 ddex1de
는 지연 미분 방정식을 계산하고 ddex1hist
는 t <= 0
에 대한 내역을 계산합니다.
참고
파일 ddex1.m
에는 이 예제에 대한 전체 코드가 포함되어 있습니다. 명령줄에 edit ddex1
을 입력하면 편집기에서 코드를 볼 수 있습니다. 명령줄에 ddex1
을 입력하면 이 파일을 실행할 수 있습니다.
sol = dde23(@ddex1de,[1, 0.2],@ddex1hist,[0, 5]);
아래 코드는 구간 [0,5]
사이의 균일한 간격의 점 100개에서의 해를 구하고 그 결과를 플로팅합니다.
tint = linspace(0,5); yint = deval(sol,tint); plot(tint,yint);
ddex1
은 로컬 함수를 사용하여 이 문제를 코딩할 수 있는 방법을 보여줍니다. 다른 예제는 ddex2
항목을 참조하십시오.
알고리즘
dde23
은 명시적 룽게-쿠타(Explicit Runge-Kutta) (2,3) 쌍과 ode23
의 보간법을 사용하여 불연속 자취를 추적하고 적분합니다. 또한 지연값(lags)보다 긴 스텝의 반복을 사용합니다.
참고 문헌
[1] Shampine, L.F. and S. Thompson, “Solving DDEs in MATLAB,” Applied Numerical Mathematics, Vol. 37, 2001, pp. 441-458.
[2] Kierzenka, J., L.F. Shampine, and S. Thompson, “Solving Delay Differential Equations with dde23”
버전 내역
R2006a 이전에 개발됨