Local Geometry and Policy Paths · Chapter III-01

Differentiating Implicit Models

Many economic outcomes are defined by equilibrium equations rather than explicit formulas. The implicit-function calculation converts derivatives of those equations into derivatives of the equilibrium, provided the relevant Jacobian is square and nonsingular. Inverse derivatives and low-rank updates then make comparative statics reusable across states, policies, and information changes.

Conceptual map

  1. III-01.01Multivariable differentiation
  2. III-01.02Implicit equilibrium maps
  3. III-01.03Inverse-matrix derivatives
  4. III-01.04Low-rank updates
  5. III-01.05Regularity and branch failure

1. Setup and notation

An equilibrium calculation begins with equations and a reference solution. Comparative statics require an additional object: a locally selected equilibrium branch whose derivative is well defined. The Jacobian with respect to endogenous variables determines whether the equations supply that branch.

Let \(A\subset\mathbb{R}^{n}\) and \(\Theta\subset\mathbb{R}^{m}\) be open sets. The endogenous vector is \(a\in A\), and the parameter vector is \(\theta=(s,p)\in\Theta\), where \(s\) collects states and \(p\) collects policy variables. A system of equilibrium conditions is a map \(F:A\times\Theta\to\mathbb{R}^{n}\). Its equilibrium correspondence is

\[E(\theta ) = \{a \in A : F(a, \theta ) = 0\}.\](1)

A reference pair \((a_{0},\theta_{0})\) satisfies \(F(a_{0},\theta_{0})=0\). Write \(J_{0}\) = \(D_{a}F(a_{0},\theta_{0})\) for the \(n\times n\) equilibrium Jacobian.

Definition 1 · Regular equilibrium

The reference equilibrium (\(a_{0}\), \(\theta_{0}\)) is regular when \(J_{0}\) is nonsingular. A local equilibrium selection is a function \(g\) defined on a neighborhood of \(\theta_{0}\) such that \(g(\theta_{0})\) = \(a_{0}\) and \(F(g(\theta),\theta)=0\) throughout that neighborhood.

Assumption A · Local regularity
  1. \(F\) is continuously differentiable on an open neighborhood of (\(a_{0}\), \(\theta_{0}\)).
  2. The number of equilibrium equations equals the number of endogenous variables.
  3. \(J_{0}\) is nonsingular.

The square-system condition describes the coordinates chosen for the local calculation. Systems with redundant equations, free endogenous coordinates, or inequality constraints require a rank reduction, a parameterization of the solution set, or constrained differentiation.

2. Local existence and first-order comparative statics

Proposition 1 · Implicit equilibrium derivative

Under Assumption A, there are neighborhoods \(U\) of \(a_{0}\) and \(V\) of \(\theta_{0}\) and a unique continuously differentiable map \(g:V\to U\) satisfying \(F(g(\theta),\theta)=0\). For every direction \(h\in\mathbb{R}^{m}\),

\[Dg(\theta _{0})[h] = -J_{0}^{-1}D_{\theta }F(a_{0}, \theta _{0})[h].\](2)

Equivalently, the derivative matrix solves the linear system

\[J_{0}Dg(\theta _{0}) = -D_{\theta }F(a_{0}, \theta _{0}).\](3)

Proof. The finite-dimensional implicit-function theorem applied at (\(a_{0}\), \(\theta_{0}\)) gives the neighborhoods and the local map \(g\). Differentiate the identity \(F(g(\theta),\theta)=0\) in direction \(h\). The chain rule gives \(D_{a}F\,Dg[h]+D_{\theta}F[h]=0\). Nonsingularity of \(J_{0}\) gives (2). ∎

What the proposition establishes

The theorem supplies one branch through the reference equilibrium and uniqueness among equilibria inside \(U\) for parameters inside \(V\). Other equilibria can exist outside \(U\). A global uniqueness claim needs additional structure such as global univalence, monotonicity, contraction, or a model-specific equilibrium argument.

Equation (3) is the computational form. A numerical routine should factor \(J_{0}\) and solve for the columns of \(Dg\). Forming \(J_{0}^{-1}\) explicitly creates extra floating-point error and discards useful matrix structure.

