一阶负反馈库存控制

import numpy as np
import matplotlib.pyplot as plt
from prettytable import PrettyTable

'''
将仿真实验中出现的参数列举如下
'''
I0=1000   #初始库存水平为1000
tMax=45  #截止时间
Z0=5    #订货调整时间为5
Y0=6000  #期望库存为6000

'''
预测库存水平
'''
def forecast(t,level):
    #设置t,i的数值(i=6000-5000*0.8^t)
    for i in range(0, tMax+1):
        t.append(i)
        y=Y0-(Y0-I0)*(1-1/Z0)**t[i]
        level.append(y)

def drawPopulationMap(t,level):
    plt.xlim(0,tMax+10)     #x轴的表示范围
    plt.ylim(0,Y0+100)      #y轴的表示范围
    plt.plot(t,level)
    plt.xlabel('time')
    plt.ylabel('Inventory Level')
    plt.title('simple inventory control problem')
    plt.show()

def printTable(t, level):
    x=PrettyTable(['时间','库存量'])
    for i in range(len(t)):
        x.add_row([t[i],level[i]])
    print(x)

def main():
    t=[]
    level=[]
    forecast(t, level)
    drawPopulationMap(t,level)
    printTable(t, level)

if __name__ =='__main__':   #提供调用函数的入口
    main()  

本程序在VS2017下运行通过

猜你喜欢

转载自blog.csdn.net/qq_41822235/article/details/80552405