matlab教程2优化视频问题_第1页
matlab教程2优化视频问题_第2页
matlab教程2优化视频问题_第3页
matlab教程2优化视频问题_第4页
matlab教程2优化视频问题_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、2。二阶梯度方法这类方法很多,最简单的称为Newton-Raphson方法,而最常用的是Quasi-Newton方法。Quasi-Newton方法: use an approximation of the inverse Hessian.Form of approximation differs among methods牛顿-拉夫逊法 BFGS methodBroyden-Fletcher-Golfarb-ShannoDFP methodDavidon-Fletcher-Powell优化问题及matlab实现入门视频教程一 By考拉2008.111、各种优化模型介绍2、典型优化函数的使用方法

2、(线性、非线性、有约束、无约束、多目标规划,以及一般性非线性整型优化函数的使用和实例讲解)3、优化中参数设置4、matlab帮组系统的使用5、工具箱的安装方法优化问题分类约束型(constrained)线性(linear)非线性(Nonlinear)整数型(integer)混合型(mixed integer)多目标(multiple objectives )非约束型(Unconstrained)非约束型规划问题x,fval,exitflag,output= fminsearch(fun,x0)实例:求函数f=8x-4y+x2+3y2的最小值f=8*x(1)-4*x(2) +x(1)2+3*x(

3、2)2; 确定一个初始点的方法:x,y=meshgrid(-10:.5:10);f= 8*x-4*y +x.2+3*y.2;surf(x,y,f)选初始点:x0=(0,0)x0=0,0;x,fval,exitflag=fminunc(f,x0) 本例matlab代码example_1 可以从 获得。fminsearch和fminunc是matlab中关于无约束非线性 优化问题的两个函数,用来求解函数的极小值。fminsearch()和fminunc(),前者适合处理阶次低但是间断点多的函数,后者则对于高阶连续的函数比较有效。 根据它们各自的实现原理来看(其中,前者是利用了单纯形法的原理,后者是

4、利用了拟牛顿法的原理),这两个函数 都容易陷入局部优化,并且结果的正确与否还要取决于初值点x0的选取。 有约束线性优化 x,fval,exitflag,output,lambda=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)当我们用MATLAB软件作优化问题时,所有求maxf 的问题化为求min(-f )来作。约束g (x)0,化为 g (x)0来作。实例:生产计划问题假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。每件乙产品,需用材料A类4公斤,B类5

5、公斤,C类10公斤。甲单位产品的利润70元,乙单位产品的利润120元。问如何安排生产,才能使该厂所获的利润最大。建立数学模型:设x1、x2分别为生产甲、乙产品的件数。f为该厂所获总润。max f=70*x(1)+120*x(2)s.t 9*x(1)+4*x(2)3600 4*x(1)+5*x(2)2000 3*x(1)+10*x(2)3000 x(1),x(2)0Matlab求解模型: min f=-(70*x(1)+120*x(2)s.t 9*x(1)+4*x(2)3600 4*x(1)+5*x(2)2000 3*x(1)+10*x(2)3000 -x(1),-x(2) 0linprog模型

6、: f=-70 -120s.t A=9 4;4 5;3 10 B=3600;2000;3000 Aeq=; Beq= lb=0 0;ub=inf inf x0=1 1 Code:example_2 可以从 下载 linprog(f,A,b,Aeq,beq,lb,ub,x0,options)options的参数描述:Display 显示水平。 选择off 不显示输出;选择iter显示每一 步迭代过程的输出;选择final 显示最终结果。MaxFunEvals 函数评价的最大允许次数Maxiter 最大允许迭代次数TolX x处的终止容限 x,fval=linprog() 左端 fval 返回解x

7、处的目标函数值。x,fval,exitflag,output,lambda=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的输出部分: exitflag 描述函数计算的退出条件:若为正值,表示目标函数收敛于解x处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。output 返回优化信息:output.iterations表示迭代次数;output.algorithm表示所采用的算法;outprt.funcCount表示函数评价次数。lambda 返回x处的拉格朗日乘子。它有以下属性: lambda.lower-lambda的下界; lambd

8、a.upper-lambda的上界; lambda.ineqlin-lambda的线性不等式; lambda.eqlin-lambda的线性等式。 Options=optimset(display,iter,Tolx,1e-8);有约束的非线性规划=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval,exitflag,output,lambda,grad,hessian例子:Min f=ex1*(6x12+3x22+2x1*x2+4x2+1) s.t x1x2-x1-x2+10 -2x1*x2-50 x(1)+2*x(1)=0 Mat

9、lab实现: function f=objfun(x)f=exp(x(1)*(6*x(1)2+3*x(2)2+2*x(1)*x(2)+4*x(2)+1); function c,g=confun(x) c(1)=x(1)*x(2)-x(1)-x(2)+1; c(2)=-2*x(1)*x(2)-5; g=;然后可在工作空间键入程序: AE=1 2;BE=0; x0=1,1; nonlcon=confunx, fval =fmincon(objfun,x0, nonlcon)本例代码example_3.m,可以从 获得。多目标规划 多目标规划定义为在一组约束下,多个不同的目标函数进行优化设计。 主

10、要目标法 其基本思想是:在多目标问题中,根据问题的实际情况,确定一个目标为主要目标,而把其余目标作为次要目标,并且根据经验,选取一定的界限值。这样就可以把次要目标作为约束来处理,于是就将原来的多目标问题转化为一个在新的约束下的单目标最优化问题。线性加权和法 其基本思想是:按照多目标fi(x) (i=1, 2, ,m)的重要程度,分别乘以一组权系数j(j=1, 2, ,m)然后相加作为目标函数而构成单目标规划问题。实例:某钢铁厂准备用5000万用于A、B两个项目的技术改造投资。设x1、x2分别表示分配给项目A、B的投资。据专家预估计,投资项目A、B的年收益分别为70%和66%。同时,投资后总的风

11、险损失将随着总投资和单项投资的增加而增加,已知总的风险损失为0.02x12+0.01x22+0.04(x1+x2)2,问应如何分配资金才能使期望的收益最大,同时使风险损失为最小。数学模型:max f1(x)=70 x1+66x2min f2(x)= 0.02x12+0.01x22+0.04(x1+x2)2s.t x1+x25000 0 x1, 0 x2线性加权构造目标函数: max f=0.5f1(x) 0.5f2(x)化最小值问题: min (f)=- 0.5f1(x) +0.5f2(x)Matlab实现f=-0.5*(70*x(1)+66*x(2) +0.5*(0.02*x(1)2+0.0

12、1*x(2)2 +0.04*(x(1)+x(2)2); x0=1000,1000A=1 1;b=5000;lb=zeros(2,1);x,fval, exitflag=fmincon (f,x0, A,b,lb,) 代码example_4,可从 下载(3) 极大极小法 其基本思想是:对于极小化的多目标规划,让其中最大的目标函数值尽可能地小于此,对每个 xR,我们先求诸目标函数值fi(x)的最大值,然后再求这些最大值中的最小值。 x,fval,maxfval,exitflag,output,lambda=fminmax (fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,opti

13、ons,p1,p2,.)(4) 目标达到法 fgoalattain函数用于解决此类问题。其数学模型形式为: min F(x)-weight goal c(x) 0 ceq(x)=0 A xb Aeq x=beq lbxub 其中,x,weight,goal,b,beq,lb和ub为向量,A和Aeq为矩阵,c(x),ceq(x)和F(x)为函数,例:某 化工厂拟生产两种新产品A和B,其生产设备费用分别为2万元/吨和5万元/吨。这两种产品均将造成环境污染,设由公害所造成的损失可折算为A为4万元 /吨,B为1万元/吨。由于条件限制,工厂生产产品A和B的最大生产能力各为每月5吨和6吨,而市场需要这两种

14、产品的总量每月不少于7吨。试问工厂如何安 排生产计划,在满足市场需要的前提下,使设备投资和公害损失均达最小。该工厂决策认为,这两个目标中环境污染应优先考虑,设备投资的目标值为20万元,公 害损失的目标为12万元。 建立数学模型: 设工厂每月生产产品A为x1吨,B为x2吨,设备投资费为f(x1),公害损失费为f(x2),则问题表达为多目标优化问题: min f1(x)=2x1+5x2 min f2(x)=4x1+x2 s.t x15; x26; x1+x27;x1 ,x20Matlab实现: function f=ff12(x) f(1)=2*x(1)+5*x(2); f(2)= 4*x(1)

15、+x(2); 按给定目标取: goal=20,12; weight=20,12; x0=2,2 A=1 0; 0 1;-1 -1; b=5 6 -7; lb=zeros(2,1);x,fval,attainfactor,exitflag =fgoalattain(ff12,x0,goal,weight,A,b,lb,) example_5可以从 获得一般的非线性整数规划errmsg,Z,X,t,c,fail = BNB20(fun,x0,xstat,xl,xu,a,b,aeq,beq,nonlc,setts,opts,varargin)本例中使用的bnb20工具箱, 在 的工具箱下载版块可以下

16、载,但在matlab7中使用,存在bug,修改后的bnb20将分为matlab6,6.5和7.0版本,随本例代码bnbexample.m,一起发布在网站视频教学版块,提供下载。 单纯形解法 线性规划 单纯形方法的基本思路是,首先从可行域中找一个基可行解,然后判别它是否为最优解,如果是,则停止计算;否则,就找一个更好的基可行解,再进行检验,如此反复迭代,直至找到最优解,或者判定它无界(即无有限最优解)为止。 几种常见的优化方法Taylor 展开:V(x) = V(xk) + (x-xk)V(xk) +1/2 (x-xk)2 V(xk)+. 当x是3N个变量的时候, V(xk)成为3Nx1的向量,

17、而V(xk)成为3Nx3N的矩阵,矩阵元如:Hessian解非线性方程f(x)=0的牛顿(Newton) 法,就是将非线性方程线性化的一种方法。它是解代数方程和超越方程的有效方法之 一。 一阶梯度法 a. Steepest descendentSk = -gk/|gk|directiongradient知道了方向,如何确定步长呢?最常用的是先选择任意步长l,然后在计算中调节用体系的能量作为外界衡量标准,能量升高了则逐步减小步长。robust, but slow最速下降法 最陡下降法(SD) 这是工程上一种数值求极值的方法:它总是只在最近的邻域里找 极值,一步一步地迭代,直到收敛。它的缺点是:有可能最终找不到全局的最优, 只是一个局部的最优罢了;而且它的收敛速度很慢;它的优点是:非常简单。 b. Conjugate Gradient (CG) 共轭梯度第k步的方向标量Usually more efficient than SD, also robust不需要外界能量等作为衡量

温馨提示

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

评论

0/150

提交评论