%报童问题(高斯分布)
%几个参数:
%卖出报纸挣a元,退回报纸赔b元;
%卖报量y,订报量z,订报量上限z_up;
%观察期的总天数t,用于积累天数的ti;
%总的平均损失量ave_loss,供过于求损失loss1,供小于求损失loss2,ave_loss=loss1+loss2;
%最佳订报量superz,最小损失量ave_loss_min;
function [superz,ave_loss_min]=gauss(t,z_up,a,b)
mu=input('请输入高斯分布的均值mu'); %输入高斯分布均值mu
if isempty(mu)
mu=1000;
end
sigma=input('请输入高斯分布的标准差sigma'); %输入高斯分布标准差sigma
if isempty(sigma)
sigma=100;
end
y=round(normrnd(mu,sigma,1,t)); %生成服从高斯分布的随机卖报量y(矢量)
ave_loss=zeros(1,z_up); %各种订报量情况下的损失统计(z_up个元素的矢量)
for z=1:z_up %外层循环,z_up种情况,各种订报量
loss1=0;
loss2=0;
for ti=1:t %内层循环,一共实验多少天
if z>y(ti) %如果供大于求,说明要退报,赔钱
loss1=loss1+b*(z-y(ti));
elseif z<y(ti) %如果供小于求,说明还可以赚钱,报纸不够,少赚了钱
loss2=loss2+a*(y(ti)-z);
else %如果订报量与卖报量相同,损失不变
loss1=loss1;
loss2=loss2;
end
end
ave_loss(z)=(loss1+loss2)/t; %求每天的平均损失量
end
ave_loss_min=min(ave_loss) %显示最后的平均最小损失
superz=find(ave_loss==ave_loss_min) %记录在给定a和给定b条件下的最佳订报量
figure(1) %画给定a和b的时候的最佳订报量和最小平均损失关系曲线
plot(1:z_up,ave_loss,'b')
grid on
axis([0,1000,0,100])
xlabel('订报量/份')
ylabel('亏损/元')
title('亏损与订报量的关系曲线')
figure(2) %每份报纸收益与最佳订报量的关系曲线
z_a=zeros(1,100);
n1=1;
for a_temp=0:0.01:1 %收益a由0元递增至1元
for z=1:z_up %外层循环,z_up种情况,各种订报量
loss1=0;
loss2=0;
for ti=1:t %内层循环,一共实验多少天
if z>y(ti) %如果供大于求,说明要退报,赔钱
loss1=loss1+b*(z-y(ti));
elseif z<y(ti) %如果供小于求,说明还可以赚钱,报纸不够,少赚了钱
loss2=loss2+a_temp*(y(ti)-z);
else %如果订报量与卖报量相同,损失不变
loss1=loss1;
loss2=loss2;
end
end
ave_loss(z)=(loss1+loss2)/t; %计算平均损失
end
ave_loss_min=min(ave_loss);
z_a(n1)=find(ave_loss==ave_loss_min,1,'first'); %将每种a的最佳订报量放入z_a矢量
n1=n1+1;
end
a_temp=[0:0.01:1];
plot(a_temp,z_a,'b')
grid on
axis([0,1,0,1000])
xlabel('每份报纸净赚/元')
ylabel('最佳订报量/份')
title('每份报纸净赚与最佳订报量的关系曲线')
figure(3) %每份报纸赔偿与最佳订报量的关系曲线
z_b=zeros(1,100);
n2=1;
for b_temp=0:0.01:1 %赔偿b由0元递增至1元
for z=1:z_up %外层循环,z_up种情况,各种订报量
loss1=0;
loss2=0;
for ti=1:t %内层循环,一共实验多少天
if z>y(ti) %如果供大于求,说明要退报,赔钱
loss1=loss1+b_temp*(z-y(ti));
elseif z<y(ti) %如果供小于求,说明还可以赚钱,报纸不够,少赚了钱
loss2=loss2+a*(y(ti)-z);
else %如果订报量与卖报量相同,损失不变
loss1=loss1;
loss2=loss2;
end
end
ave_loss(z)=(loss1+loss2)/t; %计算平均损失
end
ave_loss_min=min(ave_loss);
z_b(n2)=find(ave_loss==ave_loss_min,1,'first'); %将每种赔偿b的最佳订报量放入z_b矢量
n2=n2+1;
end
b_temp=[0:0.01:1];
plot(b_temp,z_b,'b')
grid on
axis([0,1,0,1000])
xlabel('每份报纸赔偿/元')
ylabel('最佳订报量/份')
title('每份报纸赔偿与最佳订报量的关系曲线')
end


海神之光
- 粉丝: 6w+
最新资源
- 网络文学中的古典文学传统.docx
- [建造师]一级《建设工程项目管理》试题.doc
- 综合布线系统工程参考大全.doc
- 计算机科学与技术在数据管理领域的运用研究.docx
- 企业信息化建设中的标准资源发展策略研究.docx
- 这里是一些学习自动驾驶及工作的资料,主要是一些书籍
- 信息化建设的步骤.doc
- 单片机的多路无线遥控节能灯控制器研究与设计开发.doc
- Flet增删改查数据表进行数据管理的框架自定义组件模板
- 计算机安全论文-浅议数据加密技术与计算机安全.doc
- 软件工程导论重点内容.doc
- 在Linux下安装配置Oracle11gR2.doc
- 数据库课程实施方案任务书.doc
- 电网调度自动化知识竞赛复习题库.doc
- 数字通信原理课后习题标准答案.doc
- 射频技术与应用移动通信中的射频技术.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


