关于每天报纸购进量的优化模型:
已知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)
a=1;b=0.75;c=0.6;
r=n+1;
while (a-b)*n*normpdf(r,500,50)>exp(-6)
r=r+1;
end
r=n+1:r;
G = sum((a-b)*n*normpdf(r,500,50)); % 离散值求和
r=0:n;
G = G+sum(((a-b)*r-(b-c)*(n-r)).*normpdf(r,500,50)) % 离散值求和
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)