Dynamic optimization is the mathematical foundation for analyzing intertemporal economic decisions where choices today affect future constraints and payoffs. Methods like Bellman equations and optimal control solve these problems by reformulating them recursively or using calculus of variations. Understanding dynamic optimization is essential for building and analyzing macroeconomic models with forward-looking agents whose decisions span multiple periods.
Start with finite-horizon consumption-saving problems and work toward infinite-horizon models with discount rates. Implement value function iteration and policy function iteration numerically to build intuition before tackling analytical solutions.
Students often confuse static optimization with dynamic problems and overlook how discount rates and expectations shape optimal paths over time. The distinction between value functions and policy functions often takes time to internalize.
From constrained optimization, you know how to find the best outcome subject to a constraint — maximize utility given a budget, minimize cost given an output target. Dynamic optimization extends this to problems where decisions unfold over time and today's choices alter tomorrow's constraints. A household deciding how much to consume today versus save for retirement is not solving a single optimization problem — it is solving a sequence of interconnected problems where each period's savings become next period's wealth, which determines next period's choices. The tools you learned for static problems (Lagrangians, first-order conditions) need to be extended to handle this temporal linkage.
The two main frameworks are optimal control and dynamic programming. Optimal control treats the problem as choosing an entire path of decisions at once — the household plans its consumption for every future period simultaneously, subject to the constraint that wealth evolves according to a transition equation (wealth next period = wealth today plus income minus consumption, all times the interest rate). The key tool here is the Hamiltonian, which generalizes the Lagrangian to continuous-time dynamic problems. The first-order conditions yield the Euler equation, which characterizes optimal intertemporal tradeoffs: at the optimum, the marginal utility of consuming one more unit today equals the discounted marginal utility of saving that unit, earning interest, and consuming it tomorrow. This condition — not a solution itself, but a necessary property of any solution — is the workhorse equation of modern macroeconomics.
Dynamic programming, developed by Richard Bellman, takes a recursive approach. Instead of solving for the entire path at once, it asks: if I knew the value of being in any possible state tomorrow (how much lifetime utility I can achieve from any given wealth level), what would I do today? The answer defines today's optimal action as a function of today's state — this is the policy function. The value function encodes the total future payoff from any state, and it satisfies a recursive relationship called the Bellman equation: the value of being in a state today equals the best achievable current payoff plus the discounted value of the state you transition into. In practice, you solve the Bellman equation by starting from the last period (where the answer is obvious) and working backward, or by iterating the value function until it converges.
The discount rate — how much agents value future payoffs relative to present ones — is central to dynamic optimization. A higher discount rate means agents are more impatient, tilting optimal consumption toward the present. Combined with the interest rate (the return to saving), the discount rate determines whether an optimal consumption path is rising, flat, or falling over time. When these tools are embedded in macroeconomic models, they allow agents to be genuinely forward-looking: households anticipate future tax changes, firms plan investment based on expected demand, and the resulting equilibrium reflects the interaction of all these intertemporal decisions. This is what makes dynamic optimization the mathematical backbone of models like Ramsey-Cass-Koopmans, overlapping generations, and DSGE frameworks.