etamge.gms : 미국용 ETA-MACRO 무료 슬롯지 모델 - MPSGE 형식

설명

이것은 미국을 위한 무료 슬롯지 거시 경제 상호 작용 모델입니다.
스탠포드 대학의 A Manne 교수가 개발한 상태입니다.
(게임 라이브러리 모델 ETAMAC의 수정 버전입니다.)

대형 무료 슬롯 유형 :MPSGE mcp


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


메인 파일 : 무료 슬롯gms

$title 미국용 Eta-Macro 에너지 모델 - MPSGE 형식(ETAMGE,SEQ=144)

$onText
이는 미국의 에너지-거시 경제 상호작용 모델입니다.
스탠포드 대학의 A Manne 교수가 개발한 상태입니다.
(무료 슬롯 라이브러리 모델 ETAMAC의 수정 버전입니다.)

Manne, AS, ETA-MACRO: 에너지-경제 상호작용 모델.
In Hitch, CJ, Ed, 에너지-경제 상호 작용 모델링, 자원
미래를 위해. ?, 워싱턴 DC, 1977.

키워드: 혼합상보성 문제, 에너지경제학, 에너지정책,
          에너지기술, 계량경제학, 경제분석, 원자력발전소
$offText

*-----------------------------------------------
* 기간별 기간 및 연수 변경에 대한 참고사항입니다.

* 먼저 해당 기간인 세트 t를 입력해야 합니다.
* 사용됨.  t의 항목 사이의 연도 수는 nyper 값이어야 합니다.
* 기간별 연수를 선택해야 하며, 이는 필수입니다.
* 집합 t에 해당합니다. 기간당 연수를 변경해야 합니다.
* 나이퍼, 두 곳에서. nyper는 2보다 크거나 같아야 합니다.
*
* 베이스로부터의 연도를 포함하는 세트 단위도 입력해야 합니다.
* 첫 번째 연도 이전 연도.
*
* 사용 단위:
*
* 전기에너지 10**12kwh
* 비전기 에너지 10**15 btu
* 전기에너지 가격 $/(10**3kwh)
* 비전기 에너지 가격 $/(10**6 btu)
* 10**12$
*-----------------------------------------------

스칼라 나이퍼 '기간당 연수' / 5 /;

세트
   inityrs '첫 해 이전 연도' / 1985*1989 /
   bsyr '기준 연도'
   t '실제 기간' / 1990, 1995, 2000, 2005, 2010, 2015, 2020, 2025, 2030 /
   tfirst(t) '첫 번째 기간'
   tsecond(t) '두 번째 기간'
   tlast(t) '마지막 기간'
   nypset '1에서 nyper로 설정' / 1*5 /;

bsyr(inityrs) = yes$(ord(inityrs) = 1);
tfirst(t) = yes$(ord(t) = 1);
t초(t) = 예$(ord(t) = 2);
tlast(t) = yes$(ord(t) = 카드(t));

스칼라
   spda '조정 속도' / 0.96 /
   kpvs '자본 지분 매개변수' / 0.28 /
   elvs '전기 공유 매개변수' / 0.35 /
   esub 'k-l과 e-n 사이의 탄력성' / 0.45 /
   k0 '초기 자본금' / 10.90 /
   e0 '초기 전기에너지' / 2.50 /
   n0 '초기 비전기 에너지' / 50 /
   i0 '초기 투자' / 0.7 /
   c0 '초기 소비' / 3.2 /
   pe0 '전기에너지 초기가격' / 50 /
   pn0 '비전기에너지 초기가격' / 4.5 /
   pnref '비전기에너지 기준가격' / 3.0 /
   y0 '초기 출력'
   htrt0 '초기 열량'
   일'천' / 1000.0 /
   rho 'esub 빼기 1을 esub로 나눈 값'
   aconst '자본-노동 지수에 대한 상수'
   bconst '전기-비전기 에너지 지수에 대한 상수'
   ninit '첫 해 이전의 연수'
   tol '하한에 대한 공차 인자' / 0.3 /;

매개변수
   dfactcurr(t) '현재 연간 유틸리티 할인 요소'
   dfact(t) '공과금 할인 계수'
   성장(t) '잠재적인 연간 GNP 증가율'
   pegrow(t) '현재 전기요금 상승률'
   pelec(t) '전기요금 상승'
   pngrow(t) '비전력 가격의 현재 성장'
   pnelec(t) '비전력 가격 상승'
   l(t) '현재 노동력(효율성 단위)'
   ln(t) '새로운 노동력'
   ipm(t) '투자 기간 승수'
   htrt(t) '열량'
   '첫 번째 기간의 새로운 자본스톡'을 알고 있었습니다.

