python数据可视化(二)

蒙特卡洛模拟

什么是蒙特卡洛模拟:
当所要求解的问题是某种事件出现的概率,或者是某个随机变量的期望值时,它们可以通过某种“试验”的方法,得到这种事件出现的频率,或者这个随机变数的平均值,并用它们作为问题的解。这就是蒙特卡罗方法的基本思想。蒙特卡罗方法通过抓住事物运动的几何数量和几何特征,利用数学方法来加以模拟,即进行一种数字模拟实验。它是以一个概率模型为基础,按照这个模型所描绘的过程,通过模拟实验的结果,作为问题的近似解。可以把蒙特卡罗解题归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。

蒙特卡洛模拟中的库存问题

问题:水果零售员每天出售水果,每份订单有Y个单位,没卖出一个单位就会有60美分的利润,在每一天结束的时候未卖出的部分已每件40美分的损失抛售,每天的需求D服从均匀分布[80,140],问要求利润最大,每天需要多少单位的订单?

#s 表示销售量,d表示需求量
import numpy as np
from  math import log
import matplotlib.pyplot as plt
x =[]
y = []

def generateProfit(d):
    global s
    if d >= s:
        return 0.6*s
    else:
        return 0.6*d-0.4*(s-d)
maxprofit = 0
for s in range(20,305):
    for i in range(1,1000):
        d = np.random.randint(10,high=200)
        profit = generateProfit(d)
        if profit > maxprofit:
            maxprofit = profit
    x.append(s)
    y.append(log(maxprofit))
plt.plot(x,y)
print('Max Profit:',maxprofit)
plt.show()

python数据可视化(二)_第1张图片

你可能感兴趣的:(python数据可视化(二))