%CCRC.M %This program approximates the equilibrium of the economy with an aggregate debt limit and financial rents accruing to foreign lenders. The output is a pair of vectors of parameters, aL and aH, which parameterize the variable R_t*c_t as exp(X*aL) if the current productivity shock is z^1 and as exp(X*aH) if the current productivity shock is z^2, where X is a matrix defined below. % %Calls CCRC_VARIABLES.M % clc clear all format compact %Deep parameters and steady-state values [RSTAR, SIG, OMEGA, BETTA1, ALFA, MU, z, PAIZ, KAPA, Kss, QQss, Css, Hss, LAss, Ass, Yss, BETTAss] = ccrc_ss; zL = z(1); zH = z(2); DL = -10; %lower bound on debt DH = Kss*QQss*KAPA; %KAPA*QQss*Kss;%upper bound on debt m = 1000; %number of grid points n = 50; %number of regressors a = chebygrid(DL,DH,m); %debt grid in levels X = chebyreg(m,n); %regressors D = inv(X'*X); %Regression Parameters Low state aL = zeros(n,1); aL(1) = log(Css*RSTAR);%log(LAss/RSTAR*.5); %Regression Parameters High state aH = aL; dist=1; dist_old=1; u = 0.1; uu = 0.005; iter =1; while dist>1e-12 rcL = exp(X*aL) ; rcH = exp(X*aH); [rL, rH, laH, laL, hL, hH, yL, yH, cL, cH, apL, apH, bettaL, bettaH] = ccrc_variables(rcL, rcH,a, DL, DH); WL = chebyreg2(apL,DL,DH,n); WH = chebyreg2(apH,DL,DH,n); rcLH = exp(WL*aH); rcLL = exp(WL*aL); [rpLL, rpLH, lapLH, lapLL] = ccrc_variables(rcLL, rcLH,apL, DL, DH); lapL = [lapLL lapLH] * PAIZ(1,:)'; rcHL = exp(WH*aL); rcHH = exp(WH*aH); [rpHL, rpHH, lapHH, lapHL] = ccrc_variables(rcHL, rcHH,apH, DL, DH); lapH = [lapHL lapHH] * PAIZ(2,:)'; rhsL = log (rL.* ((rL.*bettaL .* lapL).^(-1/SIG) +hL.^OMEGA/OMEGA)); rhsH = log (rH.* ((rH.*bettaH .* lapH).^(-1/SIG) +hH.^OMEGA/OMEGA)); aLold = aL; aHold = aH; aold = [aLold;aHold]; aLnew = D*X'*rhsL; aHnew = D*X'*rhsH; anew = [aLnew;aHnew]; dist = max(abs(anew-aold)) u = (uu + u * (1-uu)) * (dist<=dist_old) + 0.01*(dist>dist_old); [dist