- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab极值与优化
函数的极值与优化 * MATLAB在优化中的应用 在研究与解决具体问题中,经常遇到有关优化问题,它起源于工业生产组织管理的决策问题。本节的目的是学会用MATLAB软件求解一些优化问题,包括求解线性规划和非线性规划问题。 1、线性规划求解 多变量线性函数在变量满足线性约束条件下的最优值。随着计算机的发展,出现了如单纯形法等有效算法,它在工农业、军事、交通运输、决策管理与规划等领域中有广泛的应用。 * 某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15件/小时,正确率95%,计时工资3元/小时。检验员每错检一次,工厂要损失2元。为使总费用最省,该工厂应聘一级、二级检验员各几名? 解 设需要一级和二级检验员的人数分别为x1、x2人, 则应付检验员的工资为: 因检验员错检而造成的损失为: 故目标函数为: 例1 * 约束条件为: 线性规划模型: * 一般线性规划问题的数学表达式: max(min) f = s.t . …… . 用矩阵向量符号表示: max(min)f=cX * MATLAB优化工具箱解线性规划 1. 模型: min z=cTX s.t AX≤b 命令:x=linprog(c,A,b) 2. 模型: min z=cTX s.t AX≤b Aeq X=beq 命令:x=linprog(c,A,b,Aeq,beq) 如果没有不等式: AX≤b不存在,则令A=[],b=[]. * 命令: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(…) 返回最优解x及x处的目标函数值fval. 3. 模型: min z=cTX s.t AX≤b Aeq X=beq vlb ≤x ≤vub * 解 编写M文件xxgh1.m如下: c =[-0.4;-0.28;-0.32;-0.72;-0.64;-0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03; 0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0; 0 0 0.03 0 0 0.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) * 例 用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) * 结果为: x = 9.0000 0.0000 fval =360 即只需聘用9个一级检验员。 注:本问题应还有一个约束条件:x1、x2取整数。故它是一个整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数:x1=9,x2=0,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。 Matlab中,求一元函数极值的函数为 fminbnd 此函数最简输入格式为:x=fminbnd(f,a,b) 含义为:求函数f在区间[a,b]上的极小值点(自变量值). 2. 非线性优化问题的求法 非线性一元函数极值的求法 常用格式如下: (1)x= fminbnd(fun,x1,x2) (2)x= fminbnd(fun,x1,x2,options) (3)[x,fval]= fminbnd(...) (4)[x,fval,exitflag]= fminbnd(...) 非线性优化问题指的是目标函数或者约束函数中至少有一个非线性函数的优化问题 非线性函数极值的求法 函数fm
文档评论(0)