-
Introduction 4
-
Lecture1.1
-
Lecture1.2
-
Lecture1.3
-
Lecture1.4
-
-
Production Possibilities Frontier 4
-
Lecture2.1
-
Lecture2.2
-
Lecture2.3
-
Lecture2.4
-
-
Trade 3
-
Lecture3.1
-
Lecture3.2
-
Lecture3.3
-
-
Demand 4
-
Lecture4.1
-
Lecture4.2
-
Lecture4.3
-
Lecture4.4
-
-
Supply 2
-
Lecture5.1
-
Lecture5.2
-
-
Equilibrium 4
-
Lecture6.1
-
Lecture6.2
-
Lecture6.3
-
Lecture6.4
-
-
Curve Movements 4
-
Lecture7.1
-
Lecture7.2
-
Lecture7.3
-
Lecture7.4
-
-
Elasticity and Revenue 5
-
Lecture8.1
-
Lecture8.2
-
Lecture8.3
-
Lecture8.4
-
Lecture8.5
-
-
Taxes 7
-
Lecture9.1
-
Lecture9.2
-
Lecture9.3
-
Lecture9.4
-
Lecture9.5
-
Lecture9.6
-
Lecture9.7
-
-
Consumer and Producer Surplus 8
-
Lecture10.1
-
Lecture10.2
-
Lecture10.3
-
Lecture10.4
-
Lecture10.5
-
Lecture10.6
-
Lecture10.7
-
Lecture10.8
-
-
Imports and Exports 4
-
Lecture11.1
-
Lecture11.2
-
Lecture11.3
-
Lecture11.4
-
-
Tariffs 2
-
Lecture12.1
-
Lecture12.2
-
Equilibrium
Solution
import sympy
p = sympy.Symbol("p")
demandEquation = 10-p
supplyEquation = p
prices = []
demandQ = []
supplyQ = []
for price in range(0,11):
demandQ += [demandEquation.subs(p,price)]
supplyQ += [supplyEquation.subs(p,price)]
prices += [price]
print(prices)
print(demandQ)
print(supplyQ)
Now let’s solve for the equilibrium price
EquilibriumP = sympy.solve(demandEquation-supplyEquation)
print(EquilibriumP)
EquilibriumP = EquilibriumP[0]
print(EquilibriumP)
We get an array with 5 for the price, but since we want first (and only) element we do EquilibriumP = EquilibriumP[0]. Once we do this we get the number not an array. The way we get specific elements of an array is by indexing with [x] where x is the element we want, except 0 is the first, 1 is the second and so on.
To solve for the quantity we could just plug into one of the equations.
EquilibriumQ = demandEquation.subs(p,EquilibriumP)
print(EquilibriumQ)
Finally, let’s graph the equilibrium.
import matplotlib.pyplot as plt
plt.plot(demandQ,prices)
plt.plot(supplyQ,prices)
plt.plot(EquilibriumQ,EquilibriumP, 'ro')
plt.xlabel("Quantity")
plt.ylabel("Price")
plt.show()
Prev
Introducing Sympy
Next
Surplus and Shortage