博弈论——伯特兰德寡头模型(Bertrand Model)

伯特兰德寡头模型(Bertrand Model)

0 引言

在前面几篇文章中,我们介绍了古诺模型(Cournot duopoly model)和斯塔克尔伯格模型(Stackelberg model)
博弈论——连续产量古诺模型(Cournot duopoly model)
博弈论——斯塔克尔伯格模型(Stackelberg model)

这两个模型都是把厂商的产量作为竞争手段,是一种产量竞争模型,也就是说博弈方的决策变量都是产量,而伯特兰德模型是价格竞争模型
同时我们也介绍了反应函数法:得益是策略多元连续函数的博弈,都可以求每个博弈方的反应函数,解出各博弈方反应函数的交点就是纳什均衡。这种用反应函数求纳什均衡的方法,称为“反应函数法”。我们也分别用反应函数对古诺模型和斯塔克尔伯格模型进行了求解。
在这篇文章中,我们将继续推进反应函数法的使用,利用该方法来求解伯特兰德模型。

1 伯特兰德寡头模型

1.1 模型建立

在伯特兰德价格博弈模型中,两寡头生产有一定差别的产品。产品差别指在品牌、质量和包装等方面有所不同的同类产品,有很强的替代性,但又不是完全可替代。最后,仍强调两个厂商是同时决策的。假设厂商1生产产品1,厂商2生产产品2。
产品价格:P1、P2分别为厂商1、厂商2的产品价格;
潜在市场规模:a1、a2分别为产品1、产品2的潜在市场规模;
生产成本:假设两个厂商无固定成本,边际生产成本分别为c1和c2;
价格弹性:b1、b2为产品1、产品2的价格弹性;
产品的替代系数:d1、d2为两个产品的替代系数。
根据上述参数设置,我们得到了以下的模型:
假设当厂商1和厂商2价格分别为P1和 P2时,各自的需求函数为:
q 1 = q 1 ( P 1 , P 2 ) = a 1 − b 1 P 1 + d 1 P 2 q_1=q_1 (P_1,P_2 )=a_1-b_1 P_1+d_1 P_2 q1=q1(P1,P2)=a1b1P1+d1P2

q 2 = q 2 ( P 1 , P 2 ) = a 2 − b 2 P 2 + d 2 P 1 q_2=q_2 (P_1,P_2 )=a_2-b_2 P_2+d_2 P_1 q2=q2(P1,P2)=a2b2P2+d2P1
    在该博弈中,两博弈方的决策变量为产品价格,因此各自的策略空间为 s 1 = [ 0 , P 1 m a x ] s_1=[0,P_{1max}] s1=[0P1max] s 2 = [ 0 , P 2 m a x ] s_2=[0,P_{2max}] s2=[0P2max],其中 P 1 m a x P_{1max} P1max P 2 m a x P_{2max} P2max是厂商1和厂商2还能卖出产品的最高价格。两博弈方的得益是各自的利润,即销售收益减去成本,它们都是双方价格的函数为:
π 1 = π 1 ( P 1 , P 2 ) = P 1 q 1 − c 1 q 1 = ( P 1 − c 1 ) ( a 1 − b 1 P 1 + d 1 P 2 ) π_1=π_1 (P_1,P_2 )=P_1 q_1-c_1 q_1=(P_1-c_1)(a_1-b_1 P_1+d_1 P_2) π1=π1(P1,P2)=P1q1c1q1=(P1c1)(a1b1P1+d1P2)

π 2 = π 2 ( P 1 , P 2 ) = P 2 q 2 − c 2 q 2 = ( P 2 − c 2 ) ( a 2 − b 2 P 2 + d 2 P 1 ) π_2=π_2 (P_1,P_2 )=P_2 q_2-c_2 q_2=(P_2-c_2)(a_2-b_2 P_2+d_2 P_1) π2=π2(P1,P2)=P2q2c2q2=(P2c2)(a2b2P2+d2P1)

1.2 模型求解

我们用反应函数法分析这个博弈。对上述得益函数求偏导,并且偏导为0时存在最大值:
∂ π 1 ∂ P 1 = − 2 b 1 P 1 + c 1 b 1 + a 1 + d 1 P 2 \frac{∂π_1}{∂P_1}=-2b_1 P_1+c_1 b_1+a_1+d_1 P_2 P1π1=2b1P1+c1b1+a1+d1P2
∂ π 2 ∂ P 2 = − 2 b 2 P 2 + c 2 b 2 + a 2 + d 2 P 1 \frac{∂π_2}{∂P_2}=-2b_2 P_2+c_2 b_2+a_2+d_2 P_1 P2π2=2b2P2+c2b2+a2+d2P1
∂ π 1 ∂ P 1 = 0 \frac{∂π_1}{∂P_1}=0 P1π1=0 ∂ π 2 ∂ P 2 = 0 \frac{∂π_2}{∂P_2}=0 P2π2=0得到两个厂商的反应函数为:
P 1 = R 1 ( P 2 ) = 1 2 b 1 ( c 1 b 1 + a 1 + d 1 P 2 ) P_1=R_1 (P_2 )=\frac{1}{2b_1} (c_1 b_1+a_1+d_1 P_2) P1=R1(P2)=2b11(c1b1+a1+d1P2)
P 2 = R 2 ( P 1 ) = 1 2 b 2 ( c 2 b 2 + a 2 + d 2 P 1 ) P_2=R_2 (P_1 )=\frac{1}{2b_2}(c_2 b_2+a_2+d_2 P_1) P2=R2(P1)=2b21(c2b2+a2+d2P1)
    回顾一下我们在反应函数文章中的介绍,该博弈的纳什均衡是两条反应函数对应图像的交点 ( P 1 ∗ , P 2 ∗ ) (P_1^*,P_2^*) (P1,P2),并且这个交点需要满足:
