중립(Neutral) 유형의 초기값 DDE
이 예제는 ddensd
를 사용하여 시간 종속 지연을 갖는 초기값 DDE(지연 미분 방정식) 시스템을 푸는 방법을 보여줍니다. 이 예제는 원래 Jackiewicz의 문헌 [1]에 나와 있습니다.
방정식은 다음과 같습니다.
시간 지연이 에서 0이므로 이 방정식은 초기값 DDE입니다. 따라서 해를 계산하는 데 해 내역은 필요하지 않으며 다음과 같이 초기값만 필요합니다.
는 의 해입니다. 이 방정식을 충족하는 의 값은 와 입니다.
방정식의 시간 지연이 항에 있으므로 이 방정식을 중립 DDE라고 합니다.
MATLAB®에서 이 방정식을 풀려면 중립 방정식의 솔버인 지연 미분 방정식 솔버 ddensd
를 호출하기 전에 방정식과 지연을 코딩해야 합니다. 필요한 함수를 이 예제와 같이 파일 끝에 로컬 함수로 포함시킬 수도 있고, MATLAB 경로에 있는 디렉터리에 별도의 파일로 저장할 수도 있습니다.
지연 코딩하기
먼저 방정식의 지연을 정의하는 익명 함수를 작성합니다. 와 둘 다 형식의 지연을 가지므로 하나의 함수 정의만 필요합니다. 이 지연 함수는 나중에 솔버로 두 번 전달되는데 한 번은 에 대한 지연을 나타내고 한 번은 에 대한 지연을 나타냅니다.
delay = @(t,y) t/2;
방정식 코딩하기
이제 방정식을 코딩하는 함수를 만듭니다. 이 함수는 시그니처 yp = ddefun(t,y,ydel,ypdel)
을 사용해야 합니다. 여기서,
t
는 시간입니다(독립 변수).y
는 해입니다(종속 변수).ydel
은 y에 대한 지연을 포함합니다.ypdel
은 에 대한 지연을 포함합니다.
이 입력값은 자동으로 솔버에 의해 함수로 전달되지만 변수 이름에 따라 방정식 코딩 방식이 달라집니다. 이 경우:
ydel
ypdel
function yp = ddefun(t,y,ydel,ypdel) yp = 2*cos(2*t)*ydel^(2*cos(t)) + log(ypdel) - log(2*cos(t)) - sin(t); end
참고: 모든 함수는 예제 끝에 로컬 함수로 포함되어 있습니다.
방정식 풀기
마지막으로 적분 구간 와 초기값을 정의한 다음 ddensd
솔버를 사용하여 DDE를 풉니다. 초기값을 네 번째 입력 인수에 셀형 배열로 지정하여 솔버에 전달합니다.
tspan = [0 0.1]; y0 = 1; s1 = 2; sol1 = ddensd(@ddefun, delay, delay, {y0,s1}, tspan);
이번에는 초기 조건에 대한 의 또 다른 값을 사용하여 다시 방정식을 풉니다.
s2 = 0.4063757399599599; sol2 = ddensd(@ddefun, delay, delay, {y0,s2}, tspan);
해 플로팅하기
해 구조체 sol1
과 sol2
에는 솔버가 취하는 내부 시간 스텝과 그러한 각 시간에서의 해를 포함하는 x
필드와 y
필드가 있습니다. 그러나 deval
을 사용하여 특정 지점에서 해를 구할 수 있습니다.
두 해를 플로팅하여 결과를 비교합니다.
plot(sol1.x,sol1.y,sol2.x,sol2.y); legend('y''(0) = 2','y''(0) = .40637..','Location','NorthWest'); xlabel('Time t'); ylabel('Solution y'); title('Two Solutions of Jackiewicz''s Initial-Value NDDE');
로컬 함수(Local Function)
여기 나열된 함수는 DDE 솔버 ddensd
가 해를 계산하기 위해 호출하는 로컬 헬퍼 함수입니다. 또는 이러한 함수를 MATLAB 경로에 있는 디렉터리에 고유의 파일로 저장할 수도 있습니다.
function yp = ddefun(t,y,ydel,ypdel) yp = 2*cos(2*t)*ydel^(2*cos(t)) + log(ypdel) - log(2*cos(t)) - sin(t); end
참고 문헌
[1] Jackiewicz, Z. “One step Methods of any Order for Neutral Functional Differential Equations.” SIAM Journal on Numerical Analysis. Vol. 21, Number 3. 1984. pp. 486–511.
참고 항목
ddensd
| ddesd
| dde23
| deval