实验十:非线性函数极值求解
练习一
1.求函数 在0<x<8内的最大值与最小值.
clc;clear;
y=@(x)2*exp(-x)*sin(x);
[x0,min]=fminbnd(y,0,8)
y1=@(x)-2*exp(-x)*sin(x);
[x1,min1]=fminbnd(y1,0,8)
max=-min1
syms x
f=y(x);
ezplot(f,[0,8]);
x0 =
3.9270
min =
-0.0279
x1 =
0.7854
min1 =
-0.6448
max =
0.6448
由函数图像得知,该函数的极值点即为最值点,所以求得的极值是正确的。
2.求解下列极值问题:
(1)
clc;clear;
y=@(x)3*sin(x)+x;
[x,min]=fminbnd(y,1,8)
x =
4.3726
min =
1.5441
(2)
clc;clear;
y=@(x1,x2)(4*x1^2+2*x2^2+4*x1*x2+2*x2+1)*exp(x1);
syms x1 x2
f=y(x1,x2);
ezmeshc(f);
m=[0,0];
f1='(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+x(2)+1)*exp(x(1))';
[x,min]=fminunc(f1,m)
x =
0.0406 -0.2906
min =
0.8724
(3)
clc;clear;
f='4*x(1)^2+5*x(1)*x(2)+2*x(2)^2';
[x,min]=fminsearch(f,[0,0])
h='4*x^2+5*x*y+2*y^2';
ezmeshc(h);
x =
0 0
min =
0
3.某企业在两个相互分离的市场上出售同一产品,两个市场的需求函数分别为 ,
,其中
分别表示该产品在两个市场上的价格(单位:万元/t),
分别表示该产品在两个市场上的销售量(单位:t).该企业生产这种产品总成本函数为C=2q+5,其中q表示该产品在两个市场上的销售总量,即
.在产销平衡的状态下:
(1)如果该企业实行价格差别策略(即 ),试确定两个市场上该产品的销售量和最优价格使该企业获得最大利润;
clc;clear;
f='2*x(1)^2+x(2)^2-16*x(1)-11*x(2)+5';
[x,min]=fminsearch(f,[0,0])
y='2*x^2+y^2-16*x-11*y+5';
ezmesh(y);
x =
4.0000 5.5000
min =
-57.2500
通过图像观察我们知道,该函数的最小值即为极小值,则当该企业在第一个市场上销售4吨,第二个市场上销售5.5吨即可获得最大利润。
(2)如果该企业实行价格无差别策略(即 ),试确定两个市场上该产品的销售量和最优价格,使该企业获得最大利润,并比较两种价格策略下总利润的大小.
当 时,可得
,则上式化为
clc;clear;
syms x y
h=2*x^2+y^2-16*x-11*y+5;
h1=expand(subs(h,y,2*x-6));
ezplot(h1,[0,10]);
h2=matlabFunction(h1);
[x,min]=fminbnd(h2,0,10)
该函数的最小值即为极小值,则
x =
5.1667
min =
-53.1667
经过比较得知当时行无价格差别策略后,最大利润没有(1)中利润大。
总结:fminbnd函数和fminsearch以及fminunc函数中fun的定义可以用char、inline和function_handle这几个类型,不能使用sym定义。(需要用matlabFunction函数将sym类型转化为function_handle类型)
4.一家制造计算机的公司计划生产A、B两种型号的计算机产品:它们使用相同的中央处理器,但A产品使用27英寸(1英寸=2.54cm)显示器,B产品使用31英寸显示器.除了400000美元的固定费用外,每台A产品成本为1950美元,每台B产品成本为2260美元,公司建议每台A产品的零售价为3390美元,每台B产品的零售价为3980美元.营销人员估计,在销售这些计算机的竞争市场上,同一类型的计算机每多卖一台,它的价格就下降0.15美元;同时,一种类型的计算机的销售也会影响另一种计算机的销售,估计每销售一台A产品就会使B产品的零售价格下降0.04美元每销售一台B产品就会使A产品的零售价格下降0.06美元.假设该公司制造的所有计算机产品都可以售出,那么,该公司应该生产每种计算机各多少台,才能使利润最大?
clc;clear;
syms x y
w=(3390-0.06*y-0.15*x)*x+(3980-0.04*x-0.15*y)*y-1950*x-2260*y;
w=simplify(w);
ezmesh(w,[0,10000,0,10000]);
w0='-((3390-0.06*x(2)-0.15*x(1))*x(1)+(3980-0.04*x(1)-0.15*x(2))*x(2)-1950*x(1)-2260*x(2))';
m=[5762,3050];
[x,min]=fminsearch(w0,m);
x,max=-min
x =
1.0e+03 *
3.2500 4.650
max =
6.3390e+06
所以当公司生产A型计算机3250台,B型计算机4650台时可使利润最大。
5.一奶制品工厂用牛奶生产A1,A2 两种初级奶制品,它们可以直接出售,也可以分别加工成B1,B2 两种高级奶制品再出售.按目前技术每桶牛奶可加工成2kgA1 和3kgA2 ,每桶牛奶的买人价为10元,加工费为5元,加工时间为15h.每kgA1 可深加工成0.8kgB1 加工费为4元,加工时间为12h;每kgA2 可深加工成0.7kgB2 加工费为3元,加工时间为10h.初级奶制品A1,A2 的售价分别为10元/kg和9元/kg,高级奶制品B1,B2 的售价分别为30元/kg和20元/kg.工厂现有的加工能力为每周总共2000h.根据市场状况,高级奶制品的需求量占全部奶制品需求量的20%至40%.试在供需平衡的条件下为该厂制定(一周的)生产计划,使得利润最大.
clc;clear;
c=-[32,12.5,20/7];
a=[1,-21/20,-38/35
-2,11/10,41/35
15,15,100/7];
b=[0;0;2000];
aeq=[];
beq=[];
l=[0;0;0];
u=[];
z=1;
[x,min]=intlinprog(c,z,a,b,aeq,beq,l,u);
x,-min
x =
68.0000
65.3333
0
ans =
2.9927e+03
所以应该进口68桶初级奶制品,生产65.3333kgB1,0kgB2,54.333375kgA1,204kgA2奶制品,此时获得的利润最大。
推荐下一篇文章:
本文由作者自创,由于时间原因,难免出现些许错误,还请大家多多指正。创作不易,请大家多多支持。