P 1 ∗ = 1 2 b 1 ( c 1 b 1 + a 1 + d 1 P 2 ∗ ) P_1^*=\frac{1}{2b_1} (c_1 b_1+a_1+d_1 P_2^*) P1=2b11(c1b1+a1+d1P2)
P 2 ∗ = 1 2 b 2 ( c 2 b 2 + a 2 + d 2 P 1 ∗ ) P_2^*=\frac{1}{2b_2}(c_2 b_2+a_2+d_2 P_1^*) P2=2b21(c2b2+a2+d2P1)
解上述的二元一次方程组,得:
P 1 ∗ = d 1 ( a 2 + b 2 c 2 ) + 2 b 2 ( a 1 + c 1 b 1 ) 4 b 1 b 2 − d 1 d 2 P_1^*=\frac{d_1 (a_2+b_2 c_2 )+2b_2 (a_1+c_1 b_1)}{4b_1 b_2-d_1 d_2} P1=4b1b2d1d2d1(a2+b2c2)+2b2(a1+c1b1)
P 2 ∗ = d 2 ( a 1 + c 1 b 1 ) + 2 b 1 ( a 2 + b 2 c 2 ) 4 b 1 b 2 − d 1 d 2 P_2^*=\frac{d_2 (a_1+c_1 b_1 )+2b_1 (a_2+b_2 c_2)}{4b_1 b_2-d_1 d_2} P2=4b1b2d1d2d2(a1+c1b1)+2b1(a2+b2c2)
( P 1 ∗ , P 2 ∗ ) (P_1^*,P_2^*) (P1,P2)为该博弈的唯一纳什均衡。将 P 1 ∗ 、 P 2 ∗ P_1^*、P_2^* P1P2代入得益函数中,可以求得两个厂商的均衡得益,这里我就不再赘述了,有兴趣的读者可以自行代入计算。

谢老师的书中,对该模型的各参数做了具体假设: a 1 = a 2 = 28 , b 1 = b 2 = 1 , d 1 = d 2 = 0.5 , c 1 = c 2 = 2 a_1=a_2=28,b_1=b_2=1,d_1=d_2=0.5,c_1=c_2=2 a1=a2=28b1=b2=1,d1=d2=0.5c1=c2=2,则可以解得 P 1 ∗ = P 2 ∗ = 20 , u 1 ∗ = u 2 ∗ = 324 P_1^*=P_2^*=20,u_1^*=u_2^*=324 P1=P2=20u1=u2=324

2 总结

更一般的伯特兰德模型可以有n个寡头,产品也可以是无差别的。产品无差别时,可以考虑消费者对价格的敏感性问题。因为如果所有消费者对价格都非常敏感,则生产无差别产品的厂商中价格高的一方完全卖不出去,价格差别不可能存在。多寡头伯特兰德模型的分析是两寡头模型的简单推广,只需求出每个厂商对其他各个厂商价格的反应函数,解出它们的交点即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/95555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyTorch应用实战三:构建神经网络

文章目录 神经网络1.继承Module构建神经网络2.结构化构建神经网络3.函数式操作附:系列文章 神经网络 构建神经网络的一般步骤如下: 确定网络的结构:这包括输入层、输出层和隐藏层的数量以及每层中的节点数等。 收集和准备数据:这…

ARMday2

1~100累加 代码 .text .globl _start _start:mov r0, #1 fun:cmp r0,#100addls r1,r1,r0addls r0,r0,#1b fun .end运行结果

互联网Java工程师面试题·Elasticsearch 篇·第二弹

12、详细描述一下 Elasticsearch 索引文档的过程。 协调节点默认使用文档 ID 参与计算(也支持通过 routing ),以便为路由提供合适的分片。 shard hash(document_id) % (num_of_primary_shards) 1 、当分片所在的节点接收到来自协调节点…

每日一题 518零钱兑换2(完全背包)

题目 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整…

API基础————包

什么是包,package实际上就是一个文件夹,便于程序员更好的管理维护自己的代码。它可以使得一个项目结构更加清晰明了。 Java也有20年历史了,这么多年有这么多程序员写了无数行代码,其中有大量重复的,为了更加便捷省时地…

