Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
rtol authored Oct 4, 2021
1 parent bfe4849 commit af7ffe2
Show file tree
Hide file tree
Showing 79 changed files with 964 additions and 0 deletions.
13 changes: 13 additions & 0 deletions CO2param.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
%CO2 parameters

CO2emitbau = CO2emit;
energyint = energy./outputobs;
emissint = CO2emit./energy;

AEEI = energyint(2010-StartYear+1,:)./energyint(1960-StartYear+1,:);
AEEI = AEEI.^(1/50);
ACEI = emissint(2010-StartYear+1,:)./emissint(1960-StartYear+1,:);
ACEI = ACEI.^(1/50);

AEEI = [0.98926539 0.98782002 0.99025746];
ACEI = [0.99594960 1.00029674 1.00979371];
6 changes: 6 additions & 0 deletions CobbDouglas.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
function Y = CobbDouglas(A,K,L,lambda)
%Y = CobbDouglas(A,K,L,lambda)
%
%computes output based on the Cobb-Douglas production function

Y = A.*K.^lambda.*L.^(1-lambda);
Binary file added MLIAM.mat
Binary file not shown.
13 changes: 13 additions & 0 deletions MLIAM01.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
%MLIAM01

clear all
load MLIAM
init01

for t=StartYear+1:EndYear,
i = t - StartYear + 1;
MRHbox(i,:) = MRH(MRHbox(i-1,:),CO2emit(i-1),MRHlife,MRHshare,CO2convert);
CO2conc(i) = sum(MRHbox(i,:));
RF(i) = RadForc(CO2conc(i),RF0,CO20);
[atmtemp(i) oceantemp(i)] = ST(atmtemp(i-1),oceantemp(i-1),RF(i),STpar);
end
Binary file added MLIAM01_calib.xlsx
Binary file not shown.
Binary file added MLIAM01_data.xlsx
Binary file not shown.
Binary file added MLIAM01_model.xlsx
Binary file not shown.
Binary file added MLIAM01_results.xlsx
Binary file not shown.
33 changes: 33 additions & 0 deletions MLIAM02.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
%MLIAM01

clear all
load MLIAM
init01
init02

for t=StartYear+1:EndYear,
i = t - StartYear + 1;
MRHbox(i,:) = MRH(MRHbox(i-1,:),CO2global(i-1),MRHlife,MRHshare,CO2convert);
CO2conc(i) = sum(MRHbox(i,:));
RF(i) = RadForc(CO2conc(i),RF0,CO20);
[atmtemp(i) oceantemp(i)] = ST(atmtemp(i-1),oceantemp(i-1),RF(i),STpar);
if t > 2010,
population(i,:) = population(i-1,:).*(1+popgrowth);
popgrowth= popdecline*popgrowth;
TFPgrowth= TFPdecline*TFPgrowth;
end
if t > 1960,
capital(i,:) = invest(capital(i-1,:),output(i-1,:),savings,depreciation);
TFP(i,:) = TFP(i-1,:).*(1+TFPgrowth);
end
if t >= 1960,
output(i,:) = CobbDouglas(TFP(i,:),capital(i,:),population(i,:),lambda);
end
if t > 2010,
energyint(i,:) = AEEI.*energyint(i-1,:);
emissint(i,:) = ACEI.*emissint(i-1,:);
energy(i,:) = energyint(i,:).*output(i,:);
CO2emit(i,:) = emissint(i,:).*energy(i,:);
CO2global(i) = CO2global(i-1)*sum(CO2emit(i,:))/sum(CO2emit(i-1,:));
end
end
Binary file added MLIAM02_data.xlsx
Binary file not shown.
Binary file added MLIAM02_model.xlsx
Binary file not shown.
Binary file added MLIAM02_results.xlsx
Binary file not shown.
59 changes: 59 additions & 0 deletions MLIAM03.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
%MLIAM01

clear all
load MLIAM
init01
init02
init03

for t=StartYear+1:EndYear,
i = t - StartYear + 1;
MRHbox(i,:) = MRH(MRHbox(i-1,:),CO2global(i-1),MRHlife,MRHshare,CO2convert);
CO2conc(i) = sum(MRHbox(i,:));
RF(i) = RadForc(CO2conc(i),RF0,CO20);
[atmtemp(i) oceantemp(i)] = ST(atmtemp(i-1),oceantemp(i-1),RF(i),STpar);
if t > 2010,
population(i,:) = population(i-1,:).*(1+popgrowth);
popgrowth= popdecline*popgrowth;
TFPgrowth= TFPdecline*TFPgrowth;
end
if t > 1960,
capital(i,:) = invest(capital(i-1,:),output(i-1,:),savings,depreciation);
TFP(i,:) = TFP(i-1,:).*(1+TFPgrowth);
end
if t >= 1960,
output(i,:) = CobbDouglas(TFP(i,:),capital(i,:),population(i,:),lambda).*(1-relabcost(i-1,:));
consumption(i,:) = (1-savings)*output(i,:);
end

