Matlab优化工具箱简介课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Matlab优化工具箱简介课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 优化 工具箱 简介 课件
- 资源描述:
-
1、第五讲第五讲 MatlabMatlab优化工具箱简介优化工具箱简介 -optimization toobox-optimization toobox1.1.线性优化线性优化2.2.非线性优化非线性优化3.3.极小化极大极小化极大(MinmaxMinmax)问题问题4.4.曲线拟合与插值曲线拟合与插值1线性规划问题是目标函数和约束条件均为线性函数的问题,MATLAB7.0解决的线性规划问题的标准形式为 min sub.to:其中f、x、b、beq、lb、ub为向量,A、Aeq为矩阵.其它形式的线性规划问题都可经过适当变换化为此标准形式.在MATLAB5.x以上版中,线性规划问题Linear Pr
2、ogramming已用函数linprog取代了MATLAB5.x版中的lp函数.当然,由于版本的向下兼容性,一般说来,低版本中的函数在7.0版中仍可使用.nRxxfbxAbeqxAequbxlb5.1 线性优化2函数 linproglinprog格式 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,
3、ub,x0)%设置初值x0.x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)%options为指定的优化参数.bxA3x,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为关于优化的一些信息.说明:若exitflag0表示函数收敛于解x,exitf
4、lag=0表示超过函数估值或迭代的最大次数,exitflagf=-5;-4;-6;%写成行向量亦可!A=1-1 1;3 2 4;3 2 0;b=20;42;30;lb=zeros(3,1);x,fval,exitflag,output,lambda=linprog(f,A,b,lb)结果为:x=%最优解 0.0000 15.0000 3.0000fval=%最优值 -78.0000exitflag=%收敛 16output=iterations:6%迭代次数 cgiterations:0 algorithm:lipsol%所使用规则lambda=ineqlin:3x1 double eqlin
5、:0 x1 double upper:3x1 double lower:3x1 double lambda.ineqlinans=0.0000 1.5000 0.5000 lambda.lowerans=1.0000 0.0000 0.0000表明:不等约束条件2和3以及第1个下界是有效的.7请写出下面线性规划的请写出下面线性规划的MatlabMatlab程序程序.8c=-0.4-0.28-0.32-0.72-0.64-0.6;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 A
6、=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;0.02 0 0 0.05 0;0 0 0.03 0 0 0.08;b=850;700;100;900;b=850;700;100;900;Aeq=;beq=;Aeq=;beq=;vlb=0;0;0;0;0;0;vub=;vlb=0;0;0;0;0;0;vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)9MATLABMA
7、TLAB求解优化问题的主要函数求解优化问题的主要函数10优化函数的输入变量优化函数的输入变量 11优化函数的输出变量优化函数的输出变量 125.2非线性优化5.2.1 5.2.1 有约束的一元函数的最小值有约束的一元函数的最小值单变量函数求最小值的标准形式为 sub.to 函数 fminbndfminbnd格式 x=fminbnd(fun,x1,x2)%返回自变量x在区间上函数fun取最小值时x值,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄.x=fminbnd(fun,x1,x2,options)x,fval=fminbnd()x,fval,exitflag=fminbnd
8、()x,fval,exitflag,output=fminbnd()x(fminx21xxx13例5-2 计算下面函数在区间(0,1)内的最小值.x3exlogxxcosx)x(f解:x,fval,exitflag,output=fminbnd(x3+cos(x)+x*log(x)/exp(x),0,1)x=0.5223fval=0.3974exitflag=1output=iterations:9 funcCount:9 algorithm:golden section search,parabolic interpolation141)3x()x(f3例5-3 在0,5上求下面函数的最小值
9、解:先自定义函数:在MATLAB编辑器中建立M文件为:function f=myfun(x)f=(x-3).2-1;保存为myfun.m,然后在命令窗口键入命令:x=fminbnd(myfun,0,5)则结果显示为:x=3155.2.2 5.2.2 无约束多元函数最小值无约束多元函数最小值多元函数最小值的标准形式为其中:x为向量.命令 利用函数fminsearch求无约束多元函数最小值.函数 fminsearchfminsearch格式 x=fminsearch(fun,x0)%x0为初始点,fun为目标函数的表达式字符串或MATLAB自定义函数的函数柄.x=fminsearch(fun,x0
10、,options)%options查optimset.x,fval=fminsearch()%最优点的函数值.x,fval,exitflag=fminsearch()%exitflag与单变量情形一致.x,fval,exitflag,output=fminsearch()%output与单变量情形一致.)x(fminxx,x,xxn2116222132131xxx10 xx4x2y例5-4 求 的最小值点.解:X=fminsearch(2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2,0,0)结果为 X=1.0016 0.8335或在MATLAB编辑器中建立函数文
11、件.function f=myfun(x)f=2*x(1)3+4*x(1)*x(2)3-10*x(1)*x(2)+x(2)2;保存为myfun.m,在命令窗口键入 X=fminsearch(myfun,0,0)或 X=fminsearch(myfun,0,0)结果为:X=1.0016 0.8335175.2.3 5.2.3 有约束的多元函数最小值有约束的多元函数最小值非线性有约束的多元函数的标准形式为:sub.to 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数.在MATLA
12、B5.x中,它的求解由函数constr实现.)x(fminx0)x(C0)x(CeqbxAbeqxAequbxlb18函数 fminconfmincon格式 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
13、,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()19参数说明:fun为目标函数,它可用前面的方法定义;nonlcon的作用是通过接受的向量x来计算非线性不等约束和等式约束分别在x处的估计C和Ceq,通过指定函数柄来使用,如:x=fmincon(myfun,x0,A,b,Aeq,beq,lb,ub,mycon),先建
14、立非线性约束函数,并保存为mycon.m:function C,Ceq=mycon(x)C=%计算x处的非线性不等约束的函数值.Ceq=%计算x处的非线性等式约束的函数值.lambda是Lagrange乘子,它体现哪一个约束有效.output输出优化信息;grad表示目标函数在x处的梯度;hessian表示目标函数在x处的Hessian值.20例5-5 求下面问题在初始点(0,1)处的最优解21212221x5x2xxxx0 x)1x(22106x3x221min sub.to 解:约束条件的标准形式为:sub.to 先在MATLAB编辑器中建立非线性约束函数文件:function c,ceq
15、=mycon(x)c=(x(1)-1)2-x(2);ceq=;%无等式约束.0 x)1x(2216x3x22121然后,在命令窗口键入如下命令或建立M文件:fun=x(1)2+x(2)2-x(1)*x(2)-2*x(1)-5*x(2);%目标函数.x0=0 1;A=-2 3;%线性不等式约束.b=6;Aeq=;%无线性等式约束.beq=;lb=;%x没有下、上界.ub=;x,fval,exitflag,output,lambda,grad,hessian=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,mycon)22则结果为x=3 4fval=-13exitflag=1%解
16、收敛.output=iterations:2 funcCount:9 stepsize:1 algorithm:medium-scale:SQP,Quasi-Newton,line-search firstorderopt:cgiterations:lambda=lower:2x1 double%x下界有效情况,通过lambda.lower可查看.upper:2x1 double%x上界有效情况,为0表示约束无效.23 eqlin:0 x1 double%线性等式约束有效情况,不为0表示约束有效.eqnonlin:0 x1 double%非线性等式约束有效情况.ineqlin:2.5081e-
17、008%线性不等式约束有效情况.neqnonlin:6.1938e-008%非线性不等式约束有效情况.grad=%目标函数在最小值点的梯度.1.0e-006*-0.1776 hessian=hessian=%目标函数在最小值点的Hessian值.1.0000 -0.0000 1.0000 -0.0000 -0.0000 1.0000 -0.0000 1.0000245.2.4 5.2.4 二次规划问题二次规划问题二次规划问题(quadratic programming)的标准形式为:sub.to 其中,H、A、Aeq为矩阵,f、b、beq、lb、ub、x为向量其它形式的二次规划问题都可转化为标
18、准形式.MATLAB5.x版中的qp函数已被6.0版中的函数quadprog取代。xfxHx21minbxAbeqxAeqbuxbl25函数 quadprogquadprog格式 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
19、,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与线性规划中参数意义相同.263xx)0,0(xx0110)xx(213xx)xx(fmin2121212121例5-6 求二次规划的最优解 max f(x1,x2
20、)=x1x2+3 sub.to x1+x2-2=0解:化成标准形式:sub.to x1+x2=227在Matlab中实现如下:H=0,-1;-1,0;f=0;0;Aeq=1 1;b=2;x,fval,exitflag,output,lambda=quadprog(H,f,Aeq,b)结果为:x=1.0000 1.000028fval=-1.0000exitflag=4output=iterations:1 algorithm:large-scale:projective preconditioned conjugate gradients f irstorderopt:0 cgiteratio
21、ns:1 message:Optimization terminated:local minimum found;the solution is singular.lambda=eqlin:1.0000 ineqlin:lower:upper:295.3 极小化极大(Minmax)问题)x(FmaxminiFxi0)x(C0)x(CeqbxAbeqxAequbxlbsub.to 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、Ceq(x)和F(x)是返回向量的函数,F(x)、C(x)、Ceq(x)可以是非线性函数.301.什么是传统机械按键设计?传统的机械按键设计是需要手动
22、按压按键触动PCBA上的开关按键来实现功能的一种设计方式。传统机械按键设计要点:1.合理的选择按键的类型,尽量选择平头类的按键,以防按键下陷。2.开关按键和塑胶按键设计间隙建议留0.050.1mm,以防按键死键。3.要考虑成型工艺,合理计算累积公差,以防按键手感不良。传统机械按键结构层图:按键开关键PCBA函数 fminimaxfminimax格式 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,
23、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()32例5-7 求下列函数最大值的最小化问题其中:)x(f ,)x(f ,)x(f ,)x(f ,)x(f54321304x40 x48xx2)x(f
24、212221122222x3x)x(f18x3x)x(f213214xx)x(f8xx)x(f21533解:先建立目标函数文件,并保存为myfun.m:function f=myfun(x)f(1)=2*x(1)2+x(2)2-48*x(1)-40*x(2)+304;f(2)=-x(1)2-3*x(2)2;f(3)=x(1)+3*x(2)-18;f(4)=-x(1)-x(2);f(5)=x(1)+x(2)-8;然后,在命令窗口键入命令:x0=0.1;0.1;%初始值x,fval=fminimax(myfun,x0)结果为:x=4.0000 4.0000fval=0.0000 -64.0000
25、-2.0000 -8.0000 -0.0000345.4 曲线拟合与插值 在大量的应用领域中,人们经常面临用在大量的应用领域中,人们经常面临用一个解析一个解析函数描述数据函数描述数据(通常是测量值通常是测量值)的任务的任务.对这个问题有对这个问题有两种方法两种方法.插值插值:在插值法里,数据假定是正确的,要求以在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况某种方法描述数据点之间所发生的情况.曲线拟合曲线拟合:曲线拟合或回归是人们设法找出某条光:曲线拟合或回归是人们设法找出某条光滑曲线,它滑曲线,它最佳地拟合数据最佳地拟合数据,但不必要经过任何数,但不必要经过任何数据点据
展开阅读全文