$TITLE: M81 Infinite horizon dynamic model SETS T /1*25/; PARAMETERS DELTA RHO PV TERM RTERM INITK R(T) D(T) PVUTIL TLAST(T) TFIRST(T) SOLUTION(T,*) CONSUME(T) INVEST(T) KSTOCK(T); RHO = 0.2; DELTA = 0.1; INITK = 90; TERM = CARD(T); RTERM = (1/(1+RHO))**(CARD(T) - 1);; R(T) = (1/(1+RHO))**(ORD(T)-1); D(T) = (1-DELTA)**(ORD(T) - 1); PV = 200*SUM(T, R(T)) + 90*(4*RTERM/(1+RHO)); TLAST(T) = 0; TLAST('25') = 1; TFIRST('1') = 1; $ONTEXT $MODEL: BASIC $SECTORS: X(T) I(T) K(T) U $COMMODITIES: CX(T) CR(T) CK(T) CL(T) CKT CU HEAVEN $CONSUMERS: CONS DUMMY $AUXILIARY: TRANS $PROD:K(T) O:CK(T+1) Q:(100*(1-DELTA)) P:(4*R(T+1)) O:CKT$TLAST(T) Q:(100*(1-DELTA)) P:(4*R(T)/(1+RHO)) O:CR(T) Q:100 P:(R(T)) I:CK(T) Q:100 P:(4*R(T)) $PROD:I(T) O:CK(T) Q:10 I:CL(T) Q:40 $PROD:X(T) s:1 O:CX(T) Q:200 I:CL(T) Q:100 I:CR(T) Q:100 $PROD:U s:1 a:2 O:CU Q:PV I:CX(T) Q:200 P:R(T) a: I:HEAVEN Q:90 P:(4*RTERM/(1+RHO)) A:CONS N:TRANS $DEMAND:CONS D:CU Q:PV E:CL(T) Q:140 E:CK(T)$TFIRST(T) Q:INITK $DEMAND:DUMMY D:CKT Q:90 E:HEAVEN Q:90 $CONSTRAINT: TRANS CR('25') =E= (1 - (1-DELTA)/(1+RHO))*CL('25')*4; $OFFTEXT $SYSINCLUDE MPSGESET BASIC TRANS.UP = +INF; TRANS.LO = -INF; CX.L(T) = R(T); CL.L(T) = R(T); CR.L(T) = R(T); CK.L(T) = 4*R(T); CKT.L = 4*R('25')/(1+RHO); HEAVEN.L = 4*R('25')/(1+RHO); TRANS.L = 0; *BASIC.ITERLIM = 0; $INCLUDE BASIC.GEN SOLVE BASIC USING MCP; PVUTIL = SUM(T, X.L(T)*R(T)) + (X.L('25')*R('25'))/RHO; DISPLAY PVUTIL; CONSUME(T) = X.L(T); INVEST(T) = I.L(T); KSTOCK(T) = K.L(T); SOLUTION(T,"X") = X.L(T); SOLUTION(T,"I") = I.L(T); SOLUTION(T,"K") = K.L(T); $LIBINCLUDE XLDUMP SOLUTION sOL2.xls SHEET1!A2 INITK = 30; $INCLUDE BASIC.GEN SOLVE BASIC USING MCP; PVUTIL = SUM(T, X.L(T)*R(T)) + (X.L('25')*R('25'))/RHO; DISPLAY PVUTIL; CONSUME(T) = X.L(T); INVEST(T) = I.L(T); KSTOCK(T) = K.L(T); SOLUTION(T,"X") = X.L(T); SOLUTION(T,"I") = I.L(T); SOLUTION(T,"K") = K.L(T); $LIBINCLUDE XLDUMP SOLUTION sOL2.xls SHEET1!F2 INITK = 90; RHO = 0.1; RTERM = (1/(1+RHO))**(CARD(T) - 1);; R(T) = (1/(1+RHO))**(ORD(T)-1); D(T) = (1-DELTA)**(ORD(T) - 1); PV = 200*SUM(T, R(T)) + 90*(4*RTERM/(1+RHO)); $INCLUDE BASIC.GEN SOLVE BASIC USING MCP; PVUTIL = SUM(T, X.L(T)*R(T)) + (X.L('25')*R('25'))/RHO; DISPLAY PVUTIL; CONSUME(T) = X.L(T); INVEST(T) = I.L(T); KSTOCK(T) = K.L(T); SOLUTION(T,"X") = X.L(T); SOLUTION(T,"I") = I.L(T); SOLUTION(T,"K") = K.L(T); $LIBINCLUDE XLDUMP SOLUTION sOL2.xls SHEET1!K2