if t == 2015,
emred(i,1) = 0.05;
for j = 2:NReg,
emred(i,j) = emred(i,1)*unitabcost(1)/unitabcost(j)*output(i-1,1)/output(i-1,j)*CO2emit(i-1,j)/CO2emit(i-1,1);
end
end

if t > 2015,
emred(i,1) = min(0.99,emred(i-1,1)*(1+globalDR(i-1)));
for j = 2:NReg,
emred(i,j) = min(0.99,emred(i,1)*unitabcost(1)/unitabcost(j)*output(i-1,1)/output(i-1,j)*CO2emit(i-1,j)/CO2emit(i-1,1));
end
end

if t > 2010,
energyint(i,:) = AEEI.*energyint(i-1,:);
emissint(i,:) = ACEI.*emissint(i-1,:);
energy(i,:) = energyint(i,:).*output(i,:);
CO2emit(i,:) = emissint(i,:).*energy(i,:).*(1-emred(i,:));
CO2global(i) = CO2global(i-1)*sum(CO2emit(i,:))/sum(CO2emit(i-1,:));

discountrate(i,:) = PRTP + RRA*(consumption(i,:)./consumption(i-1,:)-1);
globalDR(i) = PRTP + RRA*(sum(consumption(i,:))/sum(consumption(i-1,:))-1);
end

if t > 2015
relabcost(i,:) = unitabcost.*emred(i,:).^2;
totabcost(i,:) = relabcost(i,:).*output(i,:);
margabcost(i,:) = 2*unitabcost.*emred(i,:).*output(i,:)./CO2emit(i,:)*1000;
end
end
Binary file added MLIAM03_data.xlsx
Binary file not shown.
Binary file added MLIAM03_model.xlsx
Binary file not shown.
Binary file added MLIAM03_results.xlsx
Binary file not shown.
73 changes: 73 additions & 0 deletions MLIAM04.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
%MLIAM01

clear all
load MLIAM
init01
init02
init03
init04

for t=StartYear+1:EndYear,
i = t - StartYear + 1;
MRHbox(i,:) = MRH(MRHbox(i-1,:),CO2global(i-1),MRHlife,MRHshare,CO2convert);
CO2conc(i) = sum(MRHbox(i,:));
RF(i) = RadForc(CO2conc(i),RF0,CO20);
[atmtemp(i) oceantemp(i)] = ST(atmtemp(i-1),oceantemp(i-1),RF(i),STpar);
if t > 2010,
population(i,:) = population(i-1,:).*(1+popgrowth);
popgrowth= popdecline*popgrowth;
TFPgrowth= TFPdecline*TFPgrowth;
end
if t > 1960,
capital(i,:) = invest(capital(i-1,:),output(i-1,:),savings,depreciation);
TFP(i,:) = TFP(i-1,:).*(1+TFPgrowth);
end
if t >= 1960,
output(i,:) = CobbDouglas(TFP(i,:),capital(i,:),population(i,:),lambda).*(1-relabcost(i-1,:));
consumption(i,:) = (1-savings)*output(i,:);
end

%first best tax, period 1
%if t == 2015,
% emred(i,1) = 0.05;
% for j = 2:NReg,
% emred(i,j) = emred(i,1)*unitabcost(1)/unitabcost(j)*output(i-1,1)/output(i-1,j)*CO2emit(i-1,j)/CO2emit(i-1,1);
% end
%end

%first best tax, later periods
%if t > 2015,
% emred(i,1) = min(0.99,emred(i-1,1)*(1+globalDR(i-1)));
% for j = 2:NReg,
% emred(i,j) = min(0.99,emred(i,1)*unitabcost(1)/unitabcost(j)*output(i-1,1)/output(i-1,j)*CO2emit(i-1,j)/CO2emit(i-1,1));
% end
%end

if t >= 2015,

end

if t > 2010,
energyint(i,:) = AEEI.*energyint(i-1,:);
emissint(i,:) = ACEI.*emissint(i-1,:);
energy(i,:) = energyint(i,:).*output(i,:);
CO2emitbau(i,:) = emissint(i,:).*energy(i,:);

%permit trade
permitprice(i) = 1000*emitalloc(i,:)*CO2emitbau(i,:)'/sum(0.5*CO2emitbau(i,:).^2./unitabcost./output(i,:));
emred(i,:) = 0.5*0.001*permitprice(i)*CO2emitbau(i,:)./unitabcost./output(i,:);
permittrade(i,:) = (emitalloc(i,:)-emred(i,:)).*CO2emitbau(i,:);

