설명
함수 값과 도함수를 테스트합니다. centropy(x,y,delta) = x * log((x+delta)/(y+delta)) 매우 작은 입력의 경우 : x [0,1e2] [1e-298,1e2]의 y d [0,1e2] 기여자: Steve Dirkse
소형 모델 유형 :메가 슬롯
카테고리 : 메가 슬롯 테스트 라이브러리
메인 파일 : fncentr6.gms 포함: fnset_xy.inc[html] fntest_xy.inc[html]
$title '작은 입력에 대한 센트로피 내장 테스트' (FNCENTR6,SEQ=362)
$onText
함수 값과 도함수를 테스트합니다.
centropy(x,y,delta) = x * log((x+delta)/(y+delta))
매우 작은 입력의 경우 :
x [0,1e2]
[1e-298,1e2]의 y
d [0,1e2]
기여자: Steve Dirkse
$offText
$include fnset_xy.inc
$gdxIn fncentr6
$load aeps 담당자 T 데이터
$gdxIn
relToInput = 0;
aeps = 5e-13;
루프 T,
data(T, 'f') = centropy.value( data(T,'x'),data(T,'y'),data(T,'d'));
data(T, 'fx') = centropy.grad(1: data(T,'x'),data(T,'y'),data(T,'d'));
data(T, 'fy') = centropy.grad(2: data(T,'x'),data(T,'y'),data(T,'d'));
data(T,'fxx') = centropy.hess(1:1:data(T,'x'),data(T,'y'),data(T,'d'));
data(T,'fxy') = centropy.hess(1:2:data(T,'x'),data(T,'y'),data(T,'d'));
data(T,'fyx') = centropy.hess(2:1:data(T,'x'),data(T,'y'),data(T,'d'));
data(T,'fyy') = centropy.hess(2:2:data(T,'x'),data(T,'y'),data(T,'d'));
data(T, 'rc') = mathlastrc;
data(T, 'ec') = mathlastec;
;
* 평가 오류가 발생할 수 있습니다. 이로 인해 테스트가 실패해서는 안 됩니다.
실행 오류 = 0;
relToInput을 표시;
$include fntest_xy.inc