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()

在这里插入图片描述

一个可视化实验完整代码。 一、实验目的和要求 1、 使用API函数编制包含各种资源的Windows应用程序; 2、 实现Windows应用程序对键盘与鼠标的响应。 、实验内容 : 1、问题描述: 创建一个菜单,其中有三个菜单项,分别为“文件”、“计算”和“帮助”,其中,“文件”菜单项包含“打开”、“保存”、“画图”、“退出”等菜单选项;“计算”菜单包含“总和”、“方差”、“均方根”等菜单选项;“帮助”菜单项包含“计算总和帮助”、“计算方差帮助”和“计算均方根帮助”以及“关于”等项 。 若单击“画图”菜单项,则绘出P103图形。 若在用户区内按下鼠标左键,则动态创建一个包括“删除计算总和”、“添加计算平均值”和“修改计算均方差”三个菜单项的弹出式菜单,由此菜单控制“计算”菜单中菜单项删除、添加与修改。(要求新的弹出式菜单开始时不可用,按下右键后变为可用。) 单击“修改计算均方差”菜单项后,“计算”菜单下的“计算均方差”项改为“线性拟合”,单击“添加计算平均值”菜单项后,“计算”菜单中添加上了“计算平均值”菜单项 。 将光标设定为自己名字中的某个字、图标设定为自己名字中的另一个字。 2、应用程序中所用到的资源、消息,简介主要函数的功能; 3、程序实现 4、操作结果
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值