3. Second-order responses

Curvature determines how quickly a first-order response ceases to approximate a finite policy change. Suppose \(\theta\) is scalar and \(F\) is twice continuously differentiable. Let \(v\) = \(g^{\prime}(\theta_{0})\). The second derivative follows from differentiating the equilibrium identity twice.

Proposition 2 · Second derivative of an implicit branch

Under Assumption A and \(F\in C^{2}\), the local selection is twice continuously differentiable and

\[g^{\prime\prime}(\theta _{0}) = -J_{0}^{-1}\{F_{aa}[v,v] + 2F_{a\theta }[v] + F_{\theta \theta }\}.\](4)

All derivatives on the right side are evaluated at (\(a_{0}\), \(\theta_{0}\)).

Proof. Differentiate \(F_{a}g^{\prime}\) + \(F_{\theta}\) = 0 once more. The product and chain rules give \(F_{a}g^{\prime\prime}\) + \(F_{aa}[g^{\prime},g^{\prime}]\) + \(2F_{a\theta}[g^{\prime}]\) + \(F_{\theta \theta}\) = 0. Solve the resulting linear system with \(J_{0}\). ∎

For a vector parameter, (4) becomes a bilinear map. Given directions \(h\) and \(k\), compute \(Dg[h]\) and \(Dg[k]\), assemble the four second-derivative terms, and solve one more system with the same Jacobian factorization.

4. Conditioning and low-rank updates

The derivative magnitude depends on the economic right-hand side and the inverse Jacobian. For a subordinate matrix norm, equation (2) implies

\[\lVert Dg\rVert \le \lVert J_{0}^{-1}\rVert \lVert D_{\theta }F\rVert .\](5)

A large condition number \(\kappa(J_{0})\) = \(\lVert J_{0}\rVert \lVert J_{0}^{-1}\rVert\) signals sensitivity of the linear solve to perturbations in the equations and their derivatives. Scaling matters. A report should state the norm and the units or normalization of each equation.

Proposition 3 · Rank-r Jacobian update

Let \(J_{1}\) = \(J_{0}\) + \(UV^{\top}\), where \(U\) and \(V\) have \(r\) columns. If \(J_{0}\) and \(I_{r}\) + \(V^{\top}J_{0}^{-1}U\) are nonsingular, then

\[J_{1}^{-1} = J_{0}^{-1} - J_{0}^{-1}U(I_{r} + V^{\top }J_{0}^{-1}U)^{-1}V^{\top }J_{0}^{-1}.\](6)

Equation (6) reuses the baseline factorization when a policy changes a few rows, columns, or interaction channels. The small \(r\times r\) matrix also detects failure of the update: its singularity coincides with singularity of the updated Jacobian under the stated conditions.

5. Worked nonlinear equilibrium

Consider two endogenous variables, quantity \(q\) and wedge \(w\), with policy \(p\) and state \(s\):

\[\begin{aligned}F_{1}(q,w;p,s) = q + w^{2} - p, \\ F_{2}(q,w;p,s) = w + q^{2} - s.\end{aligned}\](7)

At (\(q_{0},w_{0}\)) = (1/5, 3/10), the compatible parameter values are (\(p_{0},s_{0}\)) = (29/100, 17/50). The equilibrium Jacobian and its determinant are

\[\begin{aligned}J(q,w) = \begin{bmatrix}1 & 2w \\ 2q & 1\end{bmatrix}, \\ J_{0} = \begin{bmatrix}1 & \frac{3}{5} \\ \frac{2}{5} & 1\end{bmatrix}, \quad \operatorname{det}(J_{0}) = \frac{19}{25}.\end{aligned}\](8)

Holding \(s\) fixed, \(F_{p}\) = \((-1,0)^{\top}\). Equation (3) gives

\[[q_{p}, w_{p}]^{\top } = [\frac{25}{19}, \frac{-10}{19}]^{\top } \approx [1.315789, -0.526316]^{\top }.\](9)

