古诺双寡头模型MATLAB求解(博弈论)
古诺双寡头模型MATLAB求解(博弈论)
基本概念
古诺竞争模型(也称古诺模型)是早期的寡头垄断模型。它是法国经济学家古诺于1838年提出的。
古诺模型的假定是:市场上有A、B两个厂商生产和销售相同的产品,他们的生产成本为0;他们共同面临的市场的需求是线性的,A、B两个厂商都准确地了解市场的需求曲线;A、B两个厂商都是在已知对方产量的情况下,各自确定能够给自己带来最大利润的产量,即每一个厂商都是消极地以自己的产量去适应对方已确定的产量。
设市场需求函数为:
其中和分别是两个企业的产量。假设两企业的成本函数相同,都为(p为产量),则企业1在预测企业2的产量为的情况下,寻求使自己利润最大化的最优产量,即
上面优化模型中的最优解的显然是的函数;
同样企业2在以预测企业1的产量为的情况下,寻求使自己利润最大化的最优产量,即
上面的优化模型中的最优解显然是的函数;
同时满足下面方程的称为古诺平衡:
根据最优化条件可以得到均衡时:
古诺竞争模型应用实例
设市场的需求函数为,两企业的成本函数都是,求古诺均衡时两企业的产量。
解:由优化模型得到
企业1的优化模型为:
其最优产量为:
企业2的优化模型为:
其最优产量为:
则古诺均衡时两企业的产量为:。
MATLAB实现
clear clc syms x; i=1; y=6*rand; %初始化企业2的产量 z=6*rand; %初始化企业1的产量 for iter=1:10000 z_old=z; y_old=y; y1=-x*(61.2-10*(x+y_old))+1.2*x; %企业1 vdpf = matlabFunction([y1],'Vars',{x}); %将符号表达式转化为函数句柄!!! [v1(i),fval1(i)]=fminsearch(vdpf,0); z=v1(i); y2=-x*(61.2-10*(x+z_old))+1.2*x; %企业2 vdpf = matlabFunction([y2],'Vars',{x}); [v2(i),fval2(i)]=fminsearch(vdpf,0); y=v2(i); if abs(z-z_old)<0.0001 && abs(y-y_old)<0.0001 break; end i=i+1; end figure(1); plot(v1,-fval1,'b*-',v2,-fval2,'ro-'); legend('企业1','企业2'); grid on
需要注意的是第13行将符号表达式转换为函数句柄,变成函数句柄后才能方便调用fminsearch
函数,具体参考http://blog.sina.com.cn/s/blog_66faf9cf0101ckuu.html
分类:
MATLAB
, Optimization
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)