斯塔克尔伯格竞争模型(主从博弈模型)

本文介绍斯塔克尔伯格竞争模型的基本概念及其数学表示,该模型是一种价格领导模型,涉及厂商之间的行动次序差异。通过具体实例展示了如何求解斯塔克尔伯格均衡时的厂商产量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

斯塔克尔伯格竞争模型(主从博弈模型)

基本概念

古诺模型实际上是假定两个寡头厂商同时作出各自的产量决策的。

现在假设厂商1先决定它的产量,然后厂商2知道厂商1的产量后再做出它的产量决策。因此,在确定自己产量时,厂商1必须考虑厂商2将如何作出反应。其他假设与古诺模型相同,这一模型称为斯塔克伯格(Stackelberg)模型。

斯塔克尔伯格竞争模型是一个价格领导模型,厂商之间存在着行动次序的区别。产量的决定依据以下次序:领导性厂商决定一个产量,然后跟随者厂商可以观察到这个产量,然后根据领导性厂商的产量来决定他自己的产量。

要注意的是,领导性厂商在决定自己的产量的时候,充分了解跟随厂商会如何行动——这意味着领导性厂商可以知道跟随厂商的反应函数。

因此,领导性厂商自然会预期到自己决定的产量对跟随厂商的影响。正是考虑到这种影响的情况下,领导性厂商所决定的产量将是一个以跟随厂商的反应函数为约束的利润最大化产量。在斯塔克尔伯格模型中,领导性厂商的决策不再需要自己的反应函数。

设市场需求函数为:

D=D(p1+p2)=ab(p1+p2) D = D ( p 1 + p 2 ) = a − b ( p 1 + p 2 )

其中 p1 p 1 p2 p 2 分别是两个企业的产量。假设两企业的成本函数相同,都为 C=c0p C = c 0 p ,首先考虑在给定企业1的计划产量下,企业2寻求使自己利润最大化的最优产量 p2 p 2 ,即:
maxp2[ab(p1+p2)]cp2 max p 2 [ a − b ( p 1 + p 2 ) ] − c p 2

上面优化模型中的最优解的 p2 p 2 显然是 p1 p 1 的函数 p2=g(p1) p 2 = g ( p 1 )

在知道企业2 对任意给定产量的反应后,企业1的最优产量模型为:

maxp1[ab(p1+p2)]cp1,s.t.p2=g(p1) max p 1 [ a − b ( p 1 + p 2 ) ] − c p 1 , s . t . p 2 = g ( p 1 )

因此斯塔克尔伯格(Stackelberg)模型是先求解如下的优化模型:
maxp2[ab(p1+p2)]cp2 max p 2 [ a − b ( p 1 + p 2 ) ] − c p 2

得到 p2=g(p1) p 2 = g ( p 1 )

然后再求解如下的优化模型:

maxp1[ab(p1+p2)]cp1,s.t.p2=g(p1) max p 1 [ a − b ( p 1 + p 2 ) ] − c p 1 , s . t . p 2 = g ( p 1 )

得到 p1 p 1 ,代入 p2=g(p1) p 2 = g ( p 1 ) 得到 p2 p 2 ,如此得到斯塔克尔伯格均衡时的 (p1,p2) ( p 1 , p 2 )

斯塔克尔伯格应用实例

设市场需求函数为 D=61.210(p1+p2) D = 61.2 − 10 ∗ ( p 1 + p 2 ) ,两企业的成本函数都为 C=1.2p C = 1.2 p ,求斯塔克尔伯格均衡时两个企业的产量。(企业1为领导者,企业2为跟随者)

:首先求解如下的优化模型:

maxp2[61.210(p1+p2)]1.2p2 max p 2 [ 61.2 − 10 ∗ ( p 1 + p 2 ) ] − 1.2 p 2

得到 p2=6010p120 p 2 = 60 − 10 p 1 20 ,然后求解下列优化模型:
maxp1[ab(p1+p2)]cp1,s.t.p2=6010p120 max p 1 [ a − b ( p 1 + p 2 ) ] − c p 1 , s . t . p 2 = 60 − 10 p 1 20

得到结果为 p1=3,p2=1.5 p 1 = 3 , p 2 = 1.5

MATLAB实现

clear
clc
syms x z;
y2=-x*(61.2-10*(x+z))+1.2*x;
eq=diff(y2,x);
p2=solve(eq,x);

y1=-z*(61.2-10*(z+p2))+1.2*z;
vdpf = matlabFunction([y1],'Vars',{z}); %将符号表达式转化为函数句柄!!!
[p1,fval1]=fminsearch(vdpf,0);
p2=subs(p2,'z',p1);
[p1,p2]
### 斯塔克伯格博弈模型简介 斯塔克伯格博弈是一种序贯博弈,其中领导者先行动,跟随者观察领导者的动作后再采取相应措施。这种博弈广泛应用于经济学、管理科学等领域,特别是在供应链管理和市场竞争分析中。 ### 斯塔克伯格博弈模型实现代码示例 下面是一个简单的Python代码示例,展示了如何使用数值方法求解双寡头市场的斯塔克伯格博弈问题: ```python import numpy as np from scipy.optimize import minimize_scalar def follower_reaction(q_leader, params): """定义跟随者的反应函数""" a, b, c = params['a'], params['b'], params['c'] def profit_follower(q_follower): price = a - b * (q_leader + q_follower) return -(price - c) * q_follower res = minimize_scalar(profit_follower, bounds=(0, None), method='bounded') return res.x def leader_profit(q_leader, params): """定义领导者的利润函数""" a, b, c = params['a'], params['b'], params['c'] q_follower = follower_reaction(q_leader, params) price = a - b * (q_leader + q_follower) return -(price - c) * q_leader params = {'a': 100, 'b': 1, 'c': 20} # 市场参数设置 res = minimize_scalar(lambda x: leader_profit(x, params), bounds=(0, None), method='bounded') print(f"Leader's optimal quantity: {res.x}") print(f"Follower's reaction function output: {follower_reaction(res.x, params)}") ``` 此段代码实现了基本的斯塔克伯格博弈框架,通过给定市场条件下的需求曲线和成本结构来决定两家企业之间的产量竞争关系[^1]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值