CO2emit(i,:) = CO2emitbau(i,:).*(1-emred(i,:));
CO2global(i) = CO2global(i-1)*sum(CO2emit(i,:))/sum(CO2emit(i-1,:));

discountrate(i,:) = PRTP + RRA*(consumption(i,:)./consumption(i-1,:)-1);
globalDR(i) = PRTP + RRA*(sum(consumption(i,:))/sum(consumption(i-1,:))-1);
end

if t > 2015
relabcost(i,:) = unitabcost.*emred(i,:).^2 + 0.001*permitprice(i)*permittrade(i,:)./output(i,:);
totabcost(i,:) = relabcost(i,:).*output(i,:);
margabcost(i,:) = 2*unitabcost.*emred(i,:).*output(i,:)./CO2emit(i,:)*1000;
end
end
Binary file added MLIAM04_data.xlsx
Binary file not shown.
Binary file added MLIAM04_model.xlsx
Binary file not shown.
Binary file added MLIAM04_results.xlsx
Binary file not shown.
73 changes: 73 additions & 0 deletions MLIAM05.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
%MLIAM05

init01
init02
init03
init04
init05
init06
init07

for t=StartYear+1:EndYear,
i = t - StartYear + 1;
MRHbox(i,:) = MRH(MRHbox(i-1,:),CO2global(i-1),MRHlife,MRHshare,CO2convert);
CO2conc(i) = sum(MRHbox(i,:));
RF(i) = RadForc(CO2conc(i),RF0,CO20);
[atmtemp(i) oceantemp(i)] = ST(atmtemp(i-1),oceantemp(i-1),RF(i),STpar);
impact(i,:) = impactcc(atmtemp(i),impactpar,0,1,1);
if t > 2010,
population(i,:) = population(i-1,:).*(1+popgrowth);
popgrowth= popdecline*popgrowth;
TFPgrowth= TFPdecline*TFPgrowth;
end
if t > 1960,
capital(i,:) = invest(capital(i-1,:),output(i-1,:),savings,depreciation);
TFP(i,:) = TFP(i-1,:).*(1+TFPgrowth);
end
if t >= 1960,
output(i,:) = max(0.3*population(i,:),CobbDouglas(TFP(i,:),capital(i,:),population(i,:),lambda).*(1-relabcost(i-1,:)+impact(i-1,:)/100));
outputpc(i,:) = output(i,:)./population(i,:)*1000;
consumption(i,:) = (1-savings)*output(i,:);
impact(i,:) = impactcc(atmtemp(i),impactpar,impelas,outputpc(i,:),outputpc2010);
end

%first best tax, period 1
if t == 2015,
emred(i,1) = 0.0;
for j = 2:NReg,
emred(i,j) = emred(i,1)*unitabcost(1)/unitabcost(j)*output(i-1,1)/output(i-1,j)*CO2emit(i-1,j)/CO2emit(i-1,1);
end
end

%first best tax, later periods
if t > 2015,
emred(i,1) = min(0.99,emred(i-1,1)*(1+globalDR(i-1)));
for j = 2:NReg,
emred(i,j) = min(0.99,emred(i,1)*unitabcost(1)/unitabcost(j)*output(i-1,1)/output(i-1,j)*CO2emit(i-1,j)/CO2emit(i-1,1));
end
end

if t > 2010,
energyint(i,:) = AEEI.*energyint(i-1,:);
emissint(i,:) = ACEI.*emissint(i-1,:);
energy(i,:) = energyint(i,:).*output(i,:);
CO2emitbau(i,:) = emissint(i,:).*energy(i,:);

%permit trade
%permitprice(i) = 1000*emitalloc(i,:)*CO2emitbau(i,:)'/sum(0.5*CO2emitbau(i,:).^2./unitabcost./output(i,:));
%emred(i,:) = 0.5*0.001*permitprice(i)*CO2emitbau(i,:)./unitabcost./output(i,:);
%permittrade(i,:) = (emitalloc(i,:)-emred(i,:)).*CO2emitbau(i,:);

CO2emit(i,:) = CO2emitbau(i,:).*(1-emred(i,:));
CO2global(i) = CO2global(i-1)*sum(CO2emit(i,:))/sum(CO2emit(i-1,:)) + perturbation(i);

discountrate(i,:) = PRTP + RRA*(consumption(i,:)./consumption(i-1,:)-1);
globalDR(i) = PRTP + RRA*(sum(consumption(i,:))/sum(consumption(i-1,:))-1);
end