Flv.js编译使用

Flv.js (https://github.com/bilibili/flv.js)是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。本文讲述其编译使用。 Flv.js目前最新版本是v1.6.2。在htt…

基于混合蛙跳优化的BP神经网络(分类应用) - 附代码

基于混合蛙跳优化的BP神经网络(分类应用) - 附代码 文章目录 基于混合蛙跳优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.混合蛙跳优化BP神经网络3.1 BP神经网络参数设置3.2 混合蛙跳算法应用 4.测试结果…

gitgitHub

在git中复制CtrlInsert、粘贴CtrlShif 一、用户名和邮箱的配置 查看用户名 :git config user.name 查看密码: git config user.password 查看邮箱:git config user.email 查看配置信息: $ git config --list 修改用户名 git co…

Java笔记七(封装,继承与多态)

封装 该露的露,该藏的藏 程序设计追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用 封装(数据的隐藏) 通常,…

【Pandas】Apply自定义行数

文章目录 1. Series的apply方法2. DataFrame的apply方法2.1 针对列使用apply2.2 针对行使用apply Pandas提供了很多数据处理的API,但当提供的API不能满足需求的时候,需要自己编写数据处理函数, 这个时候可以使用apply函数apply函数可以接收一个自定义函数, 可以将DataFrame的行…

Linux shell编程学习笔记8:使用字符串

一、前言 字符串是大多数编程语言中最常用最有用的数据类型,这在Linux shell编程中也不例外。 本文讨论了Linux Shell编程中的字符串的三种定义方式的差别,以及字符串拼接、取字符串长度、提取字符串、查找子字符串等常用字符串操作,,以及反…

【2023年11月第四版教材】第18章《项目绩效域》(合集篇)

第18章《项目绩效域》(合集篇) 1 章节内容2 干系人绩效域2.1 绩效要点2.2 执行效果检查2.3 与其他绩效域的相互作用 3 团队绩效域3.1 绩效要点3.2 与其他绩效域的相互作用3.3 执行效果检查3.4 开发方法和生命周期绩效域 4 绩效要点4.1 与其他绩效域的相互…

20231005使用ffmpeg旋转MP4视频

20231005使用ffmpeg旋转MP4视频 2023/10/5 12:21 百度搜搜:ffmpeg 旋转90度 https://zhuanlan.zhihu.com/p/637790915 【FFmpeg实战】FFMPEG常用命令行 https://blog.csdn.net/weixin_37515325/article/details/127817057 FFMPEG常用命令行 5.视频旋转 顺时针旋转…

System Generator学习——时间和资源分析

文章目录 前言一、目标二、步骤三、步骤 1 :系统生成器的时序分析1、时序分析2、解决时间违规问题 四、步骤 2 :系统生成器中的资源分析总结 前言 在本节实验中,你将学习如何通过在 Simulink 中进行仿真来验证设计的功能,以确保在…

熟练掌握Junit5框架

目录 一、注解 1.1 @Test 1.2 @Disabled 1.3 @BeforeAll 1.4 @AfterAll 1.5 @BeforeEach 1.6 @AfterEach 二、参数化 2.1单参数获取数据 2.2 CSV获取参数 2.3 方法获取数据 2.4 多参数获取数据 2.5测试用例执行顺序 2.6断言 2.6.1断言相等 2.6.2断言不相等

vue3使用v-model控制子组件进行双向数据绑定

vue2写法: 中父组件调用子组件: <child :isShow.sync"isShow" v-show"isShow"/> 子组件想要消失, 在子组件写: this.$emit("update:isShow",false); 具体代码就不粘贴了 vue3写法: 父组件核心代码: v-model:a"xxx" 子组…

aardio 读取 Excel文件,显示在 listview 中

编写 main.aardio 如下 import win.ui; /*DSG{{*/ winform win.form(text"excel1";right801;bottom500) winform.add( button1{cls"button";text"读取Excel文件";left19;top14;right126;bottom44;z1}; button2{cls"button";text&quo…

力扣第226翻转二叉数 c++三种方法 +注释

题目 226. 翻转二叉树 简单 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&am…

常见的几种排序方式

常见的几种排序方式 1. 排序的概念2. 常见排序算法的实现2.1 插入排序2.1.1基本思想2.1.2 直接插入排序2.1.3 希尔排序( 缩小增量排序 ) 2.2 选择排序2.2.1基本思想2.2.2 直接选择排序:2.2.3 堆排序 2.3 交换排序2.3.1冒泡排序2.3.2 快速排序 2.4 归并排序2.4.1 基本思想2.4.2 …

【POST请求-腾讯翻译君-爬虫案例】

原因&#xff1a;尝试多个在线翻译平台&#xff0c;由于返回数据存在加密原因&#xff08;暂时不会解密&#xff09;&#xff0c;最总找到 ”腾讯翻译君“ 完成爬虫案例POST请求测试 案例测试网址 腾讯翻译 &#xff1a;https://fanyi.qq.com/ import requests import jsoncla…