Public Goods

Hal Varian
January 1992

Efficient provision of a public good

Let's calculate the Pareto efficient amount of a public good for two  Cobb-Douglas consumers with identical utility functions.  Again, we'll maximize a weighted sum of utilities.  Assume that each agent has 10 units of the private good and that 1 unit of the public good can be produced from one unit of the private good.   The first agent puts twice the weight on the public good as the second agent.

L= a(2Log[G] + Log[x1]) + (1-a)( Log[G]+ Log[20-G-x1])
solution=Solve[{D[L,G]==0,D[L,x1]==0},{G,x1}][[1]]

Nash provision of a public good

Let's figure out how much of the public good we get if each agent contributes voluntarily.  We have to solve for a Nash equilibrium.

solution1=Solve[D[2Log[g1 + g2] + Log[10-g1],g1]==0,g1][[1]] 
G1[g2_] := Max[g1,0]/.solution1
G1[g2]

solution2=Solve[D[Log[g1 + g2] + Log[10-g2],g2]==0,g2][[1]]

G2[g1_] := Max[g2,0]/.solution2
G1[g2]  := Max[g1,0]/.solution1

Now Plot the two reaction curves.

reaction1=Plot[Evaluate[G2[g1]],{g1,0,25}]
reaction2=Plot[Evaluate[G1[g2]],{g2,0,25}]

Show[reaction1,reaction2]

Sequential provision of a public good

Suppose now that agent 1 contributes to the public good first.  Agent 1's objective function is:

v1[g1_] := 2Log[g1+G2[g1]] + Log[10-g1]
Plot[v1[g1],{g1,0,9.9}]

Agent 1 appears to have an interior maximum; let's check:

FindMinimum[-v1[g1],{g1,5,6}]

What if agent 2 contributes first?  Then we have

v2[g2_] := Log[G1[g2] + g2] + Log[10-g2]
Plot[v2[g2],{g2,0,9.9}]

The optimal choice of agent 2 appears to be zero.  Let's check:

FindMinimum[-v2[g2],{g2,5,6}]