You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wolfram Mathematica约束性消费者问题求解代码失效求助

解决Mathematica求解Cobb-Douglas消费者约束问题的报错

问题根源

报错的核心原因是未添加符合经济意义的符号假设。Mathematica的Solve函数默认不会自动识别参数的取值范围(比如效用函数中的α必须在(0,1)之间,价格p1/p2、收入r、消费量x1/x2均为正数),缺失这些假设会导致函数无法判断方程组的一致性,从而抛出"Inconsistent or redundant transcendental equation"错误。

修正后的代码

直接在求解时补充变量的约束条件即可,以下是完整可运行的代码:

(* 定义Cobb-Douglas效用函数 *)
Utility = x1^α * x2^(1 - α);

(* 构建拉格朗日函数,约束为预算线p1x1 + p2x2 = r *)
Lagrangian = Utility - λ*(p1*x1 + p2*x2 - r);

(* 计算一阶条件并转为等式 *)
Foc1 = D[Lagrangian, x1] == 0;
Foc2 = D[Lagrangian, x2] == 0;
Foc3 = D[Lagrangian, λ] == 0;

(* 添加符号假设后求解:α∈(0,1),所有经济变量为正 *)
sols = Solve[{Foc1, Foc2, Foc3, 0 < α < 1, p1 > 0, p2 > 0, r > 0, x1 > 0, x2 > 0}, {x1, x2, λ}]

替代方案:使用Reduce函数

如果需要更清晰的解条件说明,可以用Reduce代替Solve,它更适合处理带参数的方程组:

Reduce[{Foc1, Foc2, Foc3, 0 < α < 1, p1 > 0, p2 > 0, r > 0}, {x1, x2, λ}]

预期解

运行修正后的代码会得到符合经济理论的最优解:

  • 最优消费量:$x_1 = \frac{\alpha r}{p_1}$,$x_2 = \frac{(1-\alpha) r}{p_2}$
  • 拉格朗日乘数:$\lambda = \frac{\alpha^\alpha (1-\alpha){1-\alpha}}{p_1\alpha p_2^{1-\alpha}}$

内容的提问来源于stack exchange,提问作者Alien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:45:35