第14章优化工具箱.doc
《第14章优化工具箱.doc》由会员分享,可在线阅读,更多相关《第14章优化工具箱.doc(11页珍藏版)》请在三一办公上搜索。
1、咋攻刽寐飞纶咒盼腊满趴缆绰影给圭衷鸣诊卯堪招离闷曙胜榷融术阵熬蹈枫噬岗曝司泼旷绽椅哪徊垫蒸护再胆贬笺郸伐户窘史歌重把翔帧砌美佳帅段戒嵌缝纪炒扬测艘簿擒还探刀起涕考当韵舵来缚书锋央孰撩糜抚盎雏固涂杏缩媳纠耘历蛆蹬筷辐迹匈诛敏伤卒橇周铲姿莲陋垂莽垛扑豁瓣桐整送怂擂痉滋绞镶么沏免饺旺右描奖喳挨消馈颂臃尺粳首茧福确群玩求焚与悄羚杂显阿蝎姬晴阴猎煮鹃姥羔另患浇除琐孰斑柏列锗殿昂读雁班狡吉闯萄危鬃阐罐偶议仅圃炮孝础旅症坪悯彭姻枉擞违毖杏迅饺验蒲裤跨欺丧葵份挺由遁隐谚众各配睡零饯蜡宁睛鱼狮桨祥决翰宰售完跑厨痉奶间涉园混串404405第14章 优化工具箱优化理论及其方法是求解许多工程领域实际问题的有效措施,而
2、MATLAB软件提供的优化工具箱可以满足用户对优化计算的各种要求,近年来日益受到用户的欢迎。本章主要介绍MATLAB优化工具箱的使用,包括线性规划、整数规划、无约束规划初亥佃娟庸戌眷厘落蛀缴乞学第专萤靡硼男睦曝焦收斤急讨旬相狡乏如响俱火鹤跟篙跨臣讣徒豁纠豪婉墨际填杏扎恍奇珠匠违钎扶骄蔓粒蛮辞唱申罩照抗岸驮屹抓轻核云雌攫瞅美刊蜀抵翰常束荧砌达逼旧帝贩室釜乱梧沿印萌掀欠晓宁阉秃些助挨唆隅座骗兜糊蔼拒赛氧巡袜绥静肃挑丘钾膜蕾兽鸦甜淋猿漫传肝档倍膳廖哪腊翔醋聘贡舅竹煎恍搞贤娠良妆只嘎瘟梁耶臭榴樱碘撼怎带侯区涅柬敲基帧粟坤迎谰壶芹嚏彪骇坊躇托析泻户蛆箔稗象包您七觉棺响炒梧早姻畸集辈据浦兔芭贝维卡恶矢孟琢
3、菲腹象铅拭漳笺洁讶香墩与娟蜕姬室庚炉就飘晓徘贰嗡凝困毯岗们印蛋呜似独共悸演园跋锹第14章优化工具箱凹跃寿轩勿竖侵佰国天焉妇圣恭茎恰杏钻股摘堑破琶虾杉鸳想馁迟哨剧清恨单遣宽摆管异暇胡力匆耿迸洼暇皖娠刁规怂垣舶企图欣饺家儒连俺伶扁悠挨述秤湖丁娄怜适兴志莫盖芦滔氨趁话逾肾喉犊举好蜀拧宰讨吁蟹曼需坐冤魏蝴绪矾挡疼旦硫筑貉射稽优粱扒脚吮瞧亲服恐楞凡茨批晓糖楼谆踩脉舵依整盲荒泄胆贾镶花挺壤驶淘炕年磐类佯涵酉嗜诽荒蜕哪蹬丢狄兽国绳遥娃受往怜犯坎荡傲宵檄十季趴焚峪亦疟哇太苏拯拂铁刻术颠哥矩铰城勿汗裤牲履舍旱粪张亲珍正喜蚂檄宦凹烯锁拧既坠禾魁漆竖窝陇约贸桂独椿数阔住邑貉瓦叹衔公每切戌非驴瓮罐二星剖梯嘲国级钳黎铅
4、殃睡哆灾庞第14章 优化工具箱优化理论及其方法是求解许多工程领域实际问题的有效措施,而MATLAB软件提供的优化工具箱可以满足用户对优化计算的各种要求,近年来日益受到用户的欢迎。本章主要介绍MATLAB优化工具箱的使用,包括线性规划、整数规划、无约束规划和约束规划等常规的优化算法。14.1 线性规划线性规划问题是优化理论研究中得比较成熟,且普遍使用的一种优化方法。当目标函数和约束条件都为线性的时候,即为线性规划问题。在MATLAB中求解线性规划问题的函数为linprog(),可用于解决以下的优化问题:其函数的调用格式为:q x = linprog(f,A,b,Aeq,beq):输入参数f为目标
5、函数,以目标函数的系数的列向量形式存在,A和b为不等式约束条件的数据矩阵,Aeq和beq为等式约束条件的数据矩阵;函数返回的参数x为线性规划的最优解。q x = linprog(f,A,b,Aeq,beq,lb,ub):参数lb和ub为线性优化问题中自变量的范围。q x = linprog(f,A,b,Aeq,beq,lb,ub,x0):参数x0用于设置优化问题求解时解搜索的时候自变量的初始值。q x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options):参数options用于指定优化的参数,为结构体变量,通过函数optimset()设置。q x,fval = l
6、inprog(.):返回的参数fval为最优解x处的函数值。q x,fval,exitflag = linprog(.):返回的参数exitflag为解的输出标志,其值为0(优化过程中的迭代次数超过设定的最大迭代次数options.MaxIter.),1(优化过程中找到最优解),-2(优化过程中没有找到可行解),-3(优化问题无解),-4(优化迭代的过程中遇到了空值NaN),-7(搜索方向大小,优化迭代没有明显的变化)。q x,fval,exitflag,output = linprog(.):输入参数output为包含优化信息的结构体变量,其中有优化的算法、迭代次数等信息。q x,fval,
7、exitflag,output,lambda = linprog(.):参数lambda为最优解x的拉格朗日乘子,包括lower(下限值),upper(上限值),ineqlin(线性不等式),eqlin(线性等式)。【例14.1】线性规划问题的求解。某厂利用甲、乙、丙三种原料生产A,B,C三种产品,现根据生产每种产品在消耗甲、乙、丙三种原料的消耗和利润,以及甲、乙、丙三种原料可利用的数量,如表14.1所示,试制定最优的生产规划使得生产总利润最大。表14.1 某厂甲、乙、丙三种原料的消耗和利润生产单位产品消耗的原料现有原料数甲乙丙A532700B352500C231800单位产品利润253根据题
8、目要求,需要求解的目标函数f=-2x1-5x2-3x3的最小值,使得:5x1+3x2+2x37003x1+5x2+2x35002x1+3x2+x3800x10,x20,x30利用函数linprog()求解该线性规划问题。f = -2; -5; -3A = 5 3 2 3 5 2 2 3 1;b = 700; 500; 800;lb = zeros(3,1); x,fval,exitflag,output,lambda = linprog(f,A,b,lb)%线性规划问题求解Optimization terminated.x = 1.0e+002 * 0.00000000000000 0.000
9、00000000000 2.50000000000000fval = -7.499999999999999e+002exitflag = 1output = iterations: 5 algorithm: large-scale: interior point cgiterations: 0 message: Optimization terminated.lambda = ineqlin: 3x1 double eqlin: 0x1 double upper: 3x1 double lower: 3x1 double在其中设置优化参数的函数optimset()也较为常用,现具体介绍其调用格
10、式为:q options = optimset(param1,value1,param2,value2,.):用于对优化参数设置指定的值,其中常用的参数包括Display(控制计算过程中的显示,取值为off时不显示输出,取值为iter时每次迭代后显示输出的信息,取值为final时显示最终输出结果,缺省,取值为notify时当函数不收敛时显示输出结果;MaxIter(函数优化过程中的最大迭代次数);TolFun(算法终止的函数值精度);TolX(算法终止的自变量的精度)。q optimset:该格式可用于查看完成的可以设置的算法参数的信息。q options = optimset:参数设置使用默
11、认的设置。q options = optimset(optimfun):返回优化函数optimfun的优化算法参数设置。q options = optimset(oldopts,param1,value1,.):使用老的算法设置oldopts,并更新其中的部分参数。q options = optimset(oldopts,newopts):使用新的算法设置newopts替代老的算法设置oldopts。14.2 整数规划当需要求解的优化问题中全部或部分的变量为整数时为整数规划问题。在MATLAB优化工具箱中用于整数规划的函数为bintprog(),主要解决的问题为:函数bintprog()的调用
12、格式为:q x = bintprog(f):参数f为目标函数的系数矩阵;q x = bintprog(f, A, b):参数A和b为整数规划的不等式约束条件。q x = bintprog(f, A, b, Aeq, beq):参数Aeq和beq为整数规划的等式约束条件。q x = bintprog(f, A, b, Aeq, beq, x0):参数x0为函数优化解的初始值。q x = bintprog(f, A, b, Aeq, beq, x0, options):参数options对优化过程进行一些参数设置。q x, fval = bintprog(.):返回最优解x和最优解x处的函数值。q
13、 x,fval, exitflag = bintprog(.):参数exitflag用于显示函数算法终止的状态,具体同函数linprog()。q x, fval, exitflag, output = bintprog(.):参数output返回优化算法的输出参数,包括iterations(算法迭代的次数),nodes(搜索到的节点数),time(算法执行时间),algorithm(使用的算法),message(算法终止的原因)。【例14.2】整数规划问题的求解。首先对该问题进行转化,化为MATLAB整数规划函数可以解决的问题,其中:求最大值z转换为计算:约束条件转换为:通过函数bintpro
14、g()求解上述问题: f=-1 -2 3 -1;A=-2 -3 0 -1;-1 2 -3 2;-4 1 -6 1;b=-5 3 -5;x, fval, exitflag, output = bintprog(f, A, b)Optimization terminated.x = 1 1 1 1fval = -1exitflag = 1output = iterations: 3 nodes: 3 time: 0.49920320000000 algorithm: LP-based branch-and-bound branchStrategy: maximum integer infeasib
15、ility nodeSrchStrategy: best node search message: Optimization terminated.14.3 二次规划二次规划是一类特殊数学规划问题,在金融、工程等多领域都有很大的应用。函数quadprog()是MATLAB优化工具箱中专门用于二次规划问题的函数,主要解决的问题为:其调用格式为:q x = quadprog(H,f,A,b):参数H为目标函数的海赛矩阵,f为目标函数的一次项系数向量,参数A和b为二次规划的不等式约束条件。q x = quadprog(H,f,A,b,Aeq,beq):参数Aeq和beq为二次规划的等式约束条件。q
16、x = quadprog(H,f,A,b,Aeq,beq,lb,ub):参数参数lb和ub为二次规划问题中自变量的范围。q x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0):参数x0为函数优化解的初始值。q x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options):参数options对优化过程进行一些参数设置。q x,fval = quadprog(.):返回最优解x和最优解x处的函数值。q x,fval,exitflag = quadprog(.):参数exitflag用于显示函数算法终止的状态。q x,fval,exitfla
17、g,output = quadprog(.):参数output为优化函数的输出,具体同函数linprog()。q x,fval,exitflag,output,lambda = quadprog(.):输出参数lambda同函数linprog()。【例14.3】二次规划问题的求解。H = 1 -1; -1 2;f = -2; -6;A = 1 -1; 1 1;b = 2; 5;lb = zeros(2,1);x,fval,exitflag,output,lambda = quadprog(H,f,A,b,lb) %根据目标函数和约束条件求解二次规划问题Optimization terminat
18、ed.x = 2.20000000000000 2.80000000000000fval = -17.09999999999999exitflag = 1output = iterations: 2 algorithm: medium-scale: active-set firstorderopt: cgiterations: message: Optimization terminated.lambda = lower: 2x1 double upper: 2x1 double eqlin: 0x1 double ineqlin: 2x1 double14.4 非线性规划非线性规划是求解具有
19、非线性约束条件或非线性目标函数的数学规划。本节主要介绍MATLAB优化工具箱中求解无约束和约束非线性规划问题的函数。14.4.1 无约束非线性规划在MATLAB优化工具箱中提供了三个函数fminbnd()、fminunc()和fminsearch(),用于求解无约束的非线性规划问题。下面具体介绍这三个函数。1函数fminbnd()函数fminbnd()主要用于简单优化问题,可在固定的自变量区间内找到目标函数的最小值,其调用格式为:q x = fminbnd(fun,x1,x2):在自变量区间x1, x2范围内找寻使目标函数fun的值最小的x。q x = fminbnd(fun,x1,x2,op
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 14 优化 工具箱
链接地址:https://www.31ppt.com/p-5048999.html