Python+经济学:无差异曲线与效用函数可视化
前言:
借助Python中的三维绘图工具对微观经济学中的效用函数进行可视化展示。其中重点分析了三类典型的效用函数。
无差异曲线凸向原点的一般效用函数:
无差异曲线为向右下方倾斜直线的完全替代品效用函数:
无差异曲线为直角折线的完全互补品效用函数:
同一单位位于同一条无差异曲线上所对应的生产要素组合都具备相同的产出水平。这一概念与其在地理学中研究的等高线概念相仿。由此可知,在经济学中我们通常利用contour线条来描绘和分析无差异曲线。
代码实现:
import matplotlib.pyplot as plt import numpy as np fig = plt.figure(1) #创建一个新的三维坐标系 ax1 = plt.axes(projection='3d') #生成等间距采样点 n=100 a=3 b=2 x=np.linspace(0,30,n) y=np.linspace(0,30,n) #构建网格数据 X,Y=np.meshgrid(x,y) #计算一般效用曲面 Z=np.sqrt(XY) #计算完全替代品效用曲面 Z=aX+bY #计算完全互补品效用曲面 Z=np.minimum(aX,b*Y) #绘制曲面图 Utility=ax1.plot_surface(X,Y,Z,cmap='coolwarm',alpha=0.8) #生成等高线 Indiff=ax1.contour(X,Y,Z,cmap='rainbow') #添加坐标轴标注 ax1.set_xlabel('Good X') ax1.set_ylabel('Good Y') ax1.set_zlabel('Utility') #添加颜色条说明 fig.colorbar(Utility,shrink=0.5,aspect=20) fig=plt.figure(2) ax2=plt.subplot(111) Indiff=ax2.contour(X,Y,Z,cmap='rainbow') ax2.set_xlabel('Good X') ax2.set_ylabel('Good Y') plt.clabel(Indiff,inline=True,fontsize=12)
可视化效果:
一般效用函数曲面

一般无差异曲线

完全替代品效用曲面

完全替代品无差异曲线

完全互补品效用曲面

完全互补品无差异曲线

