This is a collection of codes that solve a number of heterogeneous agent models in continuous time using finite difference methods

**1. Huggett Model (from Achdou et al., 2014):**

**Explanation of Algorithm**

HJB equation, explicit method (Section 1.1):

**HJB_stateconstraint_explicit.m**

HJB equation, implicit method (Section 1.2):

**HJB_stateconstraint_implicit.m**

KFE Equation (Section 2, using matrix from HJB implicit method):

**huggett_partialeq.m**

Plotting the asset supply function (Section 3.1):

**huggett_asset_supply.m**

Finding the equilibrium interest rate (Section 3.2):

**huggett_equilibrium_iterate.m**

HJB equation with diffusion, implicit method (section 4.1):

**HJB_diffusion_implicit.m**

KFE Equation (Section 4.2, using HJB matrix):

**huggett_diffusion_partialeq.m**

Transition Dynamics (Section 5):

**huggett_transition.m**,

**huggett_initial.m**,

**huggett_terminal.m**

**2. Aiyagari Model (from Achdou et al., 2014):**

**Explanation of Algorithm**

Stationary Equilibrium with Poisson Process:

**aiyagari_poisson_steadystate.m**

Steady State Asset Supply Function with Poisson Process:

**aiyagari_poisson_asset_supply.m**

"MIT Shock" with Poisson Income Process:

**aiyagari_poisson_MITshock.m**

Stationary Eq. with Diffusion (Section 6.1, courtesy of Galo Nuno):

**aiyagari_diffusion_equilibrium.m**

Julia version of code:

**aiyagari_diffusion_equilibrium.jl**(download Juno for nice GUI)

C++ version of code:

**aiyagari_diffusion_equilibrium.cpp**(instructions for Mac users, makefile)

Transition Dynamics with Diffusion (Section 6.2):

**aiyagari_diffusion_transition.m**

Julia code for MIT Shock with Diffusion (courtesy of Matthieu Gomez):

**aiyagari_diffusion_MITshock.jl**

Make movie of evolution of wealth distribution (Section 6.4):

**make_movie.m**

Aiyagari Model with Fat-tailed Wealth Distribution (Section 8):

**fat_tail_partialeq.m**, uses non-uniform grid as explained in Section 7.

**3. Model with Two Assets and Nonconvex Adjustment Costs:**

**Description of Model and Algorithm**

Partial Equilibrium:

**two_asset_nonconvex.m**

Subroutines:

**two_asset_nonconvex_cost.m**,

**two_asset_nonconvex_FOC.m**

**4. Handling Non-Convexities I: Neoclassical Growth Model with Convex-Concave Production Function (Skiba, 1978).**

**Description of Model and Algorithm**

Finding the "Skiba point":

**HJB_NGM_skiba.m**

**5. Handling Non-Convexities II: Entrepreneurship and Financial Frictions.**

**Description of Model and Algorithm**

Stationary Equilibrium:

**entrepreneurs.m**

**6. Stopping Time Problem with Liquid and Illiquid Assets and Fixed Adjustment Costs:**

**Description of Model and Algorithm**

Partial Equilibrium:

**liquid_illiquid.m**, Interpolation routine:

**lininterp1.m**

**7. Additional Codes:**

**Explanation of Algorithm**

No uncertainty, explicit method (Section 1.1):

**HJB_simple.m**,

**HJB_no_uncertainty_explicit.m**

No uncertainty, implicit method (Section 1.2):

**HJB_no_uncertainty_implicit.m**

Neoclassical Growth Model, explicit method (Section 2.1):

**HJB_NGM.m**

Neoclassical Growth Model, implicit method (Section 2.2):

**HJB_NGM_implicit.m**

**8.**

**Matthieu Gomez's GitHub Repository**

**with great Julia codes, including the Bansal-Yaron (2004) Long-Run Risk Model**

**9. Perturbation methods for heterogeneous agent models with aggregate shocks:**

**Notes**,

**Codes**

**Old codes for Huggett Model without using Matlab's sparse matrix routines (slower):**

**HJB_stateconstraint_implicit_old.m**

**huggett_partialeq_old.m**

**huggett_asset_supply_old.m**

**huggett_equilibrium_iterate_old.m**

**HJB_diffusion_implicit_old.m**

**huggett_diffusion_partialeq_old.m**

**aiyagari_diffusion_equilibrium_old.m**