cpplib04.gms : cppcclib의 외부 함수 테스트

설명

여기서 우리는 삼변량에 대한 cppcclib의 외부 함수를 테스트합니다.
정규 분포 CDF는 다음 함수를 비교하여 예상대로 작동합니다.
값을 미리 계산된 값으로, 도함수 값을 수치 도함수로 변환합니다.

메가 슬롯 외부 값과 미리 계산된 값 모두
CDF는 다음과 같은 반복 근사 방식을 통해 계산됩니다.
다른 기능(예: 단변수 또는 이변수)에 비해 정밀도가 낮습니다.
일반 CDF).  정밀도는 입력에 따라 달라집니다.  흥미로운 것을 위해
경우(x/y/z는 0에서 멀지 않고, r/s/t는 0에 더 가까우므로 공분산은
행렬의 순위가 좋음) 1e-8보다 더 나은 정밀도는 보장되지 않습니다.

기여자: Steve

소형 모델 유형 :메가 슬롯


카테고리 : 메가 슬롯 테스트 라이브러리


메인 파일 : cpplib04.gms

$title cppcclib의 외부 함수 테스트(CPPLIB04,SEQ=655)

$onText
여기서 우리는 삼변량에 대한 cppcclib의 외부 함수를 테스트합니다.
정규 분포 CDF는 다음 함수를 비교하여 예상대로 작동합니다.
값을 미리 계산된 값으로, 도함수 값을 수치 도함수로 변환합니다.

메가 슬롯 외부 값과 미리 계산된 값 모두
CDF는 다음과 같은 반복 근사 방식을 통해 계산됩니다.
다른 기능(예: 단변수 또는 이변수)에 비해 정밀도가 낮습니다.
일반 CDF).  정밀도는 입력에 따라 달라집니다.  흥미로운 것을 위해
경우(x/y/z는 0에서 멀지 않고, r/s/t는 0에 더 가까우므로 공분산은
행렬의 순위가 좋음) 1e-8보다 더 나은 정밀도는 보장되지 않습니다.

기여자: 스티브
$offText
$onDollar

$funcLibIn mvnLib cppcclib

function xdf '삼변량 정규의 CDF' / mvnLib.cdfTVN /;

$설정되지 않은 경우 INFILE $set INFILE tvnInit

$macro f0 xdf.value( data(T,'x'),data(T,'y'),data(T,'z'),data(T,'r'),data(T,'s'),data(T,'t'))
$macro f1(j) xdf.grad (j: data(T,'x'),data(T,'y'),data(T,'z'),data(T,'r'),data(T,'s'),data(T,'t'))
$macro f1n(j) xdf.gradn(j: data(T,'x'),data(T,'y'),data(T,'z'),data(T,'r'),data(T,'s'),data(T,'t'))
$macro f2(j1,j2) xdf.hess (j1:j2:data(T,'x'),data(T,'y'),data(T,'r'),data(T,'r'),data(T,'s'),data(T,'t'))
$macro f2n(j1,j2) xdf.hessn(j1:j2:data(T,'x'),data(T,'y'),data(T,'r'),data(T,'r'),data(T,'s'),data(T,'t'))

$include extrtest3a.inc

fdata(T, 'f_') = data(T,'cdf');

스칼라
 aeps0 '절대 오류 허용 범위: 함수' / 1e-7 /
 reps0 '상대 오류 허용 범위: 함수' / 1e-8 /
 aeps1 '절대 오류 허용 범위: grad' / 2e-2 /
 reps1 '상대 오류 허용오차: grad' / 2e-2 /
 aeps2 '절대 오류 허용 범위: hess' / 1e-2 /
 reps2 '상대 오류 허용오차: hess' / 1e-2 /
 aepsr '절대 오류 허용 오차: hess Xr' / .01 /
 repsr '상대 오류 허용오차: hess Xr' / .15 /
 ;

$include extrtest3b.inc