ECON 321 Assignment 5

Let’s combine Assignment 4 and 5, so we’ll have a Cournot duopoly with firms that have both differentiated products and also different costs. Firm 1 has the same demand parameters, but we’ll give firm 2 the potential to have higher or lower demand response and also higher or lower costs.

First quit the kernel to make sure we’re starting fresh: go to the menu bard and select Evaluation >> Quit Kernel >> Local.

Now we need to set up an inverse demand system.

inversedemand1 =10-2(Subscript[q, 1])-(Subscript[q, 2])

inversedemand2=10-2(Subscript[b, 2])(Subscript[q, 2])-(Subscript[q, 1])

Firm 1’s Profit Maximization Problem (firm 1 has constant marginal cost 1)

profit1=(inversedemand1-1)(Subscript[q, 1])

First Order Condition for Firm 1:

FOC1 = D[profit1,(Subscript[q, 1])]==0

Three ways to convert firm 1’s FOC to a reaction function:

react1=Solve[FOC1,(Subscript[q, 1])]

react1=(Subscript[q, 1])==Solve[FOC1,(Subscript[q, 1])][[1]][[1]][[2]]

react1=Solve[FOC1,(Subscript[q, 1])]/.Rule-> Equal //Flatten // First

Firm 2’s Profit Maximization Problem (firm 2 has variable marginal cost (Subscript[c, 2]))

profit2=(inversedemand2-(Subscript[c, 2]))(Subscript[q, 2])

FOC2 = D[profit2,(Subscript[q, 2])]==0

react2=Solve[FOC2,(Subscript[q, 2])]/.Rule->Equal //Flatten//First

Solve simultaneously to find the Cournot-Nash equilibrium:

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

Evaluate inverse demands and profits to find what they are at the equilibrium quantities:

pstars={inversedemand1,inversedemand2}/.qstars

pstars={inversedemand1,inversedemand2}/.qstars //Simplify

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

Graphing the Results

Let’s establish a starting point by finding the quantities for our familiar numbers

qstars /. {(Subscript[b, 2])->1, (Subscript[c, 2])->1} //N

Check that the profit function is actually a well defined “hill.”

Plot[profit1/.(Subscript[q, 2])->1.8,{(Subscript[q, 1]),0,4}]

Check the reaction function diagram both for the symmetric case and where (Subscript[b, 2])=2.

inversereact1=Solve[react1,(Subscript[q, 2])] /.Rule->Equal//Flatten //First

inversereact1=(Solve[react1,(Subscript[q, 2])] /.Rule->Equal//Flatten //First)[[2]]

react2

{graphreact2b21,graphreact2b22}=react2[[2]]/.{{(Subscript[b, 2])->1,(Subscript[c, 2])->1},{(Subscript[b, 2])->2,(Subscript[c, 2])->1}}

Plot[{inversereact1,graphreact2b21,graphreact2b22},{(Subscript[q, 1]),0,4},PlotRange->{{0,4},{0,4}},PlotLabels->Automatic]

See how the equilibrium quantities and profits change as this variable (Subscript[b, 2]) changes.

{graphq1star,graphq2star}={(Subscript[q, 1]),(Subscript[q, 2])}/.qstars/.(Subscript[c, 2])->1

Plot[{graphq1star,graphq2star},{(Subscript[b, 2]),0.5,2},PlotLabels->Automatic]

Calibrate Firm 2’s Demand Curve to a Specified Elasticity

Suppose we got some data that said that firm 2’s demand “should” have elasticity -1.3. First question, where along it? Probable answer: at the equilibrium quantity that we actually observe.

First find the formula for inverse elasticity using the firm 2 demand curve:

inverseelasticity2=D[inversedemand2,(Subscript[q, 2])] ((Subscript[q, 2])/inversedemand2)

We’re interested in what this elasticity is at a particular quantity point, qstars. Also suppose we have reason to believe that firm 2’s costs are 5% higher than firm 1’s, which means (Subscript[c, 2])=1.05. Then,

inverseelasticity2star=inverseelasticity2/.qstars/.(Subscript[c, 2])->1.05//Simplify

So we can pin this down to a value of (Subscript[b, 2]) by solving for where the inverse elasticity is 1 over 1.3:

calibratedb2=Solve[inverseelasticity2star==-(1/1.3),(Subscript[b, 2])]//Flatten//First

What quantity does a firm with this demand produce?

{(Subscript[q, 1]),(Subscript[q, 2])}/.qstars/.(Subscript[c, 2])->1.05/.calibratedb2

Compensating Advantages and Disadvantages

Suppose firm 2 may have higher costs than firm 1, i.e. (Subscript[c, 2])>1, but also may have a less price responsive demand, i.e. (Subscript[b, 2])<1. Then it’s possible for these differences to offset one another and firm 2 comes out just as well as if (Subscript[c, 2])=1 and (Subscript[b, 2])=1. Let’s see how this looks.

First let’s define the profits of firm 2 at equilibrium

profitstar2 == (profitstars[[2]]/.{(Subscript[c, 2])->1,(Subscript[b, 2])->1})

equalizingb2=Solve[(profitstar2 == (profitstar2/.{(Subscript[c, 2])->1,(Subscript[b, 2])->1})),(Subscript[b, 2])]//Flatten

equalizingb2/.(Subscript[c, 2])->1.05

Plot[(Subscript[b, 2])/.equalizingb2[[2]],{(Subscript[c, 2]),1,1.5},AxesLabel->Automatic]