古诺双寡头模型MATLAB求解(博弈论)

古诺双寡头模型MATLAB求解(博弈论)

基本概念

古诺竞争模型(也称古诺模型)是早期的寡头垄断模型。它是法国经济学家古诺于1838年提出的。

古诺模型的假定是:市场上有A、B两个厂商生产和销售相同的产品,他们的生产成本为0;他们共同面临的市场的需求是线性的,A、B两个厂商都准确地了解市场的需求曲线;A、B两个厂商都是在已知对方产量的情况下,各自确定能够给自己带来最大利润的产量,即每一个厂商都是消极地以自己的产量去适应对方已确定的产量。

设市场需求函数为:

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 (p为产量),则企业1在预测企业2的产量为 p2 p 2 的情况下,寻求使自己利润最大化的最优产量 p1 p 1 ,即
maxp1[ab(p1+p2)]cp1 max p 1 [ a − b ( p 1 + p 2 ) ] − c p 1

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

同样企业2在以预测企业1的产量为 P1 P 1 的情况下,寻求使自己利润最大化的最优产量 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 )

同时满足下面方程的 (p1,p2) ( p 1 , p 2 ) 称为古诺平衡:

{p1=f(p2)p2=g(p1) { p 1 = f ( p 2 ) p 2 = g ( p 1 )

根据最优化条件可以得到均衡时:
p1=p2=ac3b p 1 = p 2 = a − c 3 b

古诺竞争模型应用实例

设市场的需求函数为 D=61.210(p1+p2) D = 61.2 − 10 ∗ ( p 1 + p 2 ) ,两企业的成本函数都是 C=1.2p C = 1.2 p ,求古诺均衡时两企业的产量。

:由优化模型得到

企业1的优化模型为:

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

其最优产量为: p1=6p22 p 1 = 6 − p 2 2

企业2的优化模型为:

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

其最优产量为: p2=6p12 p 2 = 6 − p 1 2

则古诺均衡时两企业的产量为: p1=p2=61.21.2310=2 p 1 = p 2 = 61.2 − 1.2 3 ∗ 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函数,具体参考http://blog.sina.com.cn/s/blog_66faf9cf0101ckuu.html

你可能感兴趣的:(古诺模型,博弈论,Optimization,MATLAB)