关于每天报纸购进量的优化模型:
已知b为每份报纸的购进价,a为零售价,c为退回价(a>b>c),每天报纸的需求量为r份的概率是f( r )(r=0,1,2,…)。求每天购进量n份,使日平均收入,即
达到最大。
视r为连续变量,f( r )转化为概率密度函数p( r ),则所求n*满足
实验要求:
已知b=0.75,a=1,c=0.6,r服从均值=500(份),均方差=50(份)的正态分布。报童每天应购进多少份报纸才能使平均收入最高,这个最高收入是多少?
参考实验12-1的实验要求2,编写程序,求出n*。
初始根区间为[450,550],增量取0.01,随着根区间变小可改为0.001。
clc; clear; syms y1 y2 a b c z a = 1; b = 0.75; c = 0.6; z = 450:0.01:550; y1 = (a-b)/(a-c); y2 = normcdf(z,500,50)-normcdf(0,500,50); %分布函数 plot([450,550],[y1,y1]) hold on; plot(z,y2); grid on; % 输出交点 fsolve(@(z) (a-b)/(a-c) - normcdf(z,500,50)-normcdf(0,500,50),[450 550])
下图可见,交点在520左侧
补充:
关于匿名函数
@运算符创建句柄,@(x)为函数的入口,指定函数当中的变量x为函数的输入,在接受函数和进行求解时,对象为x。
如下例子,
sqr = @(z) 2.*z sqr(3) % 输入的变量默认输入到z当中 -> 6
关于fsolve
fsolve(@(x) f(x))
解决的问题为f(x)=0
如下例子
fsolve(@(z) (a-b)/(a-c) - normcdf(z,500,50)-normcdf(0,500,50),[450 550])
解释 : 在z = [450,550]之间,寻找(a-b)/(a-c) - normcdf(z,500,50)-normcdf(0,500,50) = 0
的解
参考实验12-1的实验要求3,编写程序,求出n和G(n)。
初始根区间为[450,550]。
erfen.m
function y=erfen(a,b) %二分法 if fun(a)*fun(b)<0 c=(a+b)/2; while abs(fun(c))>1.0e-4 % 二分分界点 if fun(a)*fun(c)<0 b=c; c=(a+b)/2; elseif fun(c)*fun(b)<0 a=c; c=(a+b)/2; end end y=c; elseif fun(a)==0 y=a; elseif fun(b)==0 y=b; else disp('区间中不存在根'); end return;
main.m
function main() clc; n = erfen(450,550) return;
fun.m
function y=fun(z) %方程 a = 1; b = 0.75; c = 0.6; y = (a-b)/(a-c) - normcdf(z,500,50) - normcdf(0,500,50); % 构造函数差,方便二分查找 return;
1.计算正态变量的概率密度函数的调用形式为:Y=normpdf(X,mu,sigma)
正态变量的概率密度函数为
其中:X是x的一组值,Y对应一组函数值。
mu为μ,sigma为σ。
当μ=0,σ=1时,为标准正态变量的概率密度函数。
2.计算正态变量的分布函数的调用形式为:P=normcdf(X,mu,sigma)
正态变量的分布函数为且
标准正态变量的概率密度函数对应标准正态变量的分布函数。