19if__name__ ==
"__main__":
22 fromgams.magic
가져오기GamsInteractive
23gams = GamsInteractive()
27# 이것은 DICE-2016R의 베타 버전입니다. 주요 변경 사항은 Nordhaus에 설명되어 있습니다.
28# 탄소의 사회적 비용 재검토: DICE-2016R 모델 추정,"
29# 2016년 9월 30일," 저자가 제공함.
31# 버전은 DICE-2016R-091916ap.gms입니다.
33# DICE-2016R 2016년 9월(DICE-2016R-091216a.gms에서 수정됨)
36t '기간(기간당 5년)' / 1*100 / ; 설정
40fosslim '최대 누적 추출 화석 연료(GtC)' / 6000 /
44ipopt '최적화가 1이고 밑이 0인 표시기' / 0 /
46elasmu '소비의 한계효용 탄력성' / 1.45 /
47prstp '연간 사회적 시간 선호의 초기 비율' / .015 /
49gama '생산함수의 자본 탄력성' / .300 /
50pop0 '2015년 초기 세계 인구(백만)' / 7403 /
51popadj '2050년 팝 전망에 맞춰 조정되는 성장률' / 0.134 /
52popasym '점근적 인구(수백만)' / 11500 /
53dk '자본 감가상각률(연간)' / .100 /
54q0 '2015년 초기 세계 총생산(트릴 2010 USD)' / 105.5 /
55k0 '초기 자본 가치 2015(트릴 2010 USD)' / 223 /
56a0 '총요소 생산성의 초기 수준' / 5.115 /
57ga0 '5년당 TFP의 초기 성장률' / 0.076 /
58dela '5년당 TFP 감소율' / 0.005 /
60gsigma1 '시그마의 초기 성장(연간)' / -0.0152 /
61dsig '탈탄소화 감소율(기간당)' / -0.001 /
62eland0 '2015년 육상 탄소 배출량(연간 GtCO2)' / 2.6 /
63deland '토지 배출 감소율(기간당)' / .115 /
64e0 '2015년 산업 배출량(연간 GtCO2)' / 35.85 /
65miu0 '기본 사례 2015의 초기 배출 제어율' / .03 /
68mat0 '초기 대기 농도 2015(GtC)' / 851 /
69mu0 '상층 초기 농도 2015(GtC)' / 460 /
70ml0 '하층 초기 농도 2015(GtC)' / 1740 /
71mateq '평형농도분위기(GtC)' / 588 /
72mueq '상층부 평형 농도(GtC)' / 360 /
73mleq '하층의 평형 농도(GtC)' / 1720 /
75b12 '탄소 순환 전이 행렬' / .12 /
76b23 '탄소 순환 전이 행렬' / 0.007 /
83sig0 '탄소 집약도 2010 (출력당 kgCO2 2005 USD 2010)'
85t2xco2 '평형 온도 영향(CO2 두 배당 oC)' / 3.1 /
86fex0 '2015년 비CO2 온실가스 강제력(Wm-2)' / 0.5 /
87fex1 '2100 비CO2 GHG 강제력(Wm-2)' / 1.0 /
88tocean0 '초기 하부 지층 온도 변화(1900년부터 C)' / .0068 /
89tatm0 '초기 대기 온도 변화(1900년부터 C)' / 0.85 /
90c1 '상위층의 기후방정식 계수' / 0.1005 /
91c3 '상부 지층에서 하부 지층으로의 전달 계수' / 0.088 /
92c4 '하위 레벨의 전달 계수' / 0.025 /
93fco22x '평형 CO2 배가 강제력(Wm-2)' / 3.6813 /
98a2 '손상 2차 항' / 0.00236 /
101expcost2 '제어 비용 함수의 지수' / 2.6 /
102pback '백스톱 비용 2010$/tCO2 2015' / 550 /
103gback '초기 비용 감소 기간당 백스톱 비용' / .025 /
104limmiu '2150년 이후 제어율 상한' / 1.2 /
105tnopol '배출을 통제하지 않는 기간' / 45 /
106cprice0 '초기 기본 탄소 가격(2010년 tCO2당 $)' / 2 /
107gcprice '연간 기본 탄소 가격 증가율' / .02 /
110# 이는 계산에 필요하지 않음에 유의하십시오.
111# 첫 번째 기간 소비의 MU 무료 슬롯 게임이고 PV cons = PV 유틸리티임을 보장합니다.
112scale1 '곱셈적 스케일링 계수' / 0.0302455265681763 /
113scale2 '추가 스케일링 계수' / -10993.704 /
117tfirst(t), tlast(t), tealy(t), tlate(t) 설정 ;
121무료 슬롯 게임(t) '총요소생산성 수준'
122sigma(t) 'CO2 환산 배출량 출력 비율'
123rr(t) '평균 유틸리티 사회적 할인율'
125forcoth(t) '기타 온실가스에 대한 외인성 강제력'
128gsig(t) '시그마 변화(에너지 효율 누적 개선)'
129etree(t) '삼림 벌채로 인한 배출'
133gfacpop(t) '성장 인자 모집단'
135optlrsav '횡단성에 사용되는 최적의 장기 저축률'
137cpricebase(t) '기본 사례의 탄소 가격'
138photel(t) '손해 없는 탄소 가격(호텔 임대 조건)'
140atfrac(t) '1850년 이후 대기 점유율'
141atfrac2010(t) '2010년 이후 대기 점유율'
145tfirst(t) = yes$(t.val eq 1);
146tlast(t) = yes$(t.val eq 카드(t));
147# 탄소 순환의 장기적 일관성을 위한 매개변수
150b22 무료 슬롯 게임 - b21 - b23;
155sig0 = e0/(q0*(1-miu0));
158loop(t, l(t+1)=l(t););
159loop(t, l(t+1)=l(t)*(popasym/L(t))**popadj ;);
161ga(t) = ga0*exp(-dela*5*((t.val-1)));
162무료 슬롯 게임("1") = a0; 루프(t, 무료 슬롯 게임(t+1)=무료 슬롯 게임(t)/((1-ga(t))););
163gsig("1") = gsigma1; loop(t,gsig(t+1)=gsig(t)*((1+dsig)**tstep) ;);
164시그마("1") = sig0; loop(t,sigma(t+1)=(sigma(t)*exp(gsig(t)*tstep)););
166pbacktime(t) = pback*(1-gback)**(t.val-1);
167cost1(t) = pbacktime(t)*sigma(t)/expcost2/1000;
169etree(t) = eland0*(1-deland)**(t.val-1);
170cumetree("1") 무료 슬롯 게임00; loop(t,cumetree(t+1)=cumetree(t)+etree(t)*(5/3.666););
172rr(t) 무료 슬롯 게임/((1+prstp)**(tstep*(t.val-1)));
173forcoth(t) = fex0+ (1/17)*(fex1-fex0)*(t.val-1)$(t.val lt 18) + (fex1-fex0)$(t.val ge 18);
174optlrsav = (dk + .004)/(dk + .004*elasmu + prstp)*gama;
177cpricebase(t) = cprise0*(1+gcprice)**(5*(t.val-1));
182FORC(t) '복사강제력의 증가(1900년부터 m2당 와트)'
183TATM(t) '대기 온도 증가(1900년부터 섭씨 온도)'
184TOCEAN(t) '하층 해양 온도 증가(1900년부터 섭씨 온도)'
185MAT(t) '대기 중 탄소 농도 증가(1750년의 GtC)'
186MU(t) '얕은 바다의 탄소 농도 증가(1750년부터 GtC)'
187ML(t) '하층 해양의 탄소 농도 증가(1750년부터 GtC)'
188E(t) '총 CO2 배출량(연간 GtCO2)'
189EIND(t) '산업 배출량(연간 GtCO2)'
190C(t) '소비(연간 2005년 미국 달러 수조)'
191K(t) '자본스톡(조 달러, 2005년 미국 달러)'
192CPC(t) '자본당 소비(연간 수천 2005 USD)'
193I(t) '투자(연간 2005년 수조 달러)'
194S(t) '세계 총생산 대비 총 저축률'
196Y(t) '감소 및 피해를 제외한 세계 총생산(연간 2005 USD 조)'
197YGROSS(t) '경감 및 피해의 세계 총생산(GROSS)(연간 수조 2005 USD)'
198YNET(t) '순손해 방정식의 산출량(연간 2005년 USD 수조)'
199DAMAGES(t) '손해(연간 2005 USD 조)'
200DAMFRAC(t) '총 생산량에 대한 피해 비율'
201ABATECOST(t) '배출 감소 비용(연간 2005 USD 조)'
202MCABATE(t) '한계 저감 비용(CO2 톤당 2005$)'
203CCA(t) '누적 산업 탄소 배출량(GTC)'
204CCATOT(t) '총 탄소 배출량(GtC)'
206CPRICE(t) '탄소 가격(CO2 톤당 2005$)'
211음수가 아닌 변수 MIU, TATM, MAT, MU, ML, Y, YGROSS, C, K, I ;
218CCACCA(t) '누적 산업 탄소 배출량'
219CCATOTEQ(t) '누적 총 탄소 배출량'
221DAMFRACEQ(t) '손상률 방정식'
223ABATEEQ(t) '배출 감소 비용 방정식'
224MCABATEEQ(t) 'MC 감소 방정식'
225CARBPRICEEQ(t) '감소로 인한 탄소 가격 방정식'
231TATMEQ(t) '대기에 대한 온도-기후 방정식'
232TOCEANEQ(t) '저해양에 대한 온도-기후 방정식'
235YGROSSEQ(t) '총계 방정식 출력'
236YNETEQ(t) '순손해 방정식 출력'
245CEMUTOTPEREQ(t) '기간 효용'
246PERIODUEQ(t) '순시 효용 함수 방정식'
252eeq(t).. E(t) =E= EIND(t) + etree(t);
253eindeq(t).. EIND(t) =E= 시그마(t) * YGROSS(t) * (1-(MIU(t)));
254ccacca(t+1).. CCA(t+1) =E= CCA(t) + EIND(t)*5/3.666;
255ccatoteq(t).. CCATOT(t) =E= CCA(t) + cumetree(t);
256force(t).. FORC(t) =E= fco22x * ((log((MAT(t)/588.000))/log(2))) + forcoth(t);
257damfraceq(t) .. DAMFRAC(t) =E= (a1*TATM(t)) + (a2*TATM(t)**a3) ;
258dameq(t).. 피해(t) =E= YGROSS(t) * DAMFRAC(t);
259abateeq(t).. ABATECOST(t) =E= YGROSS(t) * 비용1(t) * (MIU(t)**expcost2);
260mcabateeq(t).. MCABATE(t) =E= pbacktime(t) * MIU(t)**(expcost2-1);
261carbpriceeq(t).. CPRICE(t) =E= pbacktime(t) * (MIU(t))**(expcost2-1);
264mmat(t+1).. MAT(t+1) =E= MAT(t)*b11 + MU(t)*b21 + (E(t)*(5/3.666));
265mml(t+1).. ML(t+1) =E= ML(t) *b33 + MU(t)*b23;
266mmu(t+1).. MU(t+1) =E= MAT(t)*b12 + MU(t)*b22 + ML(t)*b32;
267tatmeq(t+1).. TATM(t+1) =E= TATM(t) + c1*((FORC(t+1)-(fco22x/t2xco2)*TATM(t))-(c3*(TATM(t)-TOCEAN(t))));
268toceaneq(t+1).. TOCEAN(t+1) =E= TOCEAN(t) + c4*(TATM(t)-TOCEAN(t));
271ygrosseq(t).. YGROSS(t) =E= (무료 슬롯 게임(t)*(L(t)/1000)**(1-GAMA))*(K(t)**GAMA);
272yneteq(t).. YNET(t) =E= YGROSS(t)*(1-damfrac(t));
273yy(t).. Y(t) =E= YNET(t) - ABATECOST(t);
274cc(t).. C(t) =E= Y(t) - I(t);
275cpce(t).. CPC(t) =E무료 슬롯 게임000 * C(t) / L(t);
276seq(t).. I(t) =E= S(t) * Y(t);
277kk(t+1).. K(t+1) =L= (1-dk)**tstep * K(t) + tstep * I(t);
278rieq(t+1).. RI(t) =E= (1+prstp) * (CPC(t+1)/CPC(t))**(elasmu/tstep) - 1;
281cemutotpereq(t).. CEMUTOTPER(t) =E= PERIODU(t) * L(t) * rr(t);
282기간q(t).. PERIODU(t) =E= ((C(T)*1000/L(T))**(1-elasmu)-1)/(1-elasmu)-1;
283util.. UTILITY =E= tstep * scale1 * sum(t, CEMUTOTPER(t)) + scale2;
291MIU.up(t)$(t.val<30) 무료 슬롯 게임;
307lag10(t) = yes$(t.val gt 카드(t)-10);
308S.FX(lag10(t)) = optlrsav;
313MAT.FX(tfirst) = mat0;
316TATM.FX(tfirst) = tatm0;
317TOCEAN.FX(tfirst) = tocean0;
326nlp를 사용하여 UTILITY를 극대화하는 CO2 해결;''')
330m = gams.exchange_container
332 ford
에[
'TATM',
'RI',
'EIND',
'CPRICE']:
333결과[d] = pd.DataFrame(열=[
'선택',
'바스'])
334결과[d][
'선택'] = m[d].records[
'레벨'].copy()
338# 기본 실행의 경우 이 서브루틴은 호텔 임대료를 계산합니다.
339# 탄소 가격은 호텔 임대료 또는 기준 가격의 최대값입니다
340# 가격 방정식이 2013R과 다릅니다. 무엇이 잘못되었는지 잘 모르겠습니다.
341옵션 bRatio 무료 슬롯 게임; MIU.LO('1') = 0; MIU.UP('1') = inf; # 선택 실행 및 폐기 기준에서 수정 재설정
343nlp를 사용하여 UTILITY를 극대화하는 CO2 해결;
346CPRICE.UP(t)$(t.val<tnopol+1) = max(photel(t),cpricebase(t));
348nlp를 사용하여 UTILITY를 극대화하여 CO2를 해결합니다.''')
355tstep = int(m[
't단계'].toValue())
356l = [ 2010 + t단계*n
용n
에범위(len(m[
''].records))]
357 용d
에[
'TATM',
'RI',
'EIND',
'CPRICE']:
358결과[d][
'바스'] = m[d].records[
'레벨'].copy()
360결과[d].set_index(pd.Index(l[:len(m[d].records[
'레벨'])]), 내부=
사실입니다)
375# 탄소 및 기타 변수의 사회적 비용 계산
376scc(t) = -1000*eeq.m(t)/(.00001+cc.m(t));
377atfrac(t) = ((MAT.L(t)-588)/(CCATOT.L(t)+.000001 ));
378atfrac2010(t) = ((MAT.L(t)-mat0)/(.00001+CCATOT.L(t)-CCATOT.L('1') ));
379ppm(t) = MAT.L(t)/2.13;
382무료 슬롯 게임("연간 산업 배출량 GTCO2", t) = EIND.L(t);
383무료 슬롯 게임("대기 농도 C(ppm)", t) = MAT.L(t)/2.13;
384무료 슬롯 게임("대기 온도", t) = TATM.L(t);
385무료 슬롯 게임("순 출력 순)", t) = Y.L(t);
386무료 슬롯 게임("기후 피해 비율 출력", t) = DAMFRAC.L(t);
387무료 슬롯 게임("1인당 소비량", t) = CPC.L(t);
388무료 슬롯 게임("탄소 가격(CO2 t당)", t) = CPRICE.L(t);
389무료 슬롯 게임("배출 제어율", t) = MIU.L(t);
390무료 슬롯 게임("탄소의 사회적 비용", t) = scc(t);
391무료 슬롯 게임("이자율", t) = RI.L(t);
392무료 슬롯 게임("인구", t) = l(t);
393무료 슬롯 게임("TFP", t) = al(t);
394무료 슬롯 게임("총생산량,총생산량", t) = YGROSS.L(t);
395무료 슬롯 게임("tfp 변경", t) = ga(t);
396무료 슬롯 게임("수도", t) = K.L(t);
397무료 슬롯 게임("s", t) = S.L(t);
398무료 슬롯 게임("나", t) = I.L(t);
399무료 슬롯 게임("Y 총 순액", t) = YNET.L(t);
400무료 슬롯 게임("손상", t) = DAMAGES.L(t);
401무료 슬롯 게임("damfrac", t) = DAMFRAC.L(t);
402무료 슬롯 게임("감소", t) = ABATECOST.L(t);
403무료 슬롯 게임("시그마", t) = 시그마(t);
404무료 슬롯 게임("강제", t) = FORC.L(t);
405무료 슬롯 게임("기타 강제력", t) = forcoth(t);
406무료 슬롯 게임("기간 유틸리티", t) = PERIODU.L(t);
407무료 슬롯 게임("소비", t) = C.L(t);
408무료 슬롯 게임("토지 배출", t) = etree(t);
409무료 슬롯 게임("누적 ind 배출량", t) = CCA.L(t);
410무료 슬롯 게임("누적 총 배출량", t) = CCATOT.L(t);
411무료 슬롯 게임("대기 농도 Gt", t) = MAT.L(t);
412무료 슬롯 게임("대기 농도ppm",t) =ppm(t);
413무료 슬롯 게임("연간 총 배출량 GTCO2", t) = E.L(t);
414무료 슬롯 게임("대기 농도 상한", t) = MU.L(t);
415무료 슬롯 게임("대기 농도가 낮아짐", t) = ML.L(t);
416무료 슬롯 게임("1850년 이후 대기 비율", t) = atfrac(t);
417무료 슬롯 게임("2010년 이후 대기 비율", t) = atfrac2010(t);''')
422무료 슬롯 게임 = copy.deepcopy(m[
'대표'])
423무료 슬롯 게임records[
''] = 담당자.기록[
''].map(s:2010+tstep*int(s)
fors
inm[
''].기록[
'유니']})
424인쇄(무료 슬롯 게임pivot(index=
'', 열=
'유니'))
427gams.gams_cleanup(closedown=
참)