import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(1) #定义新的三维坐标轴,用以绘制效用曲面
ax1 = plt.axes(projection='3d')
#定义三维数据与效用函数参数
n =100
a = 1
b = 2
x = np.linspace(0,30,n)
y = np.linspace(0,30,n)
X, Y = np.meshgrid(x,y)
#一般效用曲面
#Z = np.sqrt(X*Y)
#完全替代品效用曲面
#Z = a*X+b*Y
#完全互补品效用曲面
#Z = np.minimum(a*X,b*Y)
#最大效用函数
#Z = np.maximum(a*X,b*Y)
#不完全互补品
Z = np.minimum(b*X-a*Y,b*Y-a*X)
#曲面图
Utility = ax1.plot_surface(X,Y,Z,cmap='coolwarm',alpha=0.8)
#添加题目
plt.title('U=min(2x-y,2y-x)')
#叠加等高(无差异)线
ax1.contour(X,Y,Z,zdir='z',offset=0,cmap='rainbow')
#设置坐标轴标签
ax1.set_xlabel('Good X')
ax1.set_ylabel('Good Y')
ax1.set_zlabel('Utility')
#图例色条
fig.colorbar(Utility, shrink=0.5, aspect=20)
plt.savefig('Utility Surface.png')
#第二个图单独绘制等高(无差异)线
fig =
经济学:无差异曲线与效用函数可视化
最新推荐文章于 2024-12-19 09:04:20 发布