古诺双寡头模型MATLAB求解(博弈论)
基本概念
古诺竞争模型(也称古诺模型)是早期的寡头垄断模型。它是法国经济学家古诺于1838年提出的。
古诺模型的假定是:市场上有A、B两个厂商生产和销售相同的产品,他们的生产成本为0;他们共同面临的市场的需求是线性的,A、B两个厂商都准确地了解市场的需求曲线;A、B两个厂商都是在已知对方产量的情况下,各自确定能够给自己带来最大利润的产量,即每一个厂商都是消极地以自己的产量去适应对方已确定的产量。
设市场需求函数为:
D=D(p1+p2)=a−b(p1+p2)D=D(p1+p2)=a−b(p1+p2)
其中p1p1和p2p2分别是两个企业的产量。假设两企业的成本函数相同,都为C=c0pC=c0p(p为产量),则企业1在预测企业2的产量为p2p2的情况下,寻求使自己利润最大化的最优产量p1p1,即
maxp1[a−b(p1+p2)]−cp1maxp1[a−b(p1+p2)]−cp1
上面优化模型中的最优解的p1p1显然是p2p2的函数p1=f(p2)p1=f(p2);
同样企业2在以预测企业1的产量为P1P1的情况下,寻求使自己利润最大化的最优产量p2p2,即
maxp2[a−b(p1+p2)]−cp2maxp2[a−b(p1+p2)]−cp2
上面的优化模型中的最优解p2p2显然是p1p1的函数p2=g(p1)p2=g(p1);
同时满足下面方程的(p1,p2)(p1,p2)称为古诺平衡:
{p1=f(p2)p2=g(p1){p1=f(p2)p2=g(p1)
根据最优化条件可以得到均衡时:
p1=p2=a−c3bp1=p2=a−c3b
古诺竞争模型应用实例
设市场的需求函数为D=61.2−10∗(p1+p2)D=61.2−10∗(p1+p2),两企业的成本函数都是C=1.2pC=1.2p,求古诺均衡时两企业的产量。
解:由优化模型得到
企业1的优化模型为:
maxp1[61.2−10(p1+p2)]−1.2p1maxp1[61.2−10(p1+p2)]−1.2p1
其最优产量为:p1=6−p22p1=6−p22
企业2的优化模型为:
maxp2[61.2−10(p1+p2)]−1.2p2maxp2[61.2−10(p1+p2)]−1.2p2
其最优产量为:p2=6−p12p2=6−p12
则古诺均衡时两企业的产量为:p1=p2=61.2−1.23∗10=2p1=p2=61.2−1.23∗10=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
函数