ECON 321 Assignment 9: Bertrand

Two-firm linear demand system with different intercepts for the two firms:

{demand1,demand2}={(Subscript[a, 1])-b (Subscript[p, 1])+d (Subscript[p, 2]),(Subscript[a, 2])-b (Subscript[p, 2])+d (Subscript[p, 1])}

Assume constant marginal cost c. Then the profits of firms 1 and 2,  their corresponding first order conditions and reaction functions are

{profit1,profit2}={((Subscript[p, 1])-c)demand1,((Subscript[p, 2])-c)demand2}

{FOC1,FOC2} = {D[profit1,(Subscript[p, 1])]==0,D[profit2,(Subscript[p, 2])]==0}

{react1,react2} ={Solve[FOC1,(Subscript[p, 1])],Solve[FOC2,(Subscript[p, 2])]}/.Rule->Equal//Flatten

Solve simultaneously to find the Bertrand-Nash equilibrium:

pstars = Solve[{react1,react2},{(Subscript[p, 1]),(Subscript[p, 2])}]//Flatten

qstars={demand1,demand2}/.pstars//Simplify

profitstars={profit1,profit2}/.pstars//Simplify

Find the parameters that match the specified inverse demand functions

inversedemands={(Subscript[p, 1])==10-2(Subscript[q, 1])-(Subscript[q, 2]),(Subscript[p, 2])==10-2(Subscript[q, 2])-(Subscript[q, 1])}

demands=Solve[inversedemands,{(Subscript[q, 1]),(Subscript[q, 2])}]//Flatten//Expand//N

params={(Subscript[a, 1])->(10/3),(Subscript[a, 2])->(10/3),b->(2/3),d->(1/3),c->1}

Evaluate equilibrium at these parameters

{pstars,qstars,profitstars}/.params

Plot of the reaction functions:

reactions = {react1[[2]],Solve[react2,(Subscript[p, 1])][[1]][[1]][[2]]}/.params

Plot[reactions,{(Subscript[p, 2]),0,6},PlotRange->{0,6}]

Sequential Bertrand Competition

Solve Backward, Firm 2 Observes (Subscript[p, 1]) and Maximizes Profits

Stage 2 is the same as firm 2’s reaction function above

reaction2=react2/.Equal->Rule

Firm 1 Expects this reaction and solves

seqProfit1 = ((Subscript[p, 1])-c)demand1/.reaction2;

seqFOC1 = D[seqProfit1,(Subscript[p, 1])]==0//Simplify;

seqPrice1 = Solve[seqFOC1,(Subscript[p, 1])]//Flatten//First;

Sequential Equilibrium Outcome  is

seqPrice2 = reaction2/.seqPrice1//Factor;

seqpstars={seqPrice1,seqPrice2};

seqqstars={demand1,demand2}/.{seqPrice1,seqPrice2}//Simplify;

seqProfits={profit1,profit2}/.{seqPrice1,seqPrice2}//Simplify;

{seqPrice1,seqPrice2,seqqstars,seqProfits}/.params//N

Give an x advantage to firm 1

Set up some parameters

xparams={c->1,(Subscript[a, 2])->(10/3),(Subscript[a, 1])->x (10/3),b->(2/3),d->(1/3),c->1}

Make prices into price discount/markup of firm 1 relative to firm 2

priceHigherBert=((Subscript[p, 1])/(Subscript[p, 2]))/.pstars/.xparams//Simplify

priceHigherSeq=((Subscript[p, 1])/(Subscript[p, 2]))/.seqPrice1/.seqPrice2/.xparams//Simplify

Make quantities into market share of firm 1:

marketshare1Bert=demand1/(demand1+demand2)/.pstars/.xparams//Simplify

marketshare1Seq=demand1/(demand1+demand2)/.seqpstars/.xparams//Simplify

Make profits into profit advantage of firm 1 :

profitAdv1Bert=profit1/profit2/.pstars/.xparams//Simplify

profitAdv1Seq=profit1/profit2/.seqpstars/.xparams//Simplify

Now we can visualize what happens when Firm 1’s product gets better (x goes up)

Plot[{priceHigherBert,priceHigherSeq,1},{x,0.9,1.1},PlotLabels->Automatic,GridLines->{{1},{}},AxesLabel->Automatic]

Plot[{marketshare1Bert,marketshare1Seq,0.5},{x,0.9,1.1},PlotLabels->Automatic,GridLines->{{1},{}},AxesLabel->Automatic]

Plot[{profitAdv1Bert,profitAdv1Seq,1},{x,0.95,1.05},PlotLabels->Automatic,GridLines->{{1},{}},AxesLabel->Automatic]