scarfemp-altdem.gms : Scarf의 활동 분석 예 - 비폐쇄형 수요 함수

설명

스카프의 활동 분석 예

Scarf, H 및 Hansen, T, 경제 균형 계산.  예일
대학 출판부, 1973.

GAMSLIB 모델에서와 같이 수요함수를 명시적으로 작성하는 대신
Scarmcp), 우리는 대신

max_x(c,h) u_h(x)
   s.t p'*x <= i_h, x >= 0

이 모델에서는 새로운 효용함수를 생성합니다.
   u_h(x) = sum_c 감마(c,h) * x(c,h)**베타(c,h)

수요함수에 대한 폐쇄형 솔루션이 없는 경우
(그러나 스카프 모델과 동일한 솔루션을 갖도록 선택되었습니다)

기고자: Michael Ferris, 2010년 10월

소형 모델 유형 :EQUIL


카테고리 : 메가 슬롯 EMP 라이브러리


메인 파일 : scarfemp-altdem.gms

$title Scarf의 활동 분석 예 - 비폐쇄형 수요 함수(SCARFEMP-ALTDEM,SEQ=52)

$onText

Scarf의 활동 분석 예

Scarf, H 및 Hansen, T, 경제 균형 계산.  예일
대학 출판부, 1973.

GAMSLIB 모델에서와 같이 수요함수를 명시적으로 작성하는 대신
Scarmcp), 우리는 대신

max_x(c,h) u_h(x)
   s.t p'*x <= i_h, x >= 0

이 모델에서는 새로운 효용함수를 생성합니다.
   u_h(x) = sum_c 감마(c,h) * x(c,h)**베타(c,h)

수요함수에 대한 폐쇄형 솔루션이 없는 경우
(그러나 스카프 모델과 동일한 솔루션을 갖도록 선택되었습니다)

기고자: Michael Ferris, 2010년 10월
$offText

$call gamslib -q 스카프mcp
$include 스카프데이터.inc

옵션 limrow = 0, limcol = 0;

긍정적인
변수

        p(c) 상품 가격,
        y(s) 생산,
        i(h) 소득;

방정식
        mkt(c) 상품 시장,
        이익 제로 이익,
        소득(h) 소득지수;

* CES 수요함수와 Cobb-Douglas 수요함수 구별:

mkt(c).. 합계(s, a(c,s) * y(s)) + 합계(h, e(c,h)) =g=

                합계(h$(esub(h) ne 1),
                (i(h)/sum(cc, alpha(cc,h) * p(cc)**(1-esub(h)))) *
                알파(c,h) * (1/p(c))**esub(h)) +

                합계(h$(esub(h) eq 1),
                i(h) * 알파(c,h) / p(c));

이익(들).. -sum(c, a(c,s) * p(c)) =g= 0;

소득(h).. i(h) =g= sum(c, p(c) * e(c,h));

모델 스카프 / mkt.p,profit.y,income.i/;

p.l(c) = 1;
y.l(s) = 1;
i.l(h) = sum(c, p.l(c) * e(c,h));

p.lo(c) = 0.00001$(smax(h, alpha(c,h)));

* 숫자 상품의 가격을 수정합니다.

i.fx(h)$(ord(h) eq 1) = i.l(h);

* 콥 더글라스의 경우
* esub(h) = 1;

mcp를 사용하여 스카프를 해결합니다.

* 다음과 같이 교정되는 모델의 대체 버전을 공식화합니다.
* 공통 벤치마크 포인트이지만 대체 유틸리티 기능을 가정합니다.
* 폐쇄형에서는 사용할 수 없는 수요 기능.

매개변수 beta(c,h) 탄력성 항
          gamma(c,h) 유틸리티 함수 공유 매개변수;

옵션 시드 = 101;
베타(c,h) = 균일(0.5,1.5);

양의 변수 x(c,h) 상품 및 가구별 소비 수요;

x.l(c,h) = ((i.l(h)/sum(cc, alpha(cc,h) * p.L(cc)**(1-esub(h)))) *
           알파(c,h) * (1/p.L(c))**esub(h))$(esub(h)<>1) +
           (i.l(h) * alpha(c,h) / p.l(c))$(esub(h)=1);

감마(c,h)$x.l(c,h) = p.l(c) / (베타(c,h) * x.l(c,h)**(베타(c,h)-1));

변수 z(h);
방정식 objdef(h), Budget(h), mktcons(c);

objdef(h)..
  z(h) =e= sum(c$gamma(c,h), gamma(c,h)*x(c,h)**beta(c,h));

예산(h)..
  sum(c$gamma(c,h), p(c)*x(c,h)) =l= i(h);

mktcons(c).. 합계(s, a(c,s) * y(s)) + 합계(h, e(c,h)) =g=
                sum(h$gamma(c,h), x(c,h));

모델 Scarfemp /objdef, 예산, mktcons, 이익, 수입/;

* emp 모델의 벤치마크 시작점 설정
* 예산.m(h) = 1;

* 생산을 위한 초기값 설정(y)
x.l(c,h) = 1$감마(c,h);
x.lo(c,h) = 0.00001$gamma(c,h);
x.fx(c,h)$(감마(c,h) 아님) = 0;

파일 myinfo / '%emp.info%' /;
myinfo를 '평형'으로 설정;
넣다 / 'vi 소득 i';
넣어 / 'vi mktcons p';
넣어 / 'vi 이익 y';
루프(h,
  넣다 / '최대' z(h);
  loop(c$gamma(c,h), put / x(c,h) );
  put / objdef(h) 예산(h);
);
닫아두다 /;

* 소비변수의 좋은 출발점 결정
p.l(c) = 1;
y.l(s) = 1;
i.fx(h) = sum(c, p.l(c) * e(c,h));

emp를 사용하여 Scarfemp를 해결합니다.

* 이제 진짜로 풀어보세요
i.lo(h) = 0; i.up(h) = inf;
i.fx(h)$(ord(h) eq 1) = i.l(h);
emp를 사용하여 Scarfemp를 해결합니다.

y.l을 표시;