if t > 2015
relabcost(i,:) = unitabcost.*emred(i,:).^2 + 0.001*permitprice(i)*permittrade(i,:)./output(i,:);
totabcost(i,:) = relabcost(i,:).*output(i,:);
margabcost(i,:) = 2*unitabcost.*emred(i,:).*output(i,:)./CO2emit(i,:)*1000;
end
end
Binary file added MLIAM05_calib.xlsx
Binary file not shown.
Binary file added MLIAM05_data.xlsx
Binary file not shown.
Binary file added MLIAM05_model.xlsx
Binary file not shown.
Binary file added MLIAM05_results.xlsx
Binary file not shown.
29 changes: 29 additions & 0 deletions MLIAM06.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
%MLIAM06

clear all
load MLIAM
perturb = zeros(551,1); %note the fragility
MLIAM05
output0 = output;
CO2conc0 = CO2conc;
atmtemp1 = atmtemp;
impact0 = impact;
dr0 = discountrate;
perturb(266) = 1;
MLIAM05

discountfactor = zeros(NYear,NReg);
for i=1:NReg,
discountfactor(266,i) = 1;
end
for i=267:NYear,
discountfactor(i,:) = discountfactor(i-1,:)./(1+dr0(i-1,:));
end

addrelimp = impact0 - impact;
addabsimp = addrelimp.*output/100;
SCC = discountfactor.*addabsimp;
SCC = 1000*sum(SCC);
globalSCC = sum(SCC);


Binary file added MLIAM06_data.xlsx
Binary file not shown.
Binary file added MLIAM06_model.xlsx
Binary file not shown.
Binary file added MLIAM06_results.xlsx
Binary file not shown.
Binary file added MLIAM07_data.xlsx
Binary file not shown.
Binary file added MLIAM07_model.xlsx
Binary file not shown.
Binary file added MLIAM07_results.xlsx
Binary file not shown.
11 changes: 11 additions & 0 deletions MLIAM08.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
%MLIAM08

clear all

ctax0 = 0;
NPV0 = -fMLIAM08(ctax0);

options = optimset('MaxFunEvals',1000,'MaxIter',1000);
ctax1 = fminsearch(@(ctax) fMLIAM08(ctax), ctax0, options);

NPV1 = -fMLIAM08(ctax1);
Binary file added MLIAM08_data.xlsx
Binary file not shown.
Binary file added MLIAM08_model.xlsx
Binary file not shown.
Binary file added MLIAM08_results.xlsx
Binary file not shown.
35 changes: 35 additions & 0 deletions MLIAM09.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
%MLIAM06

clear all
load MLIAM
perturb = zeros(551,1); %note the fragility
MLIAM05
output0 = output;
CO2conc0 = CO2conc;
atmtemp1 = atmtemp;
impact0 = impact;
dr0 = discountrate;
perturb(266) = 1;
MLIAM05

discountfactor = zeros(NYear,NReg);
for i=1:NReg,
discountfactor(266,i) = 1;
end
for i=267:NYear,
discountfactor(i,:) = discountfactor(i-1,:)./(1+dr0(i-1,:));
end

addrelimp = impact0 - impact;
addabsimp = addrelimp.*output/100;
SCC= discountfactor.*addabsimp;
SCC = 1000*sum(SCC)

globaveinc = sum(output(266,:))/sum(population(266,:));
equityweight = output(266,:)./population(266,:);
equityweight = equityweight/globaveinc;
equityweight = equityweight.^RRA;

globalSCC = equityweight*SCC';


Binary file added MLIAM09_data.xlsx
Binary file not shown.
Binary file added MLIAM09_model.xlsx
Binary file not shown.
Binary file added MLIAM09_results.xlsx
Binary file not shown.
15 changes: 15 additions & 0 deletions MLIAM10.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
%MLIAM10

clear all

ctax0 = [0 0 0 0];

cs = [3.0 3.0 3.0; 0.25 0.50 0.25]; %exercise 1
%cs = [1.5 3.0 4.5; 0.25 0.50 0.25]; %exercises 2 and 3

NPV0 = -fMLIAM10(ctax0,cs);

options = optimset('MaxFunEvals',1000,'MaxIter',1000);
ctax1 = fminsearch(@(ctax) fMLIAM10(ctax,cs), ctax0, options);

NPV1 = -fMLIAM10(ctax1,cs);
Binary file added MLIAM10det_model.xlsx
Binary file not shown.
Binary file added MLIAM10det_results.xlsx
Binary file not shown.
Binary file added MLIAM10learn_model.xlsx
Binary file not shown.
Binary file added MLIAM10learn_results.xlsx
Binary file not shown.
Binary file added MLIAM10unc_model.xlsx
Binary file not shown.
Binary file added MLIAM10unc_results.xlsx
Binary file not shown.
Loading

0 comments on commit af7ffe2

Please sign in to comment.