ddesd
일반 지연의 지연 미분 방정식(DDE) 풀기
구문
sol = ddesd(ddefun,delays,history,tspan)
sol = ddesd(ddefun,delays,history,tspan,options)
인수
| 미분 방정식 y′(t) = f(t,y(t),y(d(1),...,y(d(k)))의 우변을 구하는 함수 핸들입니다. 이 함수는 다음과 같은 형식이어야 합니다. dydt = ddefun(t,y,Z) 여기서 |
| 지연 d(j)로 구성된 열 벡터를 반환하는 함수 핸들입니다. 지연은 t와 y(t)에 따라 다를 수 있습니다. 모든 지연 함수의 형식이 d(j) = t – τj인 경우에는 인수 |
|
|
|
|
| 적분 인수입니다(선택 사항). |
설명
sol = ddesd(ddefun,delays,history,tspan)
은 다음 DDE 시스템을
구간 [t0,tf]에서 적분합니다. 여기서 지연 d(j)는 t와 y(t)에 따라 다를 수 있고 t0 < tf입니다. 입력 인수 ddefun
과 delays
는 함수 핸들입니다. 자세한 내용은 함수 핸들 생성하기 항목을 참조하십시오.
함수를 파라미터화하기에는 필요한 경우 함수 ddefun
, delays
및 history
에 추가 파라미터를 제공하는 방법이 설명되어 있습니다.
ddesd
는 해를 구조체 sol
로 반환합니다. 보조 함수 deval
과 출력 인수 sol
을 사용하여 구간 tspan = [t0,tf]
의 특정 지점 tint
에서 해를 구합니다.
yint = deval(sol,tint)
ddesd
가 반환한 구조체 sol
은 다음 필드를 가집니다.
|
|
|
|
|
|
| 솔버 이름 |
sol = ddesd(ddefun,delays,history,tspan,options)
는 디폴트 적분 속성을, ddeset
에서 생성된 인수 options
값으로 대체한 뒤 위와 같이 문제를 풉니다. 자세한 내용은 ddeset
항목과 지연 미분 방정식 풀기 항목을 참조하십시오.
일반적으로 사용되는 옵션은 스칼라 상대 허용오차 'RelTol'
(기본적으로 1e-3
)과 절대 허용오차 'AbsTol'
로 구성된 벡터(기본적으로 모든 성분은 1e-6
임)입니다.
'Events'
옵션을 사용하여, 함수 g(t,y(t),y(d(1)),...,y(d(k)))가 0이 되는 곳을 찾기 위해 ddesd
가 호출하는 함수를 지정합니다. 이 함수는 다음과 같은 형식이어야 합니다.
[value,isterminal,direction] = events(t,y,Z)
또한 각 이벤트를 테스트할 이벤트 함수를 포함해야 합니다. events
의 k
번째 이벤트 함수의 경우:
value(k)
는k
번째 이벤트 함수의 값입니다.이 이벤트 함수의 0에서 적분을 종료하려는 경우에는
isterminal(k) = 1
이고 그렇지 않은 경우에는0
입니다.ddesd
로 이 이벤트 함수의 모든 0을 계산하려는 경우에는direction(k) = 0
이고, 이벤트 함수가 증가하는 곳의 0만 계산하려는 경우에는+1
이고, 이벤트 함수가 감소하는 곳의 0만 계산하려는 경우에는-1
입니다.
'Events'
옵션을 지정한 상태에서 이벤트가 발견되면 출력 구조체 sol
은 다음 필드도 포함합니다.
| 모든 이벤트의 위치(즉, 이벤트 함수가 0이 되는 시간)를 요소로 갖는 행 벡터 |
| 행렬로, 이 행렬의 열은 |
| 벡터로, |
예제
다음 방정식은
sol = ddesd(@ddex1de,@ddex1delays,@ddex1hist,[0,5]);
함수 ddex1delays
가 지정한 지연과 ddex1de
로 계산한 미분 방정식을 사용하여 구간 [0,5]
에서 DDE를 풉니다. 함수 ddex1hist
가 t ≤ 0에 대한 내역을 구합니다. [0,5]
사이에서 간격이 균일한 점 100개에서의 해를 구합니다.
tint = linspace(0,5); yint = deval(sol,tint);
다음을 사용하여 플로팅합니다.
plot(tint,yint);
이 문제는 상수 지연과 관련 있습니다. delay
함수의 형식은 다음과 같습니다.
function d = ddex1delays(t,y) %DDEX1DELAYS Delays for using with DDEX1DE. d = [ t - 1 t - 0.2];
또한 상수 지연에 대응하는 구문을 사용하여 문제를 풀 수 있습니다.
delays = [1, 0.2]; sol = ddesd(@ddex1de,delays,@ddex1hist,[0, 5]);
또는 dde23
을 사용하여 문제를 풀 수 있습니다.
sol = dde23(@ddex1de,delays,@ddex1hist,[0, 5]);
지연 미분 방정식 풀이에 대한 다른 예제에 대해서는 ddex2
및 ddex3
항목을 참조하십시오.
참고 문헌
[1] Shampine, L.F., “Solving ODEs and DDEs with Residual Control,” Applied Numerical Mathematics, Vol. 52, 2005, pp. 113-127.