Holding \(p\) fixed gives \([q_{s}, w_{s}]^{\top}\) = \([-15/19, 25/19]^{\top}\). For the policy derivative, the Hessian term in (4) is \((2w_{p}^{2}, 2q_{p}^{2})^{\top}\). Hence \(q_{pp}=13750/6859\approx2.004665\) and \(w_{pp}=-29250/6859\approx-4.264470\).

Finite-difference verification

For each step \(h\), solve the nonlinear system at \(p_{0}\) \(\pm\) \(h\) while holding \(s\) fixed, then form the central difference. The table reports the Euclidean error relative to (9). The near-singular comparison uses (\(q,w\)) = (0.49,0.49), where \(\kappa _{2}(J)\) = 99.

Reference pointhFD \(q_{p}\)FD \(w_{p}\)Derivative error
(0.20, 0.30), \(\kappa _{2}\) = 2.98\(10^{-2}\)1.3157021122\(-0.5265443315\)\(2.45\times10^{-4}\)
(0.20, 0.30), \(\kappa _{2}\) = 2.98\(10^{-4}\)1.3157894650\(-0.5263158124\)\(2.45\times10^{-8}\)
(0.20, 0.30), \(\kappa _{2}\) = 2.98\(10^{-6}\)1.3157894737\(-0.5263157895\)\(3.49\times10^{-11}\)
(0.49, 0.49), \(\kappa _{2}\) = 99\(10^{-2}\)13.3839346254\(-13.1218367246\)\(1.66\times10^{1}\)
(0.49, 0.49), \(\kappa _{2}\) = 99\(10^{-4}\)25.2446410392\(-24.7399072734\)\(1.09\times10^{-2}\)
(0.49, 0.49), \(\kappa _{2}\) = 99\(10^{-6}\)25.2525244655\(-24.7474739922\)\(1.09\times10^{-6}\)

The benchmark exhibits the expected second-order decay of central-difference error until floating-point cancellation becomes visible. Near singularity, the derivative is roughly twenty times larger and a coarse step crosses substantial curvature. A derivative report without conditioning and a step-size grid conceals this distinction.

6. Failure at a singular equilibrium

Counterexample · A branch can survive while local uniqueness fails

Set \(p\) = \(s\) = \(t\). At \(t\) = 3/4, (\(q,w\)) = (1/2,1/2) solves (7), and \(\operatorname{det}(J)\) = 0. The symmetric branch \(q\) = \(w\) = \(x\) satisfies \(x\) + \(x^{2}\) = \(t\) and has derivative \(dx/dt\) = 1/(1+\(2x\)) = 1/2 at the reference point.

A second family follows from \(q+w=1\). Substitution gives \(t=3/4+(q-1/2)^{2}\). Every \(t>3/4\) close to the reference value therefore has two additional equilibria, \((q,w)=(1/2\pm\sqrt{t-3/4},\,1/2\mp\sqrt{t-3/4})\).

The singular Jacobian blocks the implicit-function theorem for a unique two-parameter equilibrium selection. A differentiable symmetric selection still exists along the one-dimensional restriction \(p\) = \(s\). The example separates three claims: existence of a selected branch, regularity of the full equilibrium system, and uniqueness of the equilibrium correspondence.

7. Implementation protocol

The following procedure keeps the theorem, numerical solve, and diagnostic evidence aligned.

input: F, reference (a0, theta0), parameter direction h
1. verify ||F(a0, theta0)|| is below the declared residual tolerance
2. compute J = D_a F(a0, theta0) and B = D_theta F(a0, theta0)[h]
3. estimate reciprocal conditioning and record the matrix norm
4. solve J v = -B with a factorization; retain the residual ||J v + B||
5. solve F(a_plus, theta0 + delta h) = 0 from a0
6. solve F(a_minus, theta0 - delta h) = 0 from a0
7. compare v with (a_plus - a_minus)/(2 delta) over a step-size grid
8. repeat after rescaling equations when units differ materially
output: derivative, solve residual, condition estimate, finite-difference table
  • Automatic differentiation evaluates \(J\) and \(B\); it does not supply equilibrium existence or branch uniqueness.
  • Continuation methods reduce branch switching by using the previous solution as the next initial value and monitoring Jacobian singular values.
  • Equation scaling changes numerical conditioning. Report the scaling whenever the rows of \(F\) use different units.
  • A central difference tests the implemented derivative and nonlinear solver jointly. A residual check for each perturbed equilibrium identifies solver failure.
