1# F5-conf-04 — VFI vs closed-form policy, optimal growth with log utility23## Question4A planner maximises Σ β^t ln c_t subject to y_{t+1} = (y_t − c_t)^α (Cobb–Douglas, productivity 1, full depreciation).5We derive the closed-form policy and value, solve the Bellman equation numerically by value-function iteration (VFI)6on the prescribed grid, and compare the two at y = 0.5, 1, 2 (policy) and y = 1 (value).78## Data and exclusions9Single input `data/model.csv` (10 rows; SHA-256 098123…195b, matching the bundle manifest): α = 0.36, β = 0.95, grid of10400 points equally spaced in ln y on [0.05, 5], VFI tolerance 1e-8 (sup norm), evaluation points 0.5, 1.0, 2.011(`n_input_rows`). No rows excluded (`out/exclusions.csv`); `data_issues` is empty — no deviation from the prescribed design12was needed. Grid points used: 400 (`grid_points_used`, `n_analysed`). None of the evaluation points is a grid node13(`diag_eval_points_on_grid_node`), so the VFI policy is interpolated, as the task allows.1415## Method16**Closed form (guess-and-verify).** Guess V(y) = A + B ln y. The first-order condition of17max_c {ln c + β(A + Bα ln(y − c))} gives 1/c = αβB/(y − c), i.e. c = y/(1 + αβB). Matching the coefficient on ln y gives18B = 1 + αβB ⇒ B = 1/(1 − αβ), hence **c(y) = (1 − αβ) y** and savings rate (y − c)/y = **αβ**. Matching constants gives19**A = [ln(1 − αβ) + (αβ/(1 − αβ)) ln(αβ)]/(1 − β)**, so V(1) = A. The verification was also done numerically: maximising20the right-hand side with this V at y = 0.5, 1, 2 reproduces c = (1 − αβ)y and T V = V (`out/state/checks.md`).21Assumptions: log utility; Cobb–Douglas technology with productivity 1; full depreciation; interior solution (0 < c < y,22guaranteed by the Inada property of ln); 0 < α < 1, 0 < β < 1.2324**VFI.** On the log grid, the choice variable is next-period output y' restricted to the grid; consumption is25c = y − y'^{1/α} (infeasible pairs get −∞). Starting from V₀ = 0, V_{n+1}(y_i) = max_j {ln c_ij + β V_n(y_j)} is iterated26(vectorised 400×400) until the sup-norm change is below 1e-8. The policy is the argmax; it never uses the closed form.27Policy values at the evaluation points are linearly interpolated in y between neighbouring grid nodes; V(1) is28linearly interpolated in ln y (the coordinate in which the grid is uniform). No randomness (`random_seed` = null).2930**Contraction.** On the discretised (finite, bounded) problem the Bellman operator satisfies Blackwell's sufficient31conditions — monotonicity and discounting (T(V + a) = TV + βa) — so it is a contraction in the sup norm with modulus β32(`contraction_modulus` = 0.95). The state space is effectively compact: under the optimal policy y' = (αβy)^α stays in33[0.231, 1.213] ⊂ [0.05, 5] (`diag_closed_yprime_min`, `diag_closed_yprime_max`), and on the grid ln c is bounded, so the34bounded-returns theory applies. (On the unbounded domain with log utility one would need a weighted-norm argument; this35is not required here.)3637## Results38| quantity | closed form | VFI |39|---|---|---|40| c(0.5) | 0.329 (`c_closed_y05`) | 0.32882 (`c_num_y05`) |41| c(1.0) | 0.658 (`c_closed_y1`) | 0.65898 (`c_num_y1`) |42| c(2.0) | 1.316 (`c_closed_y2`) | 1.30959 (`c_num_y2`) |43| V(1) | −19.52441 (`value_closed_y1`) | −19.52476 (`value_num_y1`) |4445- Maximum absolute policy discrepancy over the three points: 0.00641 units of output (`max_abs_error_policy`), attained46 at y = 2; the largest relative discrepancy is 0.49 % (`diag_policy_max_rel_error_eval`).47- Value at y = 1 differs by 3.4e-4 utils (`diag_value_abs_error_y1`); the sup-norm value error over the grid is 4.8e-448 (`diag_value_sup_error_grid`).49- Closed-form savings rate αβ = 0.342 (`savings_rate_closed_form`).50- VFI converged in 361 iterations (`n_iterations`) with final sup-norm change 9.997e-9 (`final_sup_change`) < 1e-8.51- Contraction modulus β = 0.95 (`contraction_modulus`).52- The VFI policy never hits the edge of the grid (`diag_policy_edge_hits` = 0).5354## Uncertainty55The problem is deterministic; there is no sampling uncertainty and no confidence interval is meaningful. Numerical error56has two sources:571. *Stopping rule.* By the contraction property, ‖V_n − V*_grid‖ ≤ β/(1 − β)·‖V_n − V_{n−1}‖ ≈ 1.9e-7 utils58 (`diag_vfi_tolerance_error_bound`) — negligible.592. *Discretisation*, which dominates: the choice of y' is restricted to grid nodes with log-step 0.0115460 (`diag_grid_log_step`), so capital k = y'^{1/α} can be off by up to about step/(2α) ≈ 1.6 % in relative terms, i.e. an61 error in c of up to about 0.83 % of c; the observed relative errors (≤ 0.49 %) are within that bound. Linear interpolation62 between nodes adds a smaller component. The error grows in absolute terms with y because c and k scale with y63 (sup over the grid: 0.025 at y = 5, `diag_policy_sup_error_grid`), and shrinks proportionally with the grid step64 (more points or a narrower range); it also depends on α (through 1/α) and on β only through the tolerance bound.6566## Limitations and open issues67- The validation covers only the prescribed parameter point (α = 0.36, β = 0.95) and grid (400 log-spaced points on68 [0.05, 5]); no other grids or parameters were tested, as the task does not require it.69- The closed form relies on log utility, Cobb–Douglas technology, full depreciation and an interior solution; with70 partial depreciation or CRRA ≠ 1 no closed form of this kind exists and the comparison would not apply.71- The policy discrepancy (`max_abs_error_policy`) reflects the discrete-choice VFI on this grid; it is not an error in the72 closed form. A continuous-choice VFI with interpolated V would reduce it but is outside the prescribed design.73- The contraction statement with modulus β is for the bounded, discretised problem; the unbounded continuous problem with74 log utility requires a weighted sup-norm or a direct verification argument, which we do not develop here.75