설명
x > 0에 대해 y = gamma(x) 및 y = loggamma(x)의 최소값 찾기
소형 모델 유형 :DNLP
카테고리 : 무료 슬롯 사이트 모델 라이브러리
메인 파일 : mingamma.gms
$title GAMMA(x)의 최소 y (MINGAMMA,SEQ=299)
$onText
x > 0에 대해 y = gamma(x) 및 y = loggamma(x)의 최소값을 구합니다.
Sloane, NJA, 정수 시퀀스의 온라인 백과사전; 순서
A030169. https://oeis.org/A030169
키워드: 비선형 계획법, 불연속 도함수, 통계
$offText
변수 y1, y2, x1, x2;
방정식 y1def, y2def;
x1.lo = 0.01;
x2.lo = 0.01;
y1def.. y1 =e= 감마(x1);
y2def.. y2 =e= loggamma(x2);
모델
m1 / y1def /
m2 / y2def /;
nlp를 사용하여 y1을 최소화하는 m1을 해결합니다.
nlp를 사용하여 y2를 최소화하는 m2를 해결합니다.
스칼라
x1opt / 1.46163214496836 /
x1델타
x2델타
y1opt / 0.8856031944108887 /
y1델타
y2delta
y2opt;
y2opt = 로그(y1opt);
옵션 소수 = 8;
x1델타 = x1.l - x1opt;
y1delta = y1.l - y1opt;
x2delta = x2.l - x1opt;
y2delta = y2.l - y2opt;
x1.l, x2.l, y1.l, y2.l, x1opt, y1opt, y2opt, x1delta, x2delta, y1delta, y2delta를 표시합니다.
* 솔버는 x 값보다 y 값에 대해 훨씬 더 정확할 수 있습니다.
* 최소값을 찾을 때 다른 공차가 필요합니다.
스칼라
xtol / 5e-5 /
이톨 / 1e-6 /
;
if(m1.solveStat <> %solveStat.capabilityProblems%,
abort$[abs(x1delta) > xtol 또는 abs(y1delta) > ytol] "감마와 일치하지 않는 결과";
);
if(m2.solveStat <> %solveStat.capabilityProblems%,
abort$[abs(x2delta) > xtol 또는 abs(y2delta) > ytol] "loggamma와 일치하지 않는 결과";
);