Cournot竞争模型详解与Python代码示例
Cournot竞争模型,又称古诺模型或双寡头模型,是由法国经济学家古诺在1838年提出的。该模型是经济学中研究寡头市场结构下厂商产量决策的经典模型。在Cournot模型中,假设市场上只有两个生产相同产品的厂商,它们通过调整各自的产量来最大化自己的利润,同时受到对方产量的影响。
模型假设:
- 市场上有两个厂商(企业1和企业2),它们生产并销售完全相同的产品。
- 厂商面临的市场需求是线性的,且逆需求函数已知。
- 厂商的生产成本是产量的函数,且边际成本不变。
- 厂商之间不进行价格协调,而是通过调整产量来竞争。
模型构建:
设企业1的产量为q1,企业2的产量为q2,共同面临的市场逆需求函数为P = a - b(q1 + q2),其中a和b为常数,且b > 0。企业i(i=1,2)的成本函数为Ci(qi) = ci * qi,其中ci为企业i的边际成本。
企业i的利润函数为:
πi(q1, q2) = qi * [a - b(q1 + q2)] - ci * qi
为了最大化利润,每个厂商都会根据对方的产量来选择自己的最优产量。这可以通过求解利润函数关于自身产量的偏导数并令其等于零来实现。
Python代码示例:
# 导入需要的库
from sympy import symbols, Eq, solve, diff
# 定义变量和参数
q1, q2, a, b, c1, c2 = symbols('q1 q2 a b c1 c2', real=True, positive=True) # 变量为正实数
# 定义逆需求函数和成本函数
P = a - b * (q1 + q2)
C1 = c1 * q1
C2 = c2 * q2
# 定义利润函数
π1 = q1 * P - C1
π2 = q2 * P - C2
# 求解企业1的最优产量(对q1求偏导并令其为0)
dπ1_dq1 = diff(π1, q1)
eq1 = Eq(dπ1_dq1, 0)
solution1 = solve(eq1, q1, dict=True)
q1_star = solution1[0][q1]
# 求解企业2的最优产量(对q2求偏导并令其为0)
dπ2_dq2 = diff(π2, q2)
eq2 = Eq(dπ2_dq2, 0)
solution2 = solve(eq2, q2, dict=True)
q2_star = solution2[0][q2]
# 将最优产量代入利润函数,得到最大利润
π1_max = π1.subs({q1: q1_star, q2: q2_star})
π2_max = π2.subs({q1: q1_star, q2: q2_star})
print(f"企业1的最优产量为:{q1_star}")
print(f"企业2的最优产量为:{q2_star}")
print(f"企业1的最大利润为:{π1_max}")
print(f"企业2的最大利润为:{π2_max}")
注释:
- 代码中首先导入了
sympy
库,这是一个用于符号计算的Python库。 - 然后定义了模型中的变量和参数,包括两个厂商的产量(q1和q2)、市场需求参数(a和b)以及两个厂商的边际成本(c1和c2)。
- 接着定义了逆需求函数和成本函数,并基于这些函数定义了利润函数。
- 使用
diff
函数对利润函数求偏导数,并使用Eq
函数将偏导数设置为0,得到关于产量的方程。 - 使用
solve
函数求解方程,得到每个厂商的最优产量。 - 最后,将最优产量代入利润函数,得到每个厂商的最大利润。