Download the reproducible Python calculation →

8. Exercises

  1. For the benchmark in (7), derive both columns of \(Dg\) with respect to (\(p,s\)). Verify each column by multiplying it by \(J_{0}\).
    Partial solution

    The two columns are \((25/19, -10/19)^{\top}\) and \((-15/19, 25/19)^{\top}\). Their Jacobian products are \((1,0)^{\top}\) and \((0,1)^{\top}\), matching \(-F_{p}\) and \(-F_{s}\).

  2. Use Proposition 2 to derive \(q_{pp}\) and \(w_{pp}\). Compare the quadratic approximation with the exact numerical equilibrium at \(p_{0}\) + 0.01.
    Partial solution

    The second derivatives are 13750/6859 and \(-29250/6859\). The approximation is \(a(p_{0}+\Delta)\approx a_{0}+a_{p}\Delta+\frac{1}{2}a_{pp}\Delta ^{2}\).

  3. Prove the rank-one form of Proposition 3 directly by multiplying the proposed inverse by \(J_{0}\) + \(uv^{\top}\). State the scalar condition that permits the update.
    Partial solution

    The condition is \(1+v^{\top}J_{0}^{-1}u\ne0\). After expansion, the two rank-one correction terms cancel.

  4. At the singular point in Section 6, draw the three equilibrium branches in (\(t,q\)) coordinates. Identify which derivative diverges as the two asymmetric branches approach \(t\) = 3/4.
    Partial solution

    The asymmetric branches satisfy \(q\) = 1/2 \(\pm\) \(\sqrt{t-3/4}\), so \(dq/dt\) = \(\pm[2\sqrt (t-3/4)]^{-1}\). Their slopes diverge at the branch point; the symmetric branch has slope 1/2.

9. Audit checkpoint

  • Object: Are the endogenous variables, parameters, equation domains, and units fixed?
  • Existence: Is the reported reference point an equilibrium to the declared tolerance?
  • Regularity: Is the endogenous Jacobian square and nonsingular at that point?
  • Claim: Does the conclusion concern a local selection, all local equilibria, or global uniqueness?
  • Computation: Was the derivative obtained by solving a linear system with a reported residual and condition estimate?
  • Validation: Does a step-size grid reproduce the analytic derivative on the same branch?

10. Scope boundary

This chapter covers smooth finite-dimensional equality systems around a reference equilibrium. Chapter III-02 treats derivatives on constrained state spaces, III-03 treats constrained policy motion, and III-16 treats inequality constraints and complementary slackness. General bifurcation theory, nonsmooth generalized equations, differential-algebraic systems, and infinite-dimensional implicit maps require additional results.

References and source crosswalk

  1. Walter Rudin, Principles of Mathematical Analysis, 3rd ed., §§9.26–9.29, pp. 224–227. Source for Proposition 1: finite-dimensional implicit-function theorem and derivative formula. Reference copy.
  2. Martin J. Osborne, Mathematical Methods for Economic Theory, §2.3, Proposition 2.3.1. Economic comparative-statics formulation and worked implicit-derivative examples. Online text.
  3. James McKernan, MIT 18.022, Lecture 13, “Implicit Functions.” Multivariable equation systems and the nonsingular endogenous-Jacobian condition. MIT OpenCourseWare.
  4. William W. Hager (1989), “Updating the Inverse of a Matrix,” SIAM Review 31(2), 221–239, DOI 10.1137/1031049. Source for Proposition 3 and the history and uses of Sherman–Morrison–Woodbury updates. Author-hosted article.
  5. E. Anderson et al., LAPACK Users’ Guide, 3rd ed., “Linear Equations” and “Accuracy and Stability.” Computational guidance for factor-and-solve methods, condition estimation, refinement, and error bounds. Netlib documentation.

Prerequisites