Python+经济学:短期生产的三个阶段
前言:知识回顾
由于存在边际报酬递减规律,即:
随着可变要素投入量的增加,可变要素投入量与固定要素投入量之间的比例在发生变化。在最初阶段,相对于固定要素来说,可变要素投入过少,增加可变要素投入使两者比例逐渐接近最优组合,此时边际产量递增;当可变要素与固定要素组合比例恰当(最优)时,边际产量达到最大;如果再继续增加可变要素投入量,生产要素的投入量之比就越来越偏离最佳的组合比,于是出现边际产量递减趋势。
因此企业在短期生产中存在三个阶段:
阶段1:平均产量递增——阶段起点为原点,终点有AP=MP(或AP=MAX);
阶段2:平均产量递减——此时起点有AP=MP(或AP=MAX),终点有MP=0(TP=MAX);
阶段3:总产量从最大值开始下滑
微观经济学中,阶段2称为理性厂商短期生产的决策区间或生产要素的合理投入区间。
短期生产区间的应用举例:
这里笔者采用一道简单的例题来描绘短期生产的三个区间。
已知生产函数 [公式] ,假定厂商目前处于短期生产,且K=10,求:
(1)写出在短期生产中该厂商关于劳动的总产量TPL函数、劳动的平均产量APL函数和劳动的边际产量MPL函数。
(2)分别计算当总产量TPL、劳动平均产量APL和劳动边际产量MPL各自达到极大值时的厂商劳动的投入量。
(3)什么时候APL=MPL?它的值又是多少?
通过题目给出的生产函数以及各个产量间的关系,可分别得到总产量、平均产量与边际产量的函数:
[公式]
[公式]
[公式]
从上面的公式容易得到L=0时MP取得最大值20,当边际产量MP=0时,总产量TP能取得极值,而关于平均产量AP的极值,有两种求法:①对AP函数求一阶导数等于零(二阶导数小于零);②通过AP=MP时AP=MAX这一关系求得。
代码实现:
import matplotlib.pyplot as plt
import numpy as np
n = 50
Labor = np.linspace(0,25,n)
MP = []
AP = []
TP = []
#生产函数设定
for i in range(len(Labor)):
labor = Labor[i]
kapital = 10
tp = 2*kapital*labor-0.5*(labor**2)-0.5*(kapital**2)
ap = 20-0.5*labor-50/labor
mp = 20-labor
TP.append(tp)
AP.append(ap)
MP.append(mp)
#图1为总产量曲线
fig = plt.figure(1,figsize=(8,8))
ax1 = plt.subplot(211)
ax1.plot(Labor, TP,'r',label='Total Production')
ax1.set_xlabel('Labor')
ax1.set_ylabel('Total Production')
ax1.spines['top'].set_visible(False)
ax1.spines['right'].set_visible(False)
ax1.spines['bottom'].set_position(('data', 0))
ax1.spines['left'].set_position(('data',0))
#图例位置在图片的右下方
plt.legend(['Total Production'],loc='lower right')
#图1特殊点坐标设置
#p1有MP=AP,为短期生产区域II的起点
p1_x = 10
p1_y = 2*kapital*p1_x-0.5*(p1_x**2)-0.5*(kapital**2)
#p2有MP=0,为短期生产区域II的终点
p2_x = 20
p2_y = 2*kapital*p2_x-0.5*(p2_x**2)-0.5*(kapital**2)
#图1特殊点标记与坐标虚线、文本的设置
#坐标点标记
plt.scatter(p1_x,p1_y,s=30,marker='x')
#坐标点虚线设置
plt.vlines(p1_x,0,150,colors='black',linestyles='dashed')
plt.hlines(p1_y,0,p1_x,colors='black',linestyles='dashed')
#坐标点文本设置
plt.text(p1_x,p1_y,(p1_x,p1_y),ha='left',va='top',fontsize=10)
plt.scatter(p2_x,p2_y,s=30,marker='x')
plt.vlines(p2_x,0,150,colors='black',linestyles='dashed')
plt.hlines(p2_y,0,p2_x,colors='black',linestyles='dashed')
plt.text(p2_x,p2_y,(p2_x,p2_y),ha='center',va='bottom',fontsize=10)
#短期生产的三个区域:文本位置设置
plt.text(5,10,"AREA I",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(15,10,"AREA II",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(23,10,"AREA III",ha='center',va='bottom',fontsize=10,weight='bold')
ax2 = plt.subplot(212)
ax2.plot(Labor, MP,'b',label='Marginal Production')
ax2.plot(Labor, AP,'g',label='Average Production')
ax2.set_xlabel('Labor')
ax2.set_ylabel('Marginal & Average Production')
ax2.spines['top'].set_visible(False)
ax2.spines['right'].set_visible(False)
ax2.spines['bottom'].set_position(('data', 0))
ax2.spines['left'].set_position(('data',0))
plt.legend(['Marginal Production','Average Production'],loc='lower right')
#图2特殊点坐标设置
#p3有MP最大值
p3_x = 0
p3_y = 20- p3_x
#p4与p1相对应,有MP=AP,为短期生产区域II的起点
p4_x = 10
p4_y = 20-0.5*(p4_x)-50/(p4_x)
#p5与p2相对应,有MP=0,为短期生产区域II的终点
p5_x = 20
p5_y = 20- p5_x
plt.scatter(p3_x,p3_y,s=30,marker='x')
plt.text(p3_x,p3_y,(p3_x,p3_y),ha='left',va='bottom',fontsize=10)
plt.scatter(p4_x,p4_y,s=30,marker='x')
plt.vlines(p4_x,0,30,colors='black',linestyles='dashed')
plt.hlines(p4_y,0,p4_x,colors='black',linestyles='dashed')
plt.text(p4_x,p4_y,(p4_x,p4_y),ha='left',va='bottom',fontsize=10)
plt.scatter(p5_x,p5_y,s=30,marker='x')
plt.vlines(p5_x,0,30,colors='black',linestyles='dashed')
plt.text(p5_x,p5_y,(p5_x,p5_y),ha='center',va='bottom',fontsize=10)
plt.text(5,30,"AREA I",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(15,30,"AREA II",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(23,30,"AREA III",ha='center',va='bottom',fontsize=10,weight='bold')
plt.show()
实现效果:
Python+经济学:短期生产的三个阶段
终止进程
终止进程
世界是由0和1构成的~Nothing complicated
关注
Python+经济学:短期生产的三个阶段
2 个月前
前言:知识回顾
由于存在边际报酬递减规律,即:
随着可变要素投入量的增加,可变要素投入量与固定要素投入量之间的比例在发生变化。在最初阶段,相对于固定要素来说,可变要素投入过少,增加可变要素投入使两者比例逐渐接近最优组合,此时边际产量递增;当可变要素与固定要素组合比例恰当(最优)时,边际产量达到最大;如果再继续增加可变要素投入量,生产要素的投入量之比就越来越偏离最佳的组合比,于是出现边际产量递减趋势。
因此企业在短期生产中存在三个阶段:
阶段1:平均产量递增——阶段起点为原点,终点有AP=MP(或AP=MAX);
阶段2:平均产量递减——此时起点有AP=MP(或AP=MAX),终点有MP=0(TP=MAX);
阶段3:总产量从最大值开始下滑
微观经济学中,阶段2称为理性厂商短期生产的决策区间或生产要素的合理投入区间。
短期生产区间的应用举例:
这里笔者采用一道简单的例题来描绘短期生产的三个区间。
已知生产函数 [公式] ,假定厂商目前处于短期生产,且K=10,求:
(1)写出在短期生产中该厂商关于劳动的总产量TPL函数、劳动的平均产量APL函数和劳动的边际产量MPL函数。
(2)分别计算当总产量TPL、劳动平均产量APL和劳动边际产量MPL各自达到极大值时的厂商劳动的投入量。
(3)什么时候APL=MPL?它的值又是多少?
通过题目给出的生产函数以及各个产量间的关系,可分别得到总产量、平均产量与边际产量的函数:
[公式]
[公式]
[公式]
从上面的公式容易得到L=0时MP取得最大值20,当边际产量MP=0时,总产量TP能取得极值,而关于平均产量AP的极值,有两种求法:①对AP函数求一阶导数等于零(二阶导数小于零);②通过AP=MP时AP=MAX这一关系求得。
代码实现:
import matplotlib.pyplot as plt
import numpy as np
n = 50
Labor = np.linspace(0,25,n)
MP = []
AP = []
TP = []
#生产函数设定
for i in range(len(Labor)):
labor = Labor[i]
kapital = 10
tp = 2*kapital*labor-0.5*(labor**2)-0.5*(kapital**2)
ap = 20-0.5*labor-50/labor
mp = 20-labor
TP.append(tp)
AP.append(ap)
MP.append(mp)
#图1为总产量曲线
fig = plt.figure(1,figsize=(8,8))
ax1 = plt.subplot(211)
ax1.plot(Labor, TP,'r',label='Total Production')
ax1.set_xlabel('Labor')
ax1.set_ylabel('Total Production')
ax1.spines['top'].set_visible(False)
ax1.spines['right'].set_visible(False)
ax1.spines['bottom'].set_position(('data', 0))
ax1.spines['left'].set_position(('data',0))
#图例位置在图片的右下方
plt.legend(['Total Production'],loc='lower right')
#图1特殊点坐标设置
#p1有MP=AP,为短期生产区域II的起点
p1_x = 10
p1_y = 2*kapital*p1_x-0.5*(p1_x**2)-0.5*(kapital**2)
#p2有MP=0,为短期生产区域II的终点
p2_x = 20
p2_y = 2*kapital*p2_x-0.5*(p2_x**2)-0.5*(kapital**2)
#图1特殊点标记与坐标虚线、文本的设置
#坐标点标记
plt.scatter(p1_x,p1_y,s=30,marker='x')
#坐标点虚线设置
plt.vlines(p1_x,0,150,colors='black',linestyles='dashed')
plt.hlines(p1_y,0,p1_x,colors='black',linestyles='dashed')
#坐标点文本设置
plt.text(p1_x,p1_y,(p1_x,p1_y),ha='left',va='top',fontsize=10)
plt.scatter(p2_x,p2_y,s=30,marker='x')
plt.vlines(p2_x,0,150,colors='black',linestyles='dashed')
plt.hlines(p2_y,0,p2_x,colors='black',linestyles='dashed')
plt.text(p2_x,p2_y,(p2_x,p2_y),ha='center',va='bottom',fontsize=10)
#短期生产的三个区域:文本位置设置
plt.text(5,10,"AREA I",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(15,10,"AREA II",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(23,10,"AREA III",ha='center',va='bottom',fontsize=10,weight='bold')
ax2 = plt.subplot(212)
ax2.plot(Labor, MP,'b',label='Marginal Production')
ax2.plot(Labor, AP,'g',label='Average Production')
ax2.set_xlabel('Labor')
ax2.set_ylabel('Marginal & Average Production')
ax2.spines['top'].set_visible(False)
ax2.spines['right'].set_visible(False)
ax2.spines['bottom'].set_position(('data', 0))
ax2.spines['left'].set_position(('data',0))
plt.legend(['Marginal Production','Average Production'],loc='lower right')
#图2特殊点坐标设置
#p3有MP最大值
p3_x = 0
p3_y = 20- p3_x
#p4与p1相对应,有MP=AP,为短期生产区域II的起点
p4_x = 10
p4_y = 20-0.5*(p4_x)-50/(p4_x)
#p5与p2相对应,有MP=0,为短期生产区域II的终点
p5_x = 20
p5_y = 20- p5_x
plt.scatter(p3_x,p3_y,s=30,marker='x')
plt.text(p3_x,p3_y,(p3_x,p3_y),ha='left',va='bottom',fontsize=10)
plt.scatter(p4_x,p4_y,s=30,marker='x')
plt.vlines(p4_x,0,30,colors='black',linestyles='dashed')
plt.hlines(p4_y,0,p4_x,colors='black',linestyles='dashed')
plt.text(p4_x,p4_y,(p4_x,p4_y),ha='left',va='bottom',fontsize=10)
plt.scatter(p5_x,p5_y,s=30,marker='x')
plt.vlines(p5_x,0,30,colors='black',linestyles='dashed')
plt.text(p5_x,p5_y,(p5_x,p5_y),ha='center',va='bottom',fontsize=10)
plt.text(5,30,"AREA I",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(15,30,"AREA II",ha='center',va='bottom',fontsize=10,weight='bold')
plt.text(23,30,"AREA III",ha='center',va='bottom',fontsize=10,weight='bold')
plt.show()
实现效果: