chenery.gms : 대체 및 구조 변화

설명

이 모델은 생산을 위한 기존의 입출력 공식을 따릅니다.
비선형 수요 함수, 수입 및 수출 기능, 생산
직접 요소 사용을 위한 함수입니다.

소형 모델 유형 :NLP


카테고리 : 무료 슬롯 모델 라이브러리


메인 파일 : chenery.gms

$title 대체 및 구조 변경(CHENERY,SEQ=33)

$onText
이 모델은 생산을 위한 기존의 입출력 공식을 따릅니다.
비선형 수요 함수, 수입 및 수출 기능, 생산
직접적인 요소 사용을 위한 함수.

Chenery, H B 및 Raduchel, W J, 대체 및 구조 변화.
Chenery, H B, Ed, 구조 변화 및 개발 정책. 옥스퍼드
대학 출판부, 뉴욕 및 옥스포드, 1979.

키워드: 비선형 계획법, 계량경제학, 경제 발전
$offText

세트
   i '섹터' / 경공업, 식품+농업, 중공업, 서비스 /
   t(i) '무역품' / 경공업, 식품+농업, 중공업 /
   ㅋㅋ '탄력성' / 낮음, 중간, 높음 /
   sde '기타 매개변수' / subst, distr, effic /;

별칭(i,j);

테이블 aio(i,i) '입력 계수'
               경공업 식품+농업 중공업 서비스
   음식+농도 .1
   중공업 .2 .1
   서비스 .2 .3 .1 ;

* 다음 3개의 테이블에는 다양한 가능한 데이터가 지정되어 있습니다.
* 경제에 관한 가설. 하나의 특정 하위 집합이 모든 작업에 사용됩니다.
* 개별 모델. 아래 할당문을 참조하세요.

테이블 pdat(lmh,*,sde,i) '프로덕션 데이터'
                    경공업 식품+농업 중공업 서비스
   low.a.subst
   낮은.a.거리 .915 .944 2.60 .80
   낮은 효율 3.83 3.24 4.0 1.8
   low.b.subst
   낮은.b.거리 .276 1.034 2.60 .77
   낮은 효율 2.551 3.39 4.0 1.77
   매체.a.subst .11 .29 .2 .05
   매체.a.distr .326 .443 .991 .00798
   중간.a.효율 3.97 3.33 1.67 1.84
   매체.b.서브스트 .22 .58 .4 .1
   매체.b.distr .41 .47 .92 .08
   중간.b.효율 3.99 3.33 1.8 1.89
   하이.아.서브스트 .45 1.15 .4 .2
   높은.a.거리 .456 .483 .917 .23
   고효율 4.0 3.33 1.8 1.92
   high.b.subst .93 1.15 .8 .4
   높이.b.거리 .484 .483 .769 .344
   고효율 4.0 3.33 1.96 1.96 ;

테이블 ddat(lmh,*,i) '수요 매개변수'
                            경공업 식품+농업 중공업 서비스
   (낮음, 중간, 높음).ynot 100 230 220 450
   매체.p-elas -.674 -.246 -.587 -.352
   높음 .p-elas -1 -1 -1 -1 ;

테이블 tdat(lmh,*,t) '거래 매개변수'
                     경공업 식품+Agr 중공업 식품
   중간.alp .005 .001 .01
   높은 .alp .0025 .0005 .00178
   (중,고).무료 슬롯 1.0 1.1 1.0
   (중간, 높음).xsi .005 .0157 .00178;

매개변수
   mew(t) '가져오기 비용 함수에 대한 차단'
   xsi(t) '수입 비용 함수의 기울기'
   무료 슬롯(t) '수출 수익 기능 차단'
   alp(t) '수출 수익 함수의 기울기'
   ynot(i) '기준 연도의 수요'
   sig(i) '대체자본의 노동에 대한 탄력성'
   thet(i) '수요의 가격 탄력성'
   rho(i) '생산함수의 대체 매개변수'
   del(i) '생산 함수의 분포 매개변수'
   efy(i) '생산 기능의 효율성 매개변수';

스칼라
   lbar '총 노동 공급' / 750 /
   plab '노동의 가격' / 1 /
   kbar '자본금' / 500 /
   dbar '무역 적자' / 0 /;

변수
   x(i) '산출량'
   v(i) '현재 가격으로 생산량 단위당 부가가치'
   y(i) '최종 소비'
   p(i) '가격'
   l(i) '생산량 단위당 노동 사용'
   k(i) '산출 단위당 자본 사용'
   e(i) '수출량'
   m(i) '수입량'
   g(t) '수입품의 외환비용'
   h(t) '수출의 외환 가치'
   pk '자본의 명목시장가격'
   파이 '요소 가격 비율'
   pd '가격 디플레이터'
   td '총 수요'
   vv(i) '중간 결과';

양수 변수 x, y, e, m, g, h, p, k, l, v;

