资源预览内容
第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
第9页 / 共57页
第10页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第7章章 MATLABMATLAB辅助优化计算辅助优化计算MATLAB优化工具箱函数选用优化工具箱函数选用工程优化算法及工程优化算法及MATLAB实现实现7.1 MATLAB优化工具箱函数选用优化工具箱函数选用nMATLAB 6.5中中的优化工具箱的优化工具箱(Optimization Toolbox)中含有一系列的优化算法函数,这些中含有一系列的优化算法函数,这些函数拓展了函数拓展了MATLAB 6.5数字计算环境的处数字计算环境的处理能力,可以用于解决以下工程实际问题理能力,可以用于解决以下工程实际问题:n 求解无约束条件非线性极小值;求解无约束条件非线性极小值;n 求解约束条件非线性极小值,包括目标逼求解约束条件非线性极小值,包括目标逼近问题、极大极小值问题,以及半无近问题、极大极小值问题,以及半无 限极限极小值问题;小值问题;n 求解一次规划和线性规划问题;求解一次规划和线性规划问题;n 非线性最小二乘逼近和曲线拟合:非线性最小二乘逼近和曲线拟合:n 非线性系统的方程求解;非线性系统的方程求解;n 约束条件下的线性最小二乘优化;约束条件下的线性最小二乘优化;n 求解复杂结构的大规模优化问题。求解复杂结构的大规模优化问题。n说明:说明:优化工县箱中的所有函数都对应于一优化工县箱中的所有函数都对应于一个个MATLAB 6.5的的-M文件,这些文件,这些-M文件通文件通过使用过使用MATLAB 6.5的基本语句实现了具体的基本语句实现了具体的优化算法。的优化算法。1 优化工具箱的工程应用步骤优化工具箱的工程应用步骤n用用MATLAB 6.5优化工具箱解决实际工程应优化工具箱解决实际工程应用问题可概括为以下用问题可概括为以下3个步骤:个步骤:n根据所提出的最优化问题,建立优化问题的根据所提出的最优化问题,建立优化问题的数学模型,确定变量,列出约束条件和目标数学模型,确定变量,列出约束条件和目标函数;函数;n对所建立的模型进行具体分析和研究,选择对所建立的模型进行具体分析和研究,选择合适的最优化求解方法;合适的最优化求解方法;n根据最优化方法的算法,列出程序框图、选根据最优化方法的算法,列出程序框图、选择优化函数和编写语言程序,用计算机求解。择优化函数和编写语言程序,用计算机求解。2 线性规划及其优化工具箱函数选用线性规划及其优化工具箱函数选用n规划问题的数学模型包含三个组成要素:规划问题的数学模型包含三个组成要素:(1)决策变量决策变量,指决策者为实现规划目标采,指决策者为实现规划目标采取的方案、措施,是问题中要确定的未知量:取的方案、措施,是问题中要确定的未知量:(2)目标函数目标函数,指问题要达到的目的要求,指问题要达到的目的要求,表示为决策变量的函数;表示为决策变量的函数;(3)约束条件约束条件,指,指决策变量取值时受到的各种可用资源的限制,决策变量取值时受到的各种可用资源的限制,表示为含决策变量的等式或不等式。表示为含决策变量的等式或不等式。如果在如果在规划问题的数学模型中,决策变量为可控的规划问题的数学模型中,决策变量为可控的连续变量,目标函数和约束条件都是线性的,连续变量,目标函数和约束条件都是线性的,这类模型称为线性规划问题的数学模型。这类模型称为线性规划问题的数学模型。n规定线性规划的标准型为规定线性规划的标准型为n 上述线性规划问题可简写为上述线性规划问题可简写为n对于标准形式的线性规划的可行解等价于线对于标准形式的线性规划的可行解等价于线性方程组性方程组Ax=b的非负解。的非负解。n在在MATLAB 6.5优化工具中,用于求解线性优化工具中,用于求解线性规划的函数节有规划的函数节有linprog,用法如下,用法如下例例结果输出结果输出程序程序E01023 无约束非线性规划无约束非线性规划n线性规划的目标函数和约束条件部是其自变线性规划的目标函数和约束条件部是其自变量的线性函数,如果目标函数或约束条件中量的线性函数,如果目标函数或约束条件中包含自变量的非线性函数,则这样的规划问包含自变量的非线性函数,则这样的规划问题就属于非线性规划。有些实际问题可以表题就属于非线性规划。有些实际问题可以表达成线性规划问题,但有些实际问题则需用达成线性规划问题,但有些实际问题则需用非线性规划的模型来表达,借助于非线性规非线性规划的模型来表达,借助于非线性规划的解怯来求解。有约束问题与无约束问题划的解怯来求解。有约束问题与无约束问题是非线性规划的两大类问题,它们在处理方是非线性规划的两大类问题,它们在处理方法上有明显的不同。法上有明显的不同。n在在MATLAB 6.5优化工具箱中用于求解无优化工具箱中用于求解无约束非线性规划的函数有:约束非线性规划的函数有:fminsearch和和fminunc,用法介绍如下。,用法介绍如下。nfminsearch函数函数n【工程应用背景工程应用背景】n【实例分析实例分析】m文件文件结果输出结果输出主程序主程序Eyh01nfminunc函数函数n【工程应用背景工程应用背景】n【实例分析实例分析】m文件文件Eyh02结果输出结果输出主程序主程序注意:注意:求解无约束条件下多变量函数的最小值求解无约束条件下多变量函数的最小值fminsearch函数和函数和fminunc函数意义相同。函数意义相同。4 约束最优化约束最优化n由于线性规划和二次规划问题都比较容易求解、由于线性规划和二次规划问题都比较容易求解、所以人们很自然地想到:把要求解的一般非线性所以人们很自然地想到:把要求解的一般非线性约束优化问题线性化然后用线性规划来逐步求约束优化问题线性化然后用线性规划来逐步求其近似解这种方法称为线性逼近法或序列线件其近似解这种方法称为线性逼近法或序列线件规划法规划法(SLP)。但是线性逼近法的精度差,收敛速。但是线性逼近法的精度差,收敛速度慢,而近二十年二次规划的解法得到很大发展,度慢,而近二十年二次规划的解法得到很大发展,有了比较有效的算法,因此近十年来用二次规划有了比较有效的算法,因此近十年来用二次规划的方法即序列二次规划法获得了突出的进展,成的方法即序列二次规划法获得了突出的进展,成为当前世界上为当前世界上最流行的重要的约束优化算法之最流行的重要的约束优化算法之一。一。n在在MATLAB 6.5优化工具箱中用于求解约优化工具箱中用于求解约束最优化问题的函数有:束最优化问题的函数有:fminbnd、fmincon、 fsemcnf、quadprog和和fminmax,用法介绍如下。用法介绍如下。nfminbnd函数函数n【工程应用背景工程应用背景】n【实例分析实例分析】m文件文件结果输出结果输出主程序主程序Eyh03nfmincon函数函数n【工程应用背景工程应用背景】n已知约束条件,求解函数已知约束条件,求解函数f(x)的极小值,的极小值, n其中其中x,b,beq,lb和和ub均是均是向量;向量;A和和Aeq是矩阵;是矩阵;c(x)和和ceq (x)是返回值为向量的是返回值为向量的函数;函数;f(x)是一个返回值为是一个返回值为标量的函数;而且标量的函数;而且 c(x) , ceq (x) 和和f(x) 可以是非续性可以是非续性函数。函数。n【实例分析实例分析】分析:分析:将约束条件化为两个不等式:将约束条件化为两个不等式:从而可将它们写成矩阵不等式的形式:从而可将它们写成矩阵不等式的形式:结果输出结果输出主程序主程序m文件文件Eyh04nfsemcnf函数函数nquadprog函数函数nfminmax函数函数5 多目标规划多目标规划n多目标最优化问题的最早出现,应追溯到多目标最优化问题的最早出现,应追溯到1972年,年,Franklin提出了多目标问题矛盾如提出了多目标问题矛盾如何协调的问题。但国际上一般认为多目标最何协调的问题。但国际上一般认为多目标最优化问题是由法国经济学家优化问题是由法国经济学家V. Pareto在在1896年提出的,当时从政治经济学角度提出多目年提出的,当时从政治经济学角度提出多目标最优决策问题。标最优决策问题。1938年,年,Cournot从经济从经济学的角度提出了多目标问题的模型;学的角度提出了多目标问题的模型;1944年,年,Von Neumann等人从对策论(博弈论)的等人从对策论(博弈论)的角度,提出具有多个决策者、而又有彼此互角度,提出具有多个决策者、而又有彼此互相矛盾的多目标决策问题。相矛盾的多目标决策问题。 n1951年,年,T. C. Koopman从生产和分配的的从生产和分配的的活动分析中,提出了多目标最优化问题,并活动分析中,提出了多目标最优化问题,并正式使用正式使用Pareto最优概念。同年,最优概念。同年,H. W. Kuhn和和A. W. Tucher从数学规划的角度,提从数学规划的角度,提出向量极值的出向量极值的Pareto最优概念,并给出了有最优概念,并给出了有效解的充分必要条件。效解的充分必要条件。1963年,年,L. A. Zadeh又从控制论的角度,提出了多准则问题。又从控制论的角度,提出了多准则问题。1968年,年,Z. Johnsen系统地提出了关于多目系统地提出了关于多目标决策模型的研究报告,这是多目标最优化标决策模型的研究报告,这是多目标最优化这门学科开始发展的一个转折点。这门学科开始发展的一个转折点。 n多目标规划的一般形式为多目标规划的一般形式为n或者记为或者记为n求解多目标规划的最基本方法为评价函数法求解多目标规划的最基本方法为评价函数法n评价函数法的基本思想是:借助于几何或应评价函数法的基本思想是:借助于几何或应用中的直观背景,构造所谓的评价函数,从用中的直观背景,构造所谓的评价函数,从而将多目标优化问题转化为单目标优化问题。而将多目标优化问题转化为单目标优化问题。然后利用单目标优化的求解方法求出最优解,然后利用单目标优化的求解方法求出最优解,并把这种最优解当作多目标规划的最优解。并把这种最优解当作多目标规划的最优解。n在在MATLAB 6.5优化工具箱中,用于求解多优化工具箱中,用于求解多目标最优化问题的函数有:目标最优化问题的函数有:fgoalattain,用,用法介绍如下。法介绍如下。n具体的参数含义如下:具体的参数含义如下:nfun:代表要优化的目标函数,它的变量为:代表要优化的目标函数,它的变量为向量向量x、返回庄、返回庄x点处向量值点处向量值F 。在实际编程。在实际编程中,中,fun可以有两种形式:可以有两种形式: 一是一是fun为一个函数句柄,如为一个函数句柄,如x=fgoalattain(myfun,x0,goal,weight),其,其中中myfun是用户自定义的是用户自定义的MATLAB函数,函数,即:即: function F=myfun(x) F计算函数在计算函数在x点的值。点的值。二是二是fun为一个内联对象为一个内联对象(inline object)。)。如如x=fgoalattain(inline(sin(x), x0, goal, weight);ngoal:代表函数:代表函数fun要逼近的目标值,是一要逼近的目标值,是一个向量,它的维数大小等于目标函数个向量,它的维数大小等于目标函数fun返返回向量回向量F的维数大小。的维数大小。fgoalattain的优化过的优化过程就是使得程就是使得F逼近逼近goal;nweight:代表给定的权值向量,用于控制目:代表给定的权值向量,用于控制目标逼近过程的步长;标逼近过程的步长;nnonlcon:函数由每一个输入变量:函数由每一个输入变量x计算出计算出c和和ceq,用于估计给定,用于估计给定x点的非线性不等式点的非线性不等式c(x)0和非线件等式和非线件等式ceq(x)=0。nonlcon可以可以是一个函数句柄是一个函数句柄,含义同含义同“myfun”。noptions:设置优化选项参数,具体意义解释设置优化选项参数,具体意义解释如下:如下: Display 设置显示算法返回值的类别,设置显示算法返回值的类别,“off”表表示不实现结果,示不实现结果,“iter”表示每次迭表示每次迭 代都显示代都显示返回值,返回值,“final”表示只显示最后返回值;表示只显示最后返回值; MaxFunEval:设置算法中函数估计的最大数目;:设置算法中函数估计的最大数目; MaxIter:设置算法迭代的最大次数;:设置算法迭代的最大次数; TolX:设置使算法终止的:设置使算法终止的x值。值。nfval:返回目标函数在最优解:返回目标函数在最优解x点的函数值:点的函数值:nExitflag:返回算法的终止标志。:返回算法的终止标志。Exitflag0表示算法因求得了最小值而停止;表示算法因求得了最小值而停止;Exitflag=0表示算法因迭代次数越限而停止;表示算法因迭代次数越限而停止;Exitflag0表示算法因函数值发散而停止;表示算法因函数值发散而停止;nOutput:是一个返回优化算法信息的结构,:是一个返回优化算法信息的结构,它的成员它的成员iterations返回迭代的次数。返回迭代的次数。funCount返回算法中函数估汁值的数目,返回算法中函数估汁值的数目,algorithm使用的算法。使用的算法。7.2工程优化算法及工程优化算法及MATLAB实现实现n在在MATLAB 6.5优化工具箱中,针对无约束优化工具箱中,针对无约束优化问题,优化问题, fminunc函数使用了函数使用了拟牛顿法拟牛顿法。n【范例分析范例分析】n考虑如下问题:求解考虑如下问题:求解x=x1,x2,使得,使得m文件文件主程序主程序结结果果输输出出n在在MATLAB 6.5优化工具箱中,针对无约束优化工具箱中,针对无约束优化问题,优化问题, fmincon、fminimax、 fseminf 和和fgoalattain函数使用了函数使用了SQP(Sequential Quadratic Programming)算法。)算法。n【范例分析范例分析】n这部分是有约束优化问题的几个例子,并给这部分是有约束优化问题的几个例子,并给出了详细的出了详细的MATLAB源代码。源代码。n1 非线性不等式约束非线性不等式约束 分析分析:这样的非线性约束优化问题可以用这样的非线性约束优化问题可以用MATLAB优化工具箱中的优化工具箱中的fminncon函数来求解因为约束为非函数来求解因为约束为非线性约束,所以不可能将约束条件信息直接包含再函线性约束,所以不可能将约束条件信息直接包含再函数的输入参数中,必须编写函数返回在每一个点数的输入参数中,必须编写函数返回在每一个点x处处的约束值,然后再调用优化函数的约束值,然后再调用优化函数fminncon; 另一方面,另一方面,fminncon函数要求的约束条函数要求的约束条件一般为件一般为c(x) 0,所以将约束改为:,所以将约束改为:m文件文件m文件文件主程序主程序结结果果输输出出n2 边界约束问题边界约束问题 分析分析:此问题在非线性约束的基础上增加了变量此问题在非线性约束的基础上增加了变量x的边界条件,在的边界条件,在fmincon函数输入参数中加上函数输入参数中加上lb和和ub参数即可参数即可。主程序主程序结结果果输输出出n3 等式问题等式问题m文件文件结结果果输输出出习题习题-1习题习题-2习题习题-3习题习题-4习题习题-5习题习题-6
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号