scarfexpend.gms : Scarf의 활동 분석 예

설명

스카프의 활동 분석 예

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

GAMSLIB 모델 Scarpmcp에서와 같이 MCP를 명시적으로 구성하는 대신,
대신 우리는
   max_p sum (h, i(h) * log(expend_h(p))) - p'*sum(h, endow(.,h))
   s.t A'p <= 0, p >= 0

여기서 expend_h는 다음과 같이 정의되는 지출 함수입니다.
   expend_h(p) = min_x p'*x s.t.  u_h(x) >= 1, x >= 0
(또는 동등하게:
   expend_h(p) = min_x p'*x s.t.  로그(u_h(x)) >= 0, x >=0
)

EMPLIB 모델은 폐쇄형 지출함수를 사용합니다.  에서
이 모델에서는 지출 모델의 정의를 다음과 같이 사용합니다.
KKT와 NLP를 사용하여 MCP 모델을 생성하는 유틸리티 함수
그 안의 조건.

즉, 지출 함수를 KKT 조건(utillev, dedp)으로 대체합니다.
위의 max_p 문제 정의에서.

기고자: Michael Ferris, 2010년 10월

소형 모델 유형 :EQUIL


카테고리 : 슬롯 사이트 추천 EMP 라이브러리


메인 파일 : scarfexpend.gms

$title Scarf의 활동 분석 예(SCARFEXPEND,SEQ=55)

$onText

Scarf의 활동 분석 예

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

GAMSLIB 모델 Scarpmcp에서와 같이 MCP를 명시적으로 구성하는 대신,
대신 우리는
   max_p sum (h, i(h) * log(expend_h(p))) - p'*sum(h, endow(.,h))
   s.t A'p <= 0, p >= 0

여기서 expend_h는 다음과 같이 정의되는 지출 함수입니다.
   expend_h(p) = min_x p'*x s.t.  u_h(x) >= 1, x >= 0
(또는 동등하게:
   expend_h(p) = min_x p'*x s.t.  로그(u_h(x)) >= 0, x >=0
)

EMPLIB 모델은 폐쇄형 지출함수를 사용합니다.  에서
이 모델에서는 지출 모델의 정의를 다음과 같이 사용합니다.
KKT와 NLP를 사용하여 MCP 모델을 생성하는 유틸리티 함수
그 안의 조건.

즉, 지출 함수를 KKT 조건(utillev, dedp)으로 대체합니다.
위의 max_p 문제 정의에서.

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

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

옵션 limrow = 0, limcol = 0;

긍정적인
변수

        p(c) 상품 가격,
        i(h) 소득;

방정식
        이익 제로 이익,
        소득(h) 소득지수;

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

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

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

양의 변수 x(c,h) 마샬 수요;
양수 변수 utilmul(h) 유틸리티 승수;
방정식 utillev(h), dedp(c,h);

유틸리티(h)..
  ((1/rho(h))*log(sum(c$alpha(c,h),lambda(c,h)*x(c,h)**rho(h))))$(esub(h) ne 1)
  + sum(c$alpha(c,h), alpha(c,h)*log(x(c,h)))$(esub(h) eq 1)
  =e= 0;

dedp(c,h)$알파(c,h)..
  (p(c) - utilmul(h)*lambda(c,h)*x(c,h)**(rho(h)-1))$(esub(h) ne 1)
  + (p(c) - utilmul(h)*alpha(c,h)/x(c,h))$(esub(h) eq 1) =e= 0;

변수 z;
방정식 objdef;

* 다음은 Cobb Douglas 함수에 대한 작업입니다(esub(h) = 1).

objdef..
  z =e=
  합계(h, i(h)*log(sum(c$alpha(c,h), p(c)*x(c,h))))
  - sum(c, sum(h, e(c,h))*p(c));

모델 스카프 /objdef, 이익, 수입, dedp, utillev /;

* 초기값 설정
p.l(c) = 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;

x.l(c,h) = 0.1;
x.lo(c,h) = 0.00001$alpha(c,h);
x.fx(c,h)$(알파(c,h) 아님) = 0;
utilmul.l(h) = smax(c$alpha(c,h), p.l(c)*x.l(c,h)/alpha(c,h))$(esub(h) eq 1)
 + smax(c$alpha(c,h), p.l(c)/(lambda(c,h)*x.l(c,h)**(rho(h)-1)))$(esub(h) ne 1);

파일 myinfo / '%emp.info%' /;
myinfo를 '평형'으로 설정;
넣다 / 'vi 소득 i';
putclose / 'max z p utilmul x objdef 이익 utillev dedp';

emp를 사용하여 스카프를 해결합니다.
매개변수 y(s) 생산;
y(s) = 이익.m(s);
y를 표시;