F5-conf-01 — Competitive equilibrium of a 2×2 Cobb–Douglas exchange economy
Question
Find the Walrasian equilibrium relative price p = p1/p2 (good 2 numeraire, p2 = 1) and allocation for agents A and B with u_i = α_i ln x1 + (1−α_i) ln x2, verify market clearing and Walras' law, and validate the closed-form price by independent 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, plus recorded aggregates 14.0 (good 1) and 10.0 (good 2).- Data issue (
data_issues): the recorded aggregate endowment of good 1 (14.0) does not match the sum of the individual endowments (8 + 4 = 12.0). Good 2 matches (10.0). The task names endowments.csv as the primary data, so market clearing usesaggregate_endowment_good1= 12.0 andaggregate_endowment_good2= 10.0. A total of 14 cannot be reached from the agents' own resources, so it was not used. As a diagnostic only, using 14.0 would give a root of 0.6667 (diagnostic_price_if_recorded_aggregate_used). That value is not an equilibrium of this economy. - No agents excluded (
out/exclusions.csv: 2 → 2).n_analysed= 2.
Method
Assumptions behind the closed form: 0 < α_i < 1 and strictly positive endowments, so the Cobb–Douglas demands are interior: x1_i = α_i m_i / p, x2_i = (1−α_i) m_i, with m_i = p e1_i + e2_i. Prices are normalised by p2 = 1. Clearing the good-1 market, Σ α_i (p e1_i + e2_i) = p Σ e1_i, 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.
z1(p) is strictly decreasing in p, so the equilibrium is unique. By Walras' law, clearing good 2 then follows.
Numerical validation: Brent's method (scipy.optimize.brentq, bracket [1e-8, 1e8], tolerance 1e-15) finds the root of the aggregate excess demand z1(p), computed from the individual demand functions. It never evaluates the closed-form price formula. The method is deterministic, and no random seed is used (random_seed = null).
Results
- Closed-form price
price_ratio_p1_over_p2= 0.875. Numerical rootprice_ratio_numerical= 0.875. Absolute differenceabs_diff_closed_form_vs_numerical= 2.2e-16. - Allocation:
x1_A= 4.1143,x2_A= 5.4,x1_B= 7.8857,x2_B= 4.6. These sum to 12 and 10, matching the aggregate endowments. excess_demand_good1= 0.0,excess_demand_good2= 0.0,walras_law_residual= 0.0 (both to machine precision).- Further checks (out/state/checks.md): both budget constraints hold exactly, and MRS_A = MRS_B = 0.875 = p, so the allocation is Pareto efficient.
Uncertainty
The inputs are theoretical parameters, not sampled data, so there is no statistical uncertainty. The only numerical error is floating-point rounding (closed form vs root differ by 2.2e-16, abs_diff_closed_form_vs_numerical). The main source of uncertainty is in the inputs themselves: the result depends on resolving the aggregate-endowment conflict in favour of the individual endowments. Using the recorded 14.0 would change the price to 0.6667 (diagnostic_price_if_recorded_aggregate_used).
Limitations and open issues
- The conflict between the recorded aggregate for good 1 (14.0) and the individual endowments (12.0) was settled by trusting the primary file. If the individual endowments were wrong instead, the results would change. The inputs do not show which file is wrong.
- The closed form holds only under interior Cobb–Douglas demands, strictly positive endowments and the p2 = 1 normalisation. All of these hold here.
- The numerical check covers only this parameter set and the stated bracket. It confirms the root of z1, not general properties of the economy.