방정식
   dty '총 수요: 정의'
   mb(i) '물질수지'
   TB '무역수지'
   dg(t) '수입 정의'
   dh(t) '수출의 정의'
   dem(i) '수요 방정식'
   lc '노동 제약'
   kc '자본 제약'
   sup(i) '공급 방정식'
   fpr '요소 가격 비율 정의'
   dvv(i) 'vv의 정의'
   dl(i) '노동계수의 정의'
   dk(i) '자본계수의 정의'
   dv(i) '부가가치';

* 아래에 따르는 명명 규칙은 다음과 같습니다.
* 내생변수에는 1~2개의 문자 이름이 있습니다.
* 외생 매개변수에는 3자 이상의 문자가 있습니다.

dty..td =e= sum(i, y(i));

mb(i).. x(i) =g= y(i) + sum(j, aio(i,j)*x(j)) + (e(i) - m(i))$t(i);

tb.. sum(t, g(t)*m(t) - h(t)*e(t)) =l= dbar;

dg(t).. g(t) =e= mew(t) + xsi(t)*m(t);

dh(t).. h(t) =e= 무료 슬롯(t) - alp(t)*e(t);

dem(i).. y(i) =e= ynot(i)*(pd*p(i))**thet(i);

lc..sum(i, l(i)*x(i)) =l= lbar;

kc..sum(i, k(i)*x(i)) =e= kbar;

sup(i).. p(i) =e= sum(j, aio(j,i)*p(j)) + v(i);

fpr..pi =e= pk/plab;

dvv(i)$(sig(i) <> 0).. vv(i) =e= (pi*(1 - del(i))/del(i))**(-rho(i)/(1 + rho(i)));

dl(i).. l(i)*efy(i) =e= ((del(i)/vv(i) + (1 - del(i)))**(1/rho(i)))$(sig(i) <> 0) + 1$(sig(i) = 0);

dk(i).. k(i)*efy(i) =e= ((del(i) + (1 - del(i))*vv(i))**(1/rho(i)))$(sig(i) <> 0) + del(i)$(sig(i) = 0);

dv(i).. v(i) =e= pk*k(i) + plab*l(i);

모델 chenrad 'chenery raduchel 모델' / 모두 /;

* 변수의 경계
y.up(i) = 2000;
x.up(i) = 2000;
e.up(t) = 400;
m.up(t) = 400;
g.up(t) = 4;
h.up(t) = 4;
p.up(i) = 100;
p.lo(i) = 0.1;
l.up(i) = 1;
k.up(i) = 1;
pk.lo = 0.25;
pk.up = 4;
파이.lo = 0.25;
파이업 = 4;
v.up(i) = 100;
vv.lo(i) = 0.001;

* 이 실행에 대한 계수 값을 선택합니다.
야옹(t) = 1.0;
xsi(t) = tdat("중간","xsi",t);
무료 슬롯(t) = tdat("중간","무료 슬롯",t);
alp(t) = tdat("중간","alp",t);
ynot(i) = ddat("중간","ynot",i);
thet(i) = ddat("medium","p-elas",i);
sig(i) = pdat("중간","a","subst",i);
del(i) = pdat("medium","a","distr",i);
efy(i) = pdat("중간","a","효율",i);
rho(i)$(sig(i) <> 0) = 1./sig(i) - 1.;

* 변수의 초기값
y.l(i) = 250;
x.l(i) = 200;
e.l(t) = 0;
m.l(t) = 0;
g.l(t) = mew(t) + xsi(t)*m.l(t);
h.l(t) = 무료 슬롯(t) - alp(t)*e.l(t);
pd.l = 0.3;
p.l(i) = 3;
pk.1 = 3.5;
pi.l = pk.l/plab;

vv.l(i)$sig(i) = (pi.l*(1 - del(i))/del(i))**(-rho(i)/(1 + rho(i)));

l.l(i) = (((del(i)/vv.l(i) + (1 - del(i)))**(1/rho(i)))$(sig(i) <> 0)
         + 1$(sig(i) = 0))/efy(i);

k.l(i) = (((del(i) + (1 - del(i))*vv.l(i))**(1/rho(i)))$(sig(i) <> 0)
         + del(i)$(sig(i) = 0))/efy(i);

v.l(i) = pk.l*k.l(i) + plab*l.l(i);

* 함수 평가 오류를 방지하기 위해 경계를 추가합니다.
pd.lo = 0.01;
p.lo(i) = 0.1;

td를 최대화하는 nlp를 사용하여 chenrad를 해결합니다.

스칼라
   cva '현재 가격의 총 부가가치'
   rva '실제 부가가치'
   다섯 번째 '수출의 외환 가치'
   emp '총고용'
   cli '생활비 지수';

cva = sum(i, v.l(i)*x.l(i));
fve = sum(t, e.l(t)*h.l(t));
emp = sum(i, l.l(i)*x.l(i));
cli = sum(i, p.l(i)*ynot(i))/sum(i, ynot(i));
rva = cva/cli;

cli, cva, rva, fve, emp를 표시합니다.