ddeset
지연 미분 방정식(DDE) options 구조체 생성 또는 변경
구문
options = ddeset('name1',value1,'name2',value2,...)
options = ddeset(oldopts,'name1',value1,...)
options = ddeset(oldopts,newopts)
ddeset
설명
options = ddeset('name1',value1,'name2',value2,...)
는 명명된 속성이 지정된 값을 가지는 적분기 options 구조체인 options
를 만듭니다. 지정되지 않은 속성은 디폴트 값을 가집니다. 속성을 고유하게 식별할 수 있는 선행 문자만 입력해도 됩니다. ddeset
은 속성 이름의 대/소문자를 무시합니다.
options = ddeset(oldopts,'name1',value1,...)
은 기존 options 구조체 oldopts
를 변경합니다. 이 경우 이름/값 쌍으로 지정된 oldopts
의 값이 모두 덮어쓰이고, 수정된 구조체가 출력 인수로 반환됩니다.
options = ddeset(oldopts,newopts)
는 기존 options 구조체 oldopts
를 새 options 구조체 newopts
와 결합합니다. newopts
에 설정된 모든 값은 oldopts
의 대응값을 덮어씁니다.
입력 인수가 없는 ddeset
은 모든 속성 이름과 해당 속성의 가능한 값을 표시하며 디폴트 값은 중괄호 {}
로 나타냅니다.
함수 ddeget
을 사용하여 options
구조체에서 특정 속성의 값을 쿼리할 수 있습니다.
DDE 속성
다음 섹션에서는 ddeset
를 사용하여 설정할 수 있는 속성에 대해 설명합니다. 다음은 속성의 몇몇 범주입니다.
오차 제어 속성
각 스텝에서 DDE 솔버는 오차 e
를 추정합니다. dde23
함수는 국소 절단 오차(Local Truncation Error)를 추정하며, 다른 솔버는 잔차(Residual)를 추정합니다. 어느 경우든 이 오차는 지정된 상대 허용오차 RelTol
및 지정된 절대 허용오차 AbsTol
의 함수인 허용오차보다 작거나 같아야 합니다.
|e(i)|*max(RelTol*abs(y(i)),AbsTol(i))
루틴 문제의 경우 솔버는 요청된 정확성과 대략 같은 정도의 정확성을 제공합니다. '긴' 구간을 적분하는 문제 및 적당히 불안정한 문제에 대해서는 정확성이 떨어집니다. 어려운 문제는 디폴트 값보다 더 엄밀한 허용오차를 요구할 수 있습니다. 상대 정확도를 위해서는 RelTol
을 조정해야 합니다. 절대 허용오차의 경우 해 성분의 스케일링이 중요합니다. |y|
가 AbsTol
보다 다소 작은 경우 솔버는 y
의 정확한 자릿수를 가져와야 하는 제약 조건을 적용받지 않습니다. 해 성분의 스케일을 확인하려면 문제를 두 번 이상 풀어야 할 수 있습니다.
일반적으로 이는 임계값 AbsTol(i)
보다 작은 성분을 제외한 모든 해 성분에서 정확한 RelTol
자릿수가 필요한 경우일 수 있습니다. y(i)
의 작은 성분에 관심이 없는 경우에도 더 관심이 있는 성분을 정확히 계산할 수 있도록 y(i)
에서 정확한 자릿수를 가져올 만큼 충분히 작은 AbsTol(i)
을 지정해야 할 수 있습니다.
다음 표에서는 오차 제어 속성을 설명합니다.
DDE 오차 제어 속성
속성 | 값 | 설명 |
---|---|---|
| 양의 스칼라 { | 해 벡터 각 적분 스텝에서 추정 오차는 | |
| 양의 스칼라 또는 벡터 { | 해 벡터의 개별 성분에 적용되는 절대 허용오차입니다.
|
|
| 해의 노름에 상대적인 오차를 제어합니다. 이 속성을 |
솔버 출력 속성
솔버 출력 속성을 사용하여 솔버가 생성하는 출력값을 제어할 수 있습니다.
DDE 솔버 출력 속성
속성 | 값 | 설명 |
---|---|---|
| 함수 핸들 { | 이 출력 함수는 모든 성공적인 적분 스텝 후에 솔버가 호출할 수 있는 함수입니다. 출력 함수를 지정하려면 options = ddeset('OutputFcn',... @myfun) 이는 ' 이 출력 함수는 다음과 같은 형식이어야 합니다. status = myfun(t,y,flag) 함수를 파라미터화하기에는 필요한 경우 솔버는 지정된 출력 함수를 다음 플래그와 함께 호출합니다. 참고로, 호출 구문은 플래그에 따라 다릅니다. 함수는 적절히 응답해야 합니다.
이와 같은 범용 출력 함수를 사용하거나, 편집하여 자신만의 출력 함수를 만들 수 있습니다. 자세한 내용을 보려면 명령줄에
|
| 인덱스 벡터 | 인덱스의 벡터로, 솔버가 출력 함수에 전달하는 해 벡터의 성분을 지정합니다. 예를 들어, options = ddeset... ('OutputFcn',@odeplot,... 'OutputSel',[1 3]); 기본적으로 솔버는 해의 모든 성분을 출력 함수에 전달합니다. |
|
| 솔버의 계산 통계량 표시 여부를 지정합니다. 기본적으로
|
스텝 크기 속성
스텝 크기 속성을 통해 솔버가 시도하는 첫 번째 스텝의 크기를 지정할 수 있습니다. 이는 문제의 스케일을 더 잘 인식하는 데 잠재적으로 도움이 됩니다. 또한 각 후속 시간 스텝 크기의 경계를 지정할 수 있습니다.
다음 표에서는 스텝 크기 속성을 설명합니다.
DDE 스텝 크기 속성
속성 | 값 | 설명 |
---|---|---|
| 양의 스칼라 | 제안된 초기 스텝 크기입니다. |
| 양의 스칼라 | 솔버 스텝 크기의 상한입니다. 미분 방정식에 주기 계수 또는 해가 있는 경우
|
이벤트 위치 속성
일부 DDE 문제에서 특정 이벤트의 횟수는 중요합니다. 문제를 푸는 과정에서 솔버가 전환점의 위치를 사용자 정의 함수의 0부터 및/또는 0까지 지정하여 해당 이벤트를 발견할 수 있습니다.
다음 표에서는 Events
속성을 설명합니다.
DDE 이벤트 속성
속성 | 값 | 설명 |
---|---|---|
| 함수 핸들 | 이벤트 함수를 하나 이상 포함하는 함수 핸들입니다. [value,isterminal,direction] = events(t,y,YDEL)
[value,isterminal,direction] = events(t,y,YDEL,YPDEL) 출력 인수
상미분 방정식 문제를 푸는 데 이벤트 함수를 사용하는 예제를 보려면 ODE 이벤트 위치 항목을 참조하십시오. |
불연속 속성
솔버 함수는 내역 또는 방정식 계수에 불연속이 있는 문제를 풀 수 있습니다. 다음 속성을 사용하여 해당 솔버에 서로 다른 초기값 및 (dde23
의 경우) 알려진 불연속의 위치를 제공할 수 있습니다. 자세한 내용은 DDE에서의 불연속 항목을 참조하십시오.
다음 표에서는 불연속 속성을 설명합니다.
DDE 불연속 속성
속성 | 값 | 설명 |
---|---|---|
| 벡터 | 불연속의 위치입니다. 내역 또는 해가 저계 도함수(Low-order Derivative)에 비약 불연속(Jump Discontinuity)을 가질 수 있는 점 t입니다. 이는 |
| 벡터 | 해의 초기값입니다. 기본적으로 해의 초기값은 초기 지점에서 |
예제
솔버의 상대 허용오차를 디폴트 값 1e-3
에서 1e-4
로 변경하는 options 구조체를 만들려면 다음을 입력합니다.
options = ddeset('RelTol',1e-4);
'RelTol'
의 값을 options
에서 복구하려면 다음을 입력합니다.
ddeget(options,'RelTol') ans = 1.0000e-004
확장 기능
버전 내역
R2006a 이전에 개발됨