# F5-conf-01 — Competitive equilibrium of a two-agent, two-good exchange economy ## Question Agents A and B have Cobb–Douglas utilities u_i = α_i ln x1 + (1−α_i) ln x2 and endowments (e1_i, e2_i). Good 2 is the numeraire (p2 = 1). We find the Walrasian equilibrium price p = p1/p2 and allocation. We check market clearing and Walras' law, and we validate the closed-form price by numerical root-finding. ## Data and exclusions - `data/endowments.csv` (2 rows; `n_input_rows`): A = (8, 2), B = (4, 8). `data/parameters.csv` (4 rows): α_A = 0.4, α_B = 0.6, and summary-sheet aggregates 14 (good 1) and 10 (good 2). - **Data issue (`data_issues`):** the summary sheet gives aggregate good-1 endowment 14, but the individual endowments add up to 8 + 4 = 12. The good-2 figure is consistent (10). - In an exchange economy the aggregate endowment is, by definition, the sum of the individual endowments, and the task names endowments.csv as the primary data. I therefore used 12 and 10 (`aggregate_endowment_good1`, `aggregate_endowment_good2`). - As a diagnostic only, I cleared good 1 against 14 instead. That gives p ≈ 0.6667 with good-2 excess demand ≈ −1.333 ≠ 0, so the economy has no consistent equilibrium. I treat the value 14 as a recording error. Both summary-sheet values are kept in `aggregate_endowment_good1_summary_sheet` and `aggregate_endowment_good2_summary_sheet`. - No rows were excluded (`out/exclusions.csv`). Both agents were analysed (`n_analysed` = 2). ## Method - **Assumptions of the closed form:** - α_i ∈ (0,1) and strictly positive endowments, so each agent's wealth w_i = p e1_i + e2_i is positive and demands are interior: x1_i = α_i w_i / p and x2_i = (1−α_i) w_i. - Price normalisation p2 = 1. - **Closed form:** market clearing for good 1, Σ α_i(p e1_i + e2_i) = p E1, gives p = Σ α_i e2_i / Σ (1−α_i) e1_i = (0.4·2 + 0.6·8)/(0.6·8 + 0.4·4) = 5.6/6.4. The good-2 market then clears by Walras' law. - **Independent numerical validation:** Brent's method (`scipy.optimize.brentq`) finds the root of the aggregate excess-demand function z1(p) = Σ x1_i(p) − E1 on the bracket [1e-9, 1e9], with tolerance 1e-15. It never evaluates the closed-form expression. - z1 is strictly decreasing in p here, so the root is unique. - Scope: this check validates the price for these parameters only. It is not a general proof. - No randomness is involved (`random_seed` = null). ## Results | quantity | value | key | |---|---|---| | p1/p2 (closed form) | 0.875 | `price_ratio_p1_over_p2` | | p1/p2 (numerical root) | 0.875 (abs. difference 2.2e-16) | `price_ratio_numerical`, `price_abs_diff_closed_vs_numerical` | | x1_A, x2_A | 4.1143, 5.4 | `x1_A`, `x2_A` | | x1_B, x2_B | 7.8857, 4.6 | `x1_B`, `x2_B` | | excess demand good 1 | 0.0 | `excess_demand_good1` | | excess demand good 2 | 0.0 | `excess_demand_good2` | | Walras residual p·z1 + z2 | 0.0 | `walras_law_residual` | The allocation adds up to the aggregate endowment (12, 10). Each agent's budget constraint binds. Both agents' marginal rates of substitution equal p = 0.875 (`out/state/checks.md`), so the allocation is Pareto efficient. `feasibility` = "complete". ## Uncertainty This is a deterministic theoretical calculation, so there is no sampling uncertainty. The only numerical error is floating-point error: the closed-form and numerical prices differ by about 2.2e-16 (`price_abs_diff_closed_vs_numerical`), and the residuals are 0 at double precision. The main source of uncertainty in the result comes from the data, not the computation: which aggregate good-1 endowment is correct. If the individual endowments were wrong and 14 were the right total, the equilibrium would be different. That case cannot be resolved from the inputs. ## Limitations and open issues - The summary-sheet aggregate for good 1 (14) contradicts the individual endowments (12). I resolved this in favour of the primary individual data. If the true error is instead in an individual endowment (for example, if A or B actually holds 2 more units of good 1), the price and allocation would change. The inputs cannot tell these cases apart. - The closed form relies on interior Cobb–Douglas demands. It does not cover corner solutions, zero endowments or α ∈ {0, 1}. - The numerical validation covers this parameter set only.