*-----------------------------------------------
* 다음 입력 요소는 각각 공과금 할인을 나타냅니다.
* (dfactcurr), 전기 및 비전기 에너지 비용의 증가(pelec 및
* pnelec) 및 잠재적인 gnp(성장).
dfactcurr(t) = 0.96;
페그로우(t) = 0.01;
pngrow(t) = 0.02;
성장(t) = 0.03;
htrt0 = 10.809;
htrt(t) = 10.809;
*-----------------------------------------------

ninit = 카드(inityrs);
rho = (esub - 1)/esub;
y0 = i0 + c0 + (e0*pe0 + n0*pn0)/thsnd;

bconst = (pnref/thsnd)*y0**(rho - 1)/((1 - elvs)*(e0**(rho*elvs))*(n0**(rho*(1 - elvs) - 1)));
aconst = (y0**rho - bconst*(e0**(rho*elvs))*(n0**(rho*(1 - elvs))))/(k0**(rho*kpvs));

* 다음 계산은 각 범위 내에서 투자 성장을 허용합니다.
* 기간 및 기하학적 붕괴에 대해서도 마찬가지입니다.
알고 = sum(tfirst, i0*(sum(inityrs, spda**(ord(inityrs) - 1)*(1 + 성장(tfirst))**(ninit - ord(inityrs)))));
ipm(t) = sum(nypset, spda**(ord(nypset) - 1)*(1 + 성장(t))**(nyper - ord(nypset)));

dfact(tfirst) = dfactcurr(tfirst)**ninit;
l(tfirst) = (1 + 성장(tfirst))**ninit;
ln(tfirst) = l(tfirst) - (spda**ninit);
pelec(tfirst) = pe0*((1 + pegrow(tfirst))**ninit);
pnelec(tfirst) = pn0*((1 + pngrow(tfirst))**ninit);

루프(t,
   dfact(t+1) = dfact(t)*dfactcurr(t+1)**nyper;
   l(t+1) = l(t)*(1 + 성장(t+1))**nyper;
   ln(t+1) = l(t+1) - l(t)*(spda**nyper);
   pelec(t+1) = pelec(t) *(1 + pegrow(t))**nyper;
   pnelec(t+1) = pnelec(t)*(1 + pngrow(t))**nyper;
);

dfact(tlast) = dfact(tlast)/(1 - dfactcurr(tlast));

ipm, kpvs, elvs, l, ln, rho, aconst, bconst, pelec, pnelec, Know를 표시합니다.

tn(t,t)를 설정합니다.

별칭(t,tp);
tn(t,t+1) = 예;

스칼라
   페레프 '전기 기준 가격'
   va0 '벤치마크 부가가치'
   pk0 '총자본수익률'
   l0 '기준 노동 소득';

peref = elvs*pnref*n0/(e0*(1 - elvs));
디스플레이 성능;

va0 = y0 - (e0*peref + n0*pnref)/thsnd;
pk0 = kpvs*va0/k0;
l0 = (1 - kpvs)*va0;

$onText
$MODEL:에타맥

$섹터:
   틴(티) ! 새로운 빈티지 생산
   와이(티) ! 총 생산량
   전자(티) ! 총 전기
   엔(티) ! 총 비전기성
   i(t)$(tlast(t)가 아님) ! 투자
   k(t)$(tfirst(t)가 아님) ! 총자본

$상품:
   PC(티) ! 현재 소비 가격
   파이(티)! 가격 총 생산량
   pln(t) ! 새로운 빈티지 노동력의 가격
   pkn(t) ! 가격 새로운 빈티지 캐피털
   pne(t) ! 가격 새로운 빈티지 전기
   pnn(t) ! 가격 새 빈티지 비전기식
   pk(t)$(tfirst(t)가 아님) ! 가격총자본

$소비자:
   라! 대표 대리인

$보고서:
   v:c(t) d:pc(t) 수요:ra
   v:en(t) i:pne(t) prod:yn(t)
   v:nn(t) i:pnn(t) prod:yn(t)

$PROD:yn(t) s:esub a:1 b:1
   o:py(t) q:1
   i:pln(t) q:(l0/y0) a:
   i:pkn(t) q:(k0/y0) p:pk0 a:
   i:pne(t) q:(e0/y0) p:(peref/thsnd) b:
   i:pnn(t) q:(n0/y0) p:(pnref/thsnd) b:

$PROD:y(t)
   o:pc(t) q:1
   o:py(tp)$tn(t,tp) q:(spda**nyper)
   i:py(t) q:1

$PROD:k(t)$(tfirst(t)가 아님)
   o:pk(t) q: 1
   i:pk(tp)$tn(t,tp) q:(spda**nyper)
   i:pc(t)$tlast(t) q:(grow(t) + 1 - spda)

$PROD:e(t)
   o:pne(t) q:1
   i:pc(t) q:(pelec(t)/thsnd)
   i:pne(tp)$tn(t,tp) q:(spda**nyper)

$PROD:n(t)
   o:pnn(t) q:1
   i:pc(t) q:(pnelec(t)/thsnd)
   i:pnn(tp)$tn(t,tp) q:(spda**nyper)

$PROD:i(t)$(tlast(t) 아님)
   o:pkn(tp)$tn(t,tp) q:ipm(t)
   i:pk(tp)$tn(t,tp) q:ipm(t)
   나는:pc(t)

$DEMAND:ra s:1
   e:pk(tsecond) q:(-(spda**nyper)*(k0*(spda**ninit) + 알고 있음))
   e:pkn(tfirst) q:knew
   e:pne(tfirst) q:(-e0*(spda**nyper)) ! 오류 - ninit이어야 합니다.
   e:pnn(tfirst) q:(-n0*(spda**nyper)) ! 오류 - ninit이어야 합니다.
   e:py(tfirst) q:(y0*spda**ninit)
   e:pln(t) q:(l0*ln(t))
   d:pc(t) q:c0 p:dfact(t)
$offText
$sysInclude mpsgeset ETAMAC

ra.fx = 카드(t)*c0;

$include ETAMAC.GEN
mcp를 사용하여 etamac을 해결합니다.

* 보고 목적으로 생략된 활동 수준을 설치합니다.
i.l(tlast) = k.l(tlast)*(grow(tlast) + (1 - spda));
k.l(tfirst) = k0*(spda**ninit) + 알고 있었습니다;

$sTitle 보고서 정의
매개변수
   valuerep 'c-i-gdp-e-en-tpe에 대한 보고서'
   Growthrep '성장률 보고서';

valuerep("con", bsyr) = c0;
valuerep("inv", bsyr) = i0;
valuerep("gdp", bsyr) = c0 + i0;
valuerep("elec", bsyr) = e0;
valuerep("nelec", bsyr) = n0;
valuerep("tpe", bsyr) = htrt0*e0 + n0;

valuerep("con", t) = c.l(t);
valuerep("inv", t) = i.l(t);
valuerep("gdp", t) = c.l(t) + i.l(t);
valuerep("elec", t) = e.l(t);
valuerep("nelec", t) = n.l(t);
valuerep("tpe", t) = htrt(t)*e.l(t) + n.l(t);

Growthrep("con", "'85-00") = 100*((c.l("2000")/c0)**(1/15) - 1);
Growthrep("inv", "'85-00") = 100*((i.l("2000")/i0)**(1/15) - 1);
Growthrep("gdp", "'85-00") = 100*(((c.l("2000") + i.l("2000"))/(c0 + i0))**(1/15) - 1);
Growthrep("elec", "'85-00") = 100*((e.l("2000")/e0)**(1/15) - 1);
Growthrep("nelec","'85-00") = 100*((n.l("2000")/n0)**(1/15) - 1);
Growthrep("tpe", "'85-00") = 100*(((htrt("2000")*e.l("2000") + n.l("2000"))/(htrt0*e0 + n0))**(1/15) - 1);
Growthrep("con", "'00-20") = 100*((c.l("2020")/c.l("2000"))**(1/20) - 1);
Growthrep("inv", "'00-20") = 100*((i.l("2020")/i.l("2000"))**(1/20) - 1);
Growthrep("gdp", "'00-20") = 100*(((c.l("2020") + i.l("2020"))/(c.l("2000") + i.l("2000")))**(1/20) - 1);
Growthrep("elec", "'00-20") = 100*((e.l("2020")/e.l("2000"))**(1/20) - 1);
Growthrep("nelec","'00-20") = 100*((n.l("2020")/n.l("2000"))**(1/20) - 1);
Growthrep("tpe", "'00-20") = 100*(((htrt("2020")*e.l("2020") + n.l("2020"))/(htrt("2000")*e.l("2000") + n.l("2000")))**(1/20) - 1);

valuerep, Growthrep 표시;