설명
-------------------------------------------- 이 모델은 MCPLIB의 hanskoop.gms 버전입니다. 외부 방정식을 예제 및 테스트 사례로 사용하도록 수정되었습니다. 이것이 생산 모델이라면 방정식을 정의하는 데이터 파일에서 읽을 수 있으며 슬롯 사이트 추천 모델에 적용되지 않습니다. 그리고 외부 방정식 참조: 경제이론논문집 Vol. 5 (1972) 487-523 Hansen과 Koopmans가 제시한 불변 자본스톡 문제 제안된 알파 매개변수는 참조에서 0.7, 0.8, 0.9였습니다. ---------------------------------------------------------
소형 모델 유형 :슬롯 사이트 추천
카테고리 : 슬롯 사이트 추천 테스트 라이브러리
메인 파일 : exmcp4.gms
$title Hansen/Koopmans: 외부 방정식 - MCP 4 예(EXMCP4,SEQ=576)
$onText
---------------------------------------------------------
이 모델은 MCPLIB의 hanskoop.gms 버전입니다.
외부 방정식을 예제 및 테스트 사례로 사용하도록 수정되었습니다.
이것이 생산 모델이라면 방정식을 정의하는 데이터
파일에서 읽을 수 있으며 슬롯 사이트 추천 모델에 적용되지 않습니다.
그리고 외부 방정식
참조:
경제이론논문집 Vol. 5 (1972) 487-523
Hansen과 Koopmans가 제시한 불변 자본스톡 문제
제안된 알파 매개변수는 참조에서 0.7, 0.8, 0.9였습니다.
---------------------------------------------------------
$offText
세트
나는 '자본재 세트' / 1 * 2 /,
J '생산 공정' / 1 * 10 /,
CJ(J) '소비재를 생산하는 공정' / 1 * 6 /,
R '리소스 유형' / 1 * 2 /;
스칼라
p / 0.20 /,
알파 / 0.7 /
유틸리티 ;
옵션 유틸리티:6;
매개변수
A(I,J),
B(I,J),
C(R,J),
w(R) /
1 0.8
2 0.8
/;
테이블 A(I,J)
1 2 3 4 5 6 7 8 9 10
1 2 2 2 2 2 2 2 2 2 2
2 3 3 2 2 1 1 1 .5 1 .5 ;
테이블 B(I,J)
1 2 3 4 5 6 7 8 9 10
1 1.5 1.5 1.5 1.5 1.5 1.5 4 3 1.5 1.5
2 2.7 2.7 1.8 1.8 .9 .9 .9 .4 2 1.5 ;
테이블 C(R,J)
1 2 3 4 5 6 7 8 9 10
1 1 1 1 1 1 1 1 1 1 1
2 .5 1.5 1.5 .5 .5 1.5 1.5 .5 .5 1.5 ;
매개변수
xpt(J) /
1 .301
2 .302
3 .303
4 .304
5 .305
6 .306
7 .307
8 .308
9 .309
10 .310
/,
입트(I) /
1 .001
2 .002
/,
uipt(R) /
1 .001
2 .002
/;
긍정적인 변수
x(J) '생산 공정의 활동 수준',
y(I) '자본 입출력 제약에 대한 이중 변수',
u(R) '자원 제약에 대한 이중 변수' ;
* v(x) = (x1 + 2.5x2)^p * (2.5x3 + x4)^p * (2x5 + 3x6)^p
방정식
del(J) '라그랑지안의 파생물',
del_ext(J) '라그랑지안의 파생물',
capio(I) '자본 입출력 제약',
Resource_ext(R) '자원 제약',
리소스(R) '리소스 제약' ;
* f(x,u,y) = / -delv(x) \ / 0 A-알파B' C' \ / x \
* | 0 | + | B-A 0 0 |*| 와이 |
* \ w / \ -C 0 0 / \ u /
del(J) .. - (p*(x("1") + 2.5*x("2"))**(p-1) *
(2.5*x("3") + x("4"))**p *
(2*x("5") + 3*x("6"))**p) $(ord(J) eq 1)
- (p*2.5*(x("1") + 2.5*x("2"))**(p-1) *
(2.5*x("3") + x("4"))**p *
(2*x("5") + 3*x("6"))**p) $(ord(J) eq 2)
- ((x("1") + 2.5*x("2"))**p *
p*2.5*(2.5*x("3") + x("4"))**(p-1) *
(2*x("5") + 3*x("6"))**p) $(ord(J) eq 3)
- ((x("1") + 2.5*x("2"))**p *
p*(2.5*x("3") + x("4"))**(p-1) *
(2*x("5") + 3*x("6"))**p) $(ord(J) eq 4)
- ((x("1") + 2.5*x("2"))**p *
(2.5*x("3") + x("4"))**p *
p*2*(2*x("5") + 3*x("6"))**(p-1)) $(ord(J) eq 5)
- ((x("1") + 2.5*x("2"))**p *
(2.5*x("3") + x("4"))**p *
p*3*(2*x("5") + 3*x("6"))**(p-1)) $(ord(J) eq 6)
+ 합계(I, y(I)*(A(I,J)-알파*B(I,J)))
+ 합(R, u(R)*C(R,J)) =g= 0;
del_ext(J).. sum CJ, ord(CJ)*x(CJ)$CJ(J)
+ 합 I, (카드(J)+ord(I)) * y(I)
+ 합 R, (카드(J)+카드(I)+ord(R)) * u(R)
=x= ord(J);
capio(I) .. sum(J, (B(I,J)-A(I,J))*x(J)) =g= 0;
자원(R) .. w(R) - 합계(J, C(R,J)*x(J)) =g= 0;
resources_ext(R).. sum J, ord(J)*x(J)
=x= 카드(J)+ord(R);
$ 미리 설정
$ifI %system.filesys%==unix $set pre 'lib'
$ 세트 '64'
$set N exmcp4
$set c_cbN %pre%%N%c%suf%
$set f_cbN %pre%%N%f%suf%
모델 %N% '슬롯 사이트 추천 구현' / del.x, capio.y, Resource.u /;
model %c_cbN% 'C의 외부 방정식' / del_ext.x, capio.y, resources_ext.u /;
model %f_cbN% 'F77의 외부 방정식' / del_ext.x, capio.y, resources_ext.u /;
스칼라 totdist / 0 /;
매개변수 솔루션_x(J,*), 솔루션_y(I,*), 솔루션_u(R,*);
$onEchoV > runme.gms
x.l(J) = xipt(J);
y.l(I) = yipt(I);
u.l(R) = upt(R);
x.lo(CJ) = 2.0e-05;
mcp를 사용하여 %1을(를) 해결하세요.
x.lo(CJ) = 0;
mcp를 사용하여 %1을(를) 해결하세요.
Solution_x(J,'%1') = x.l(J);
Solution_y(I,'%1') = y.l(I);
Solution_u(R,'%1') = u.l(R);
totdist = totdist + sum J, abs(x.l(J)-solution_x(J,'exmcp4'));
totdist = totdist + sum I, abs(y.l(I)-solution_y(I,'exmcp4'));
totdist = totdist + sum R, abs(u.l(R)-solution_u(R,'exmcp4'));
유틸리티 = (x.l("1") + 2.5*x.l("2"))**p *
(2.5*x.l("3") + x.l("4"))**p *
(2*x.l("5") + 3*x.l("6"))**p;
"유틸리티 v(x) = "를 표시합니다. 유틸리티;
$offEcho
$ 확장 '.dll' 설정
$ifI %system.filesys%==unix $set ext '.so'
$ifI %system.platform%==dex $set ext '.dylib'
$ifI %system.platform%==dax $set ext '.dylib'
$ 세트 eq
$ifI %system.filesys%==unix $set eq "'"
$if set runall $set runC_cb '1' set runF_cb '1'
$ifThen nocomp를 설정하지 않음
$ ifI set runC_cb $call 슬롯 사이트 추천 complink lo=%슬롯 사이트 추천lo% --lang=c --files=exmcp4c_cb.c --libname=%c_cbN%%ext%
$ 오류 수준 1인 경우 $abort C 라이브러리 컴파일 오류
$ ifI set runF_cb $call 슬롯 사이트 추천 complink lo=%슬롯 사이트 추천lo% --lang=fortran90 --files=%eq%"gehelper.f90 msg2_f.f90 exmcp4f_cb.f90"%eq% --libname=%f_cbN%%ext%
$ 오류 수준 1인 경우 $abort Fortran90 라이브러리 컴파일 오류
$endIf
$ batInclude runme %N%
$if set runC_cb $batInclude runme %c_cbN%
$if set runF_cb $batInclude runme %f_cbN%
솔루션_x, 솔루션_y, 솔루션_u를 표시합니다.
(totdist < 1.0E-6)인 경우,
"@@@@ #테스트에 통과했습니다."를 표시합니다.
그렇지 않으면
abort totdist, "@@@@ #테스트가 통과되지 않았습니다. 자세한 내용은 exmcp4.lst를 검사하세요.";
;