matlab优化工具箱介绍.doc_第1页
matlab优化工具箱介绍.doc_第2页
matlab优化工具箱介绍.doc_第3页
matlab优化工具箱介绍.doc_第4页
matlab优化工具箱介绍.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab优化工具箱简介1 引言最优化方法是专门研究如何从多个方案中选择最佳方案的科学。最优化是一门应用广泛的学科,它讨论决策问题的最佳选择的特性,构造寻求最佳解的计算方法1。在生活和工作中,优化问题广泛存在。最优化方法的研究和应用已经涉及很多领域,并取得了很好的经济效益和社会效益。MATLAB是Mathworks公司推出的一套功能强大的过程计算及数值分析软件,是目前世界上应用最广泛的工程计算软件之一2。它包含很多工具箱,主要用来扩充matlab的数值计算、符号运算、图形建模仿真等功能,使其能够用于多种学科。如,控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等等.本文主要介绍Matlab的优化工具箱(Optimization Toolbox)的一些内容。2 优化工具箱简介(1)Matlab的优化工具箱主要应用包括:求解无约束条件非线性极小值;求解约束条件下非线性极小值,包括目标逼近问题、极大-极小值问题;求解二次规划和线性规划问题;非线性最小二乘逼近和曲线拟合;求解复杂结构的大规模优化问题。(2)优化工具箱的常用函数: 边界约束条件下的非线性最小化fminbnd 求解多变量函数的最小化fminunc求解无约束非线性最小化fminsearch求解线性线性规划问题linprog求解二次规划问题quadprog求解有约束的非线性最小化fmincon求解多目标规划的优化问题fgoalattain求解最小、最大化问题fminimax(3)Matlab优化函数的查阅与定位在matlab的命令窗口键入命令help optiom结果显示该工具箱中所有函数清单,部分函数如下图示。 优化工具箱部分函数清单 (4)优化工具箱的结构优化工具箱的结构如下图所示;3 优化函数简介3.1 线性规划问题线性规划问题是目标函数和约束条件均为线性函数的问题。线性规划问题的数学模型为:min s.t.: 其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵。其它形式的线性规划问题都可经过适当变换化为此标准形式。函数 linprog调用格式如下: x = linprog(f,A,b) %求min f *x sub.to 线性规划的最优解。x = linprog(f,A,b,Aeq,beq) %等式约束,若没有不等式约束,则A= ,b= 。x = linprog(f,A,b,Aeq,beq,lb,ub) %指定x的范围,若没有等式约束 ,则Aeq= ,beq= x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %设置初值x0x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数x,fval = linprog() % 返回目标函数最优值,即fval= f *x。x,lambda,exitflag = linprog() % lambda为解x的Lagrange乘子。x, lambda,fval,exitflag = linprog() % exitflag为终止迭代的错误条件。x,fval, lambda,exitflag,output = linprog() % output为关于优化的一些信息3.2 非线性规划问题3.2.1 无约束非线性规划问题多元函数最小值的数学模型为:其中:x为向量,如可以使用函数fminbnd、fminsearch和fminunc。函数 fminbnd格式 x = fminbnd(fun,x1,x2) %返回自变量x在区间上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。x = fminbnd(fun,x1,x2,options) % options为指定优化参数选项x,fval = fminbnd() % fval为目标函数的最小值x,fval,exitflag = fminbnd() %xitflag为终止迭代的条件x,fval,exitflag,output = fminbnd() % output为优化信息函数 fminsearch格式 x = fminsearch(fun,x0) %x0为初始点,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄。x = fminsearch(fun,x0,options) % options查optimsetx,fval = fminsearch() %最优点的函数值x,fval,exitflag =fminsearch()% exitflag与单变量情形一致x,fval,exitflag,output = fminsearch() %output与单变量情形一致函数 fminunc格式 x = fminunc(fun,x0) %返回给定初始点x0的最小函数值点x = fminunc(fun,x0,options) % options为指定优化参数x,fval = fminunc() %fval最优点x处的函数值x,fval,exitflag = fminunc() % exitflag为终止迭代的条件。x,fval,exitflag,output = fminunc() %output为输出优化信息x,fval,exitflag,output,grad = fminunc() % grad为函数在解x处的梯度值x,fval,exitflag,output,grad,hessian = fminunc() %目标函数在解x处的海赛(Hessian)值3.2.2 约束非线性规划问题非线性有约束的多元函数的数学模型为:s.t. 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数。函数 fmincon格式 x = fmincon(fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fmincon()x,fval,exitflag = fmincon()x,fval,exitflag,output = fmincon()x,fval,exitflag,output,lambda = fmincon()x,fval,exitflag,output,lambda,grad = fmincon()x,fval,exitflag,output,lambda,grad,hessian = fmincon()3.2.3 二次规划问题二次规划问题的数学模型为:s.t. 其中,H、A、Aeq为矩阵,f、b、beq、lb、ub、x为向量其它形式的二次规划问题都可转化为标准形式。函数 quadprog格式 x = quadprog(H,f,A,b) %其中H,f,A,b为标准形中的参数,x为目标函数的最小值。x = quadprog(H,f,A,b,Aeq,beq) %Aeq,beq满足等约束条件。x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % lb,ub分别为解x的下界与上界。x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) %x0为设置的初值x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数x,fval = quadprog() %fval为目标函数最优值x,fval,exitflag = quadprog() % exitflag与线性规划中参数意义相同x,fval,exitflag,output = quadprog() % output与线性规划中参数意义相同x,fval,exitflag,output,lambda = quadprog() % lambda与线性规划中参数意义相同3.3 最小、最大化问题最小、最大化问题的数学模型为:s.t. 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)和F(x)是返回向量的函数,F(x)、C(x)、Ceq(x)可以是非线性函数。优化函数 fminimax格式 x = fminimax(fun,x0)x = fminimax(fun,x0,A,b)x = fminimax(fun,x0,A,b,Aeq,beq)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval,maxfval = fminimax()x,fval,maxfval,exitflag = fminimax()x,fval,maxfval,exitflag,output = fminimax()x,fval,maxfval,exitflag,output,lambda = fminimax()3.4 多目标规划问题多目标规划是指在一组约束下,对多个不同目标函数进行优化。它的一般形式为sub.to 其中:。在同一约束下,当目标函数处于冲突状态时,不存在最优解x使所有目标函数同时达到最优。此时,我们使用有效解,即如果不存在,使得,i=1,2,m, 则称x*为有效解。在MATLAB中,多目标问题的数学模型为:s.t. 其中:x、b、beq、lb、ub是向量;A、Aeq为矩阵;C(x)、Ceq(x)和F(x)是返回向量的函数;F(x)、C(x)、Ceq(x)可以是非线性函数;weight为权值系数向量,用于控制对应的目标函数与用户定义的目标函数值的接近程度;goal为用户设计的与目标函数相应的目标函数值向量;为一个松弛因子标量;F(x)为多目标规划中的目标函数向量。函数 fgoalattain格式 x = fgoalattain(fun,x0,goal,weight)x = fgoalattain(fun,x0,goal,weight,A,b)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval = fgoalattain()x,fval,attainfactor = fgoalattain()x,fval,attainfactor,exitflag = fgoalattain()x,fval,attainfactor,exitflag,output = fgoalattain()x,fval,attainfactor,exitflag,output,lambda=fgoalattain()参考文献: 1褚洪生,杜增吉,阎金华,等.MATLAB7.2优化设计实例指导教程M.北京:机械工业出版社,2007.2李丽,王振领.MATLAB工程计算及应用M.北京:人民邮电出版社,2004.3张德

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论