matlab极值与优化_精品文档.ppt
- 文档编号:2568726
- 上传时间:2022-11-01
- 格式:PPT
- 页数:35
- 大小:387KB
matlab极值与优化_精品文档.ppt
《matlab极值与优化_精品文档.ppt》由会员分享,可在线阅读,更多相关《matlab极值与优化_精品文档.ppt(35页珍藏版)》请在冰豆网上搜索。
函数的极值与优化2MATLAB在优化中的应用在优化中的应用在研究与解决具体问题中,经常遇到有关优化问在研究与解决具体问题中,经常遇到有关优化问题,它起源于工业生产组织管理的题,它起源于工业生产组织管理的决策问题决策问题。
本节的。
本节的目的是学会用目的是学会用MATLAB软件求解一些优化问题,包软件求解一些优化问题,包括求解括求解线性规划和非线性规划线性规划和非线性规划问题。
问题。
1、线性规划求解、线性规划求解多变量线性函数多变量线性函数在变量满足在变量满足线性约束线性约束条件下的条件下的最优最优值值。
随着计算机的发展,出现了如单纯形法等有效。
随着计算机的发展,出现了如单纯形法等有效算法,它在工农业、军事、交通运输、决策管理与算法,它在工农业、军事、交通运输、决策管理与规划等领域中有广泛的应用。
规划等领域中有广泛的应用。
3某厂每日某厂每日8小时的产量不低于小时的产量不低于1800件。
为了进行质量控制,计件。
为了进行质量控制,计划聘请两种不同水平的检验员。
一级检验员的标准为:
速度划聘请两种不同水平的检验员。
一级检验员的标准为:
速度25件件/小时,正确率小时,正确率98%,计时工资,计时工资4元元/小时;二级检验员的小时;二级检验员的标准为:
速度标准为:
速度15件件/小时,正确率小时,正确率95%,计时工资,计时工资3元元/小时。
小时。
检验员每错检一次,工厂要损失检验员每错检一次,工厂要损失2元。
为使总费用最省,该工元。
为使总费用最省,该工厂应聘一级、二级检验员各几名?
厂应聘一级、二级检验员各几名?
解解设需要一需要一级和二和二级检验员的人数分的人数分别为x1x1、x2x2人人,则应付付检验员的工的工资为:
因因检验员错检而造成的损失检验员错检而造成的损失为:
为:
故故目目标函数函数为:
例例14约束条件束条件为:
线性规划模型:
线性规划模型:
5一般线性规划问题的数学表达式:
一般线性规划问题的数学表达式:
max(min)f=s.t.用矩阵向量符号表示:
用矩阵向量符号表示:
max(min)f=cX6MATLAB优化工具箱解线性规划优化工具箱解线性规划1.模型:
模型:
minz=cTXs.tAXb命令:
命令:
x=linprog(c,A,b)2.模型:
模型:
minz=cTXs.tAXbAeqX=beq命令:
命令:
x=linprog(c,A,b,Aeq,beq)如果没有不等式:
如果没有不等式:
AXb不存在,不存在,则令令A=,b=.7命令:
命令:
x=linprog(c,A,b,Aeq,beq,vlb,vub)如果没有等式如果没有等式约束束存在,存在,则令令Aeq=,beq=.4.命令:
命令:
x=linprog(c,A,b,Aeq,beq,vlb,vub,x0)也用于求模型也用于求模型3,其中,其中x0表示初始值。
表示初始值。
5.命令:
命令:
x,fval=linprog()返回最优解及处的目标函数值返回最优解及处的目标函数值fval.3.模型:
模型:
minz=cTXs.tAXbAeqX=beqvlbxvub8解解编写编写M文件文件xxgh1.m如下:
如下:
c=-0.4;-0.28;-0.32;-0.72;-0.64;-0.6;A=0.010.010.010.030.030.03;0.02000.0500;00.02000.050;000.03000.08;b=850;700;100;900;Aeq=;beq=;vlb=0;0;0;0;0;0;vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)9例例用用MATLAB求解例求解例1:
编写编写M文件文件xxgh2.m如下:
如下:
c=40;36;A=-5-3;b=-45;Aeq=;beq=;vlb=0;0;vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)10结果为:
结果为:
x=9.00000.0000fval=360即只需聘用即只需聘用9个一级检验员。
个一级检验员。
注:
本问题应还有一个约束条件:
注:
本问题应还有一个约束条件:
x1、x2取整数取整数。
故它是。
故它是一个一个整数线性规划问题整数线性规划问题。
这里把它当成一个线性规划来解,。
这里把它当成一个线性规划来解,求得其最优解刚好是整数:
求得其最优解刚好是整数:
x1=9,x2=0,故它就是该整数,故它就是该整数规划的最优解。
规划的最优解。
若用线性规划解法求得的最优解不是整数,若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解将其取整后不一定是相应整数规划的最优解,这样的整数,这样的整数规划应用专门的方法求解。
规划应用专门的方法求解。
Matlab中,求一元函数极值的函数为中,求一元函数极值的函数为fminbndl此函数最简输入格式为:
此函数最简输入格式为:
x=fminbnd(f,a,b)含义为:
含义为:
求函数求函数f在区间在区间a,b上的极小值点上的极小值点(自变量值自变量值).2.非线性优化问题的求法非线性优化问题的求法n非线性一元函数极值的求法非线性一元函数极值的求法l常用格式如下:
常用格式如下:
(1)x=fminbnd(fun,x1,x2)
(2)x=fminbnd(fun,x1,x2,options)(3)x,fval=fminbnd(.)(4)x,fval,exitflag=fminbnd(.)n非线性优化问题指的是目标函数或者约束函数非线性优化问题指的是目标函数或者约束函数中至少有一个非线性函数的优化问题中至少有一个非线性函数的优化问题非线性函数极值的求法非线性函数极值的求法l函数函数fminbnd的算法要求目标函数必须是连续函的算法要求目标函数必须是连续函数,并可能只给出局部最优解。
数,并可能只给出局部最优解。
l对于对于极大值问题极大值问题,需,需转化为极小值问题转化为极小值问题来处理。
来处理。
(-f(x)在区间在区间a,b上取极小值的点就是上取极小值的点就是f(x)在在a,b上取极大值的点)上取极大值的点)运行结果:
运行结果:
xmin=3.9270ymin=-0.0279xmax=0.7854y=-0.6448ymax=-y解解在在matlab命令窗口中输入:
命令窗口中输入:
f=2*exp(-x)*sin(x);ezplot(f,0,8);%作图语句作图语句xmin,ymin=fminbnd(f,0,8)f1=-2*exp(-x)*sin(x);xmax,y=fminbnd(f1,0,8)非线性函数极值的求法非线性函数极值的求法多元函数的无约束极小值问题,在多元函数的无约束极小值问题,在Matlab中有中有2个经常使用的函数:
个经常使用的函数:
1、fminsearch2、fminunc注意注意:
(1)在使用这两个函数时,必须首先用)在使用这两个函数时,必须首先用M文件文件的形式存储待求最值的函数,该函数需以向量函数的形式存储待求最值的函数,该函数需以向量函数的形式表达;的形式表达;
(2)极大值问题需转化为极小值问题。
)极大值问题需转化为极小值问题。
n多元函数极值的求法多元函数极值的求法非线性函数极值的求法非线性函数极值的求法u使用格式:
使用格式:
x,fval,exitflag,output=fminsearch(f,x0)u输入参数:
输入参数:
f:
目标函数;目标函数;x0:
初始点初始点(向量向量).u输出参数:
输出参数:
x:
最优解;最优解;fval:
最优解对应的函数值;最优解对应的函数值;exitflag:
函数退出优化运算的原因:
函数退出优化运算的原因:
1,收敛于最优解;收敛于最优解;0,迭迭代次数超过优化属性设置;代次数超过优化属性设置;-1,迭代算法被迭代算法被output函数终止;函数终止;output:
有关优化的属性信息,如优化迭代次数和优化算法有关优化的属性信息,如优化迭代次数和优化算法等等.例:
例:
fminsearch(f,1,2)含义为:
从点含义为:
从点1,2开始开始搜寻函数搜寻函数f的最小值。
的最小值。
nfminsearch非线性规划的单纯型法搜索最值非线性规划的单纯型法搜索最值非线性无约束优化问题非线性无约束优化问题例:
求函数例:
求函数在在x=1,y=2附近的最小附近的最小值点。
值点。
解决步骤:
解决步骤:
1、建立、建立M文件,保存函数文件,保存函数f;M文件内容为:
文件内容为:
functionf2=fun2(x)f2=-(x
(1)+x
(2)+(x
(1)2+x
(2)2+1);2、调用、调用fminsearch函数求最值函数求最值.在命令窗口中,输入:
在命令窗口中,输入:
x0=1,2;x,fval=fminsearch(fun2,x0)3、输出结果为:
、输出结果为:
x=0.50000.5000fval=0.5000非线性无约束优化问题非线性无约束优化问题u此函数与此函数与fminsearch不同的地方在于使用的搜索方法,不同的地方在于使用的搜索方法,它使用它使用牛顿法(拟牛顿)牛顿法(拟牛顿)搜索最值,在搜索最值,在效率上有所提高效率上有所提高;u使用格式与使用格式与fminsearch类似:
类似:
x,fval=fminunc(f,x0)其中其中f为待求极值的向量函数,为待求极值的向量函数,x0为搜索过程开始时自为搜索过程开始时自变量的初始值。
变量的初始值。
例例:
fminunc(f,1,2)含义为:
从点含义为:
从点1,2开始开始搜寻函搜寻函数数f的极小值。
的极小值。
nfminunc非线性无约束优化问题非线性无约束优化问题n例例求解二元函数求解二元函数的最小值的最小值.n输入目标函数的程序代码:
输入目标函数的程序代码:
functionf=optfun(x)f=3*x
(1)2+2*x
(1)*x
(2)+x
(2)2;将上述代码保存为将上述代码保存为optfun.m文件。
文件。
nx,fval=fminunc(optfun,x0)或或x1,fval1=fminsearch(optfun,x0)非线性无约束优化问题非线性无约束优化问题nMatlab默认的二次规划默认的二次规划n用用MATLAB软件求解软件求解,其输入格式如下其输入格式如下:
x,fval=quadprog(H,c,A,b);x,fval=quadprog(H,c,A,b,Aeq,beq);x,fval=quadprog(H,c,A,b,Aeq,beq,LB,UB);x,fval=quadprog(H,c,A,b,Aeq,beq,LB,UB,X0);二次规划问题二次规划问题20例例写成标准形式:
写成标准形式:
二次规划问题二次规划问题21H=2-2;-24;c=-2;-6;A=11;-12;b=2;2;Aeq=;beq=;VLB=0;0;VUB=;x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)运算结果为:
运算结果为:
x=0.80001.2000z=-7.2000输入命令:
输入命令:
二次规划问题二次规划问题n求解约束非线性优化问题求解约束非线性优化问题nMatlab求解约束非线性优化问题求解约束非线性优化问题fminconn常用调用格式如下:
常用调用格式如下:
nx,fval=fmincon(fun,x0,A,b,Ae,be,lb,ub,nonlcon)约束非线性优化问题约束非线性优化问题nx,fval=fmincon(fun,x0,A,b,Ae,be,lb,ub,nonlcon)n输入参数:
输入参数:
ufun表示优化目标函数,表示优化目标函数,x0表示优化的初始值表示优化的初始值uA,b表示满足线性关系式表示满足线性关系式的系数矩阵和右端项的系数矩阵和右端项uAe,be表示线性等式约束表示线性等式约束的系数矩阵和右端项的系数矩阵和右端项ulb,ub表示取值范围表示取值范围的上限和下限的上限和下限unonlcon表示需要参数满足的非线性关系式表示需要参数满足的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 极值 优化 精品 文档