설명
여유 행은 다양한 방법으로 나타날 수 있습니다. 일부 솔버는 그렇지 않기 때문에 빈 행을 처리하려면 가능한 모든 사례를 포착해야 합니다. 그것들을 짜내는 코드에서 그것들이 발생할 수 있습니다. 기고자: Steve Dirkse, 2013년 8월
소형 모델 유형 :MPEC
카테고리 : 무료 슬롯 테스트 라이브러리
메인 파일 : mpec04.gms
$title MPEC 모델 테스트 무료 행(MPEC04,SEQ=615)
$onText
사용 가능한 행은 다양한 방법으로 나타날 수 있습니다. 일부 솔버는 그렇지 않기 때문에
빈 행을 처리하려면 가능한 모든 사례를 포착해야 합니다.
그것들을 짜내는 코드에서 그것들이 발생할 수 있습니다.
기고자: Steve Dirkse, 2013년 8월
$offText
스칼라 z0, x0 /1/, yN0 /2/, yE0 /2/, yG0 /2/, yL0 /2/;
z0 = sqr(x0-2) + sqr(yN0-1) + sqr(yE0-1) + sqr(yG0-1) + sqr(yL0-1);
변수 x, yN, yE, yG, yL, z;
x.fx = x0;
yN.fx = yN0;
yE.fx = yE0;
yG.fx = yG0;
yL.fx = yL0;
방정식
f '빈 행이 일치하지 않음'
gN '고정 변수와 일치하는 자유 행'
gE '고정 변수와 일치하는 동일 행'
gG '=G= 고정 변수와 일치하는 행'
gL '=L= 고정 변수와 일치하는 행'
오;
f .. exp(x) =N= 0;
gN .. rpower(yN,1.5) =N= 7;
gE .. rpower(yE,0.5) =E= 322;
gG .. rpower(yE,0.6) =G= 20;
gL .. rpower(yE,0.7) =L= 22;
o .. sqr(x-2) + sqr(yN-1) + sqr(yE-1) + sqr(yG-1) + sqr(yL-1) =e= z;
모델 m / f, gN.yN, gE.yE, gG.yG, gL.yL, o /;
mpec min z를 사용하여 m을 해결합니다.
abort$[m.solvestat <> %solveStat.normalCompletion%] '잘못된solvestat',
m.solvestat;
abort$[abs(z.l-z0) > 1e-5] '불량 z', z.l, z0;
m.holdfixed = 1;
mpec min z를 사용하여 m을 해결합니다.
abort$[m.solvestat <> %solveStat.normalCompletion%] '잘못된solvestat',
m.solvestat;
중단$[abs(z.l-z0) > 1e-5] '불량 z', z.l, z0;