STO3 Anticipated switch to a public storage policy
We consider here the transitional dynamics that occurs when a public storage policy defending a floor price is announced a few periods before its beginning. This is a finite-horizon problem in which the terminal condition is not a unique situation, but a state-contingent policy function. This is a transition from problem STO1 to STO2.
Contents
Create the model objects
Mu = 1; sigma = 0.05;
Competitive storage model:
model1 = recsmodel('sto1.yaml',struct('Mu',Mu,'Sigma',sigma^2,'order',7));
Deterministic steady state (equal to first guess) State variables: A _ 1 Response variables: S H P _ _ _ 0 1 1 Expectations variables: EP EPe __ ___ 1 1
Floor price model:
model2 = recsmodel('sto2.yaml',struct('Mu',Mu,'Sigma',sigma^2,'order',7));
Deterministic steady state (different from first guess, max(|delta|)=0.392101) State variables: A ______ 1.3921 Response variables: S H P Sg __________ _____ ____ _______ 6.0863e-15 1.004 1.02 0.39605 Expectations variables: EP EPe ____ ____ 1.02 1.02
Define approximation space
[interp,s] = recsinterpinit(50,min(model1.shocks.e)*0.95,2);
Terminal condition: solve for the infinite-horizon behavior under policy
See STO2 for details.
Find a first guess through the perfect foresight solution
interp2 = recsFirstGuess(interp,model2,s,[],[],struct('T',5));
Solve for rational expectations
[~,x2] = recsSolveREE(interp2,model2,s);
Successive approximation Major Minor Lipschitz Residual 0 0 3.69E-02 (Input point) 1 1 1.0414 1.57E-02 2 1 0.9613 9.43E-03 3 1 1.0446 1.89E-03 4 1 0.9479 1.06E-03 5 1 0.7874 2.30E-04 6 1 0.8447 3.57E-05 7 1 0.8511 5.32E-06 8 1 0.8498 7.99E-07 9 1 0.8489 1.21E-07 10 1 0.8483 1.84E-08 11 1 1.0000 0.00E+00 Solution found - Residual lower than absolute tolerance
Transition: model without policy in finite horizon
The policy is announced 6 periods before it begins (so ). In the seventh period, the equilibrium is the one defined by the problem with public storage:
T = 7; xT = x2(:,1:3); options.eqsolver = 'ncpsolve'; % lmmcp does not work in this case [~,X] = recsSolveREEFiniteHorizon(interp,model1,s,x2(:,1:3),xT,T,options);
Initial period: model without policy under infinite horizon
In period 0, the policy is not expected by the agents and the prevailing equilibrium is the one corresponding to the infinite-horizon competitive storage problem (STO1):
[~,x1] = recsSolveREE(interp,model1,s,X(:,1:3,1));
Successive approximation Major Minor Lipschitz Residual 0 0 3.64E-02 (Input point) 1 1 0.8292 6.25E-03 2 1 0.7825 1.36E-03 3 1 0.7646 3.20E-04 4 1 0.7589 7.72E-05 5 1 0.7572 1.87E-05 6 1 0.7567 4.56E-06 7 1 0.7565 1.11E-06 8 1 0.7565 2.70E-07 9 1 0.7565 6.58E-08 10 1 0.7565 1.60E-08 11 1 1.0000 0.00E+00 Solution found - Residual lower than absolute tolerance
Plot price function
figure plot(s,[x1(:,3) squeeze(X(:,3,:))]) xlim([0.8 2]) ylim([0.4 3]) legend([repmat('Period ',T+1,1),num2str((0:T)')]) legend('Location','NorthEast') legend('boxoff') xlabel('Availability') ylabel('Price') title('Price function in each period')
