版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB数值计算基础与实例教程机械工业出版社21世纪高等院校计算机辅助设计规划教材第9章非线性规划与分析的优化9.1无约束与有约束的非线性规划9.2二次规划问题9.3最大值的最小化优化9.4“半无限”多元函数规划9.5多目标规划9.6最小二乘拟合的规划9.1无约束与有约束的非线性规划
9.1.1非线性规划定义第9章
当目标函数或约束条件中有一个或多个非线性规划函数时,则称这样的规划问题为非线性规划。在实际的工程应用问题中,一般遇到的问题大部分都是非线性的,其数学模型为:9.1无约束与有约束的非线性规划
9.1.2无约束非线性规划第9章1.fminsearch:求解目标函数是不可导的问题;不连续、在最优解附近出现奇异值等问题;求解实数最优解问题。fminsearch函数的调用格式x=fminsearch(fun,x0)x=fminsearch(fun,x0,options)[x,fval]=fminsearch(fun,x0,options)[x,fval,exitflag]=fminsearch(fun,x0,options)[x,fval,exitflag,output]=fminsearch(fun,x0,options)9.1无约束与有约束的非线性规划第9章fminsearch函数的优化参数options的七种选项FunValCheck:检查目标函数值是否有效。Display:MaxFunEvals:函数评价所允许的最大次数。MaxIter:函数所允许的最大迭代次数。OutputFcn:返回自定义函数的每一步迭代过程。TolFun:函数值的容忍度。TolX:X的容忍度。当不显示输出时,则将其设置为off;当显示每一次的迭代输出时,则将其设置为iter;当只显示最终结果时,则将其设置为final。--options的七种选项9.1无约束与有约束的非线性规划第9章fminsearch函数返回算法终止标志exitflag的三种取值0:表示达到了函数最大的评价次数或是迭代的最大次数-1:表示算法被输出函数所终止1:表示函数收敛到解x---exitflag的三种取值9.1无约束与有约束的非线性规划第9章fminsearch函数的四种算法的变量Algorithm:表示为所使用的算法名称。funcCount:表示为函数的赋值次数。message:表示为算法的终止信息。Iterations:表示为算法的迭代次数。---fminsearch函数的四种算法的变量9.1无约束与有约束的非线性规划第9章【例9-1】求banana方程在区间[-1.2,1]内的最小值:通过分析可知,最小值所对应的点应为(a,a2)代码实现:>>a=sqrt(2);>>f=@(x)100*(x(2)-x(1)^2)^2+(a-x(1))^2;>>[x,fval,exitflag,output]=fminsearch(f,[-1.2,1],optimset('TolX',1e-8))x=1.41422.0000fval=4.2065e-18exitflag=1output=iterations:131funcCount:249algorithm:[1x33char]message:[1x194char]9.1无约束与有约束的非线性规划第9章
该函数在进行无约束优化问题求解时,需要判断出目标函数在优化变量处的梯度和Hessian矩阵,但只适用于函数连续的情况且优化变量为实数的问题。fminunc函数的调用格式:1.x=fminunc(fun,x0)2.x=fminunc(fun,x0,options)3.[x,fval]=fminuc(fun,x0,options)4.[x,fval,exitflag]=fminuc(fun,x0,options)5.[x,fval,exitflag,output]=fminunc(fun,x0,options)6.[x,fval,exitflag,output,grad]=fminunc(fun,x0,options)7.[x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0,options)2.fminunc:9.1无约束与有约束的非线性规划第9章
fminunc函数的优化参数options有多种选项1.Display:当不显示输出时,则将其设置为off;当显示每一次的迭代输出时,则将其设置为iter;当只显示最终结果时,则将其设置为final。2.GradObj:用户自定义的目标函数梯度,对于大规模问题是必选项,对于中、小规模问题则为可选项。3.LargeScale:若使用大规模算法,则将其设置为on;若使用中、小规模算法,则将其设置为off。4.Diagnostics:打印极小化的函数的诊断信息。5.MaxFunEvals:函数评价所允许的最大次数。6.MaxIter:函数所允许的最大迭代次数。7.TolFun:函数值的容忍度。8.TolFun:
TolX:X的容忍度。---options有多种选项9.1无约束与有约束的非线性规划第9章fminunc函数返回算法终止标志exitflag的六种取值1:表示函数收敛到解x2:表示相邻的两次迭代点的变化小于预先给定的容忍度3:搜索方向的幅值<给定容差(约束违背<约束容差TolCon)-1:表示算法被输出函数终止0:表示迭代次数超过option.MaxIter或函数值大于options.FunEvals5:搜索方向的变化率<给定容差(约束违背<约束容差TolCon)---exitflag的取值9.1无约束与有约束的非线性规划第9章fminunc函数的七种算法的变量message:表示为算法的终止信息。firstorderopt:表示为目标函数在点x处的梯度,即一阶最优性条件。stepsize:在x轴上的最终位移。(只适用于中规模算法)funcCount:表示为函数的赋值次数。Iterations:表示为算法的迭代次数。cgiterations:共轭梯度迭代次数。(只适用于大规模算法)Algorithm:表示为所使用的算法名称。---fminunc函数的四种算法的变量9.1无约束与有约束的非线性规划
9.1.3有约束非线性规划第9章在MATLAB中,使用fminbnd函数用于求解单变量的约束优化问题,单变量的约束优化问题的标准形式为:求出在目标函数(a,b)区间上的极小点。1.fminbnd:9.1无约束与有约束的非线性规划第9章fminbnd函数的调用格式:
1.x=fminbnd(fun,x1,x2)
2.x=fminbnd(fun,x1,x2,options)
3.x=fmind(problem)
4.[x,fval]=fminbnd(fun,x1,x2,options)
5.
[x,fval,exitflag]=fminbnd(fun,x1,x2,options)
9.1无约束与有约束的非线性规划第9章
fminbnd函数的返回算法终止迭代信息的exitflag的四种取值0:表示达到函数的最大估计值或迭代次数1:表示函数收敛到解x-1:表示算法被输出函数终止-2:表示输入区间错误,即x1>x2---exitflag的四种取值9.1无约束与有约束的非线性规划第9章【例9-2】
计算下面函数在区间(-3,3)内的最小值:首先,需创建M文件,文件名为test2.m,输入以下代码进行保存。functiony=test2(x)y=(x^3+x^2+3)/(x^3-2*x^2+4);在MATLAB命令窗口调用fminbnd函数进行非线性规划的求解,代码实现:>>[x,fval,exitflag,output]=fminbnd(@test2,-3,3)x=-1.3679e-05fval=0.7500exitflag=1output=iterations:9funcCount:10algorithm:[1x46char]message:[1x111char]9.1无约束与有约束的非线性规划第9章
非线性规划优化问题的标准形式为:其中,f(x)为目标函数,它既可以是线性函数,也可以是非线性函数,也可以是非线性函数;c(x)为非线性向量函数;A为矩阵。2.
fmincon9.1无约束与有约束的非线性规划第9章1.x=fmincon(fun,x0,A,B)2.x=fmincon(fun,x0,A,B,Aeq,Beq)3.x=fmincon(fun,x0,A,B,Aeq,Beq,lb,ub)4.x=fmincon(fun,x0,A,B,Aeq,Beq,lb,ub,nonlcon)5.x=fmincon(fun,x0,A,B,Aeq,Beq,lb,ub,nonlcon,options)6.[x,fval]=fmincon(fun,x0,A,B,Aeq,Beq,lb,ub,nonlcon,options)7.[x,fval,exitflag]=fmincon(fun,x0,A,B,Aeq,Beq,lb,ub,nonlcon,options)fmincon函数:用来求解多元函数的极小值其调用格式:9.1无约束与有约束的非线性规划第9章【例9-3】求解下面函数的最小值,已知其初始值为x0=[555]:首先,需创建M文件functiony=test3(x)y=-2*x(1)*x(2)*x(3);接着,调用fmincon函数进行非线性规划的求解代码实现:>>x0=[5;5;5];>>A=[-1-2-2;122];>>b=[0;75];>>[x,fval]=fmincon(@test3,x0,A,b)x=25.000012.500012.5000fval=-7.8125e+03最后,对约束条件进行验证>>A*x-bans=-7509.2二次规划问题第9章二次规划问题是最简单的约束非线性规划问题,研究成果是比较成熟的,也比较容易理解。通常把约束条件全为线性的且目标函数为二次函数的最优化问题称为二次规划问题。其数学模型为:9.2二次规划问题第9章1.x=quadprog(H,f,A,B)2.x=quadprog(H,f,A,B,Aeq,Beq)3.x=quadprog(H,f,A,B,Aeq,Beq,lb,ub)4.x=quadprog(H,f,A,B,Aeq,Beq,lb,ub,x0)5.x=quadprog(H,f,A,B,Aeq,Beq,lb,ub,x0,options)6.[x,fval]=quadprog(H,f,A,B,Aeq,Beq,lb,ub,x0,options)7.[x,fval,exitflag]=quadprog(H,f,A,B,Aeq,Beq,lb,ub,x0,options)---quadprog函数quadprog函数用于求解二次规划问题其调用格式为:9.3最大值的最小化优化第9章
最大值的最小化问题的数学模型为:9.3最大值的最小化优化第9章1.x=fminimax(fun,x0)2.x=fminimax(fun,x0,A,b)3.x=fminimax(fun,x,A,b,Aeq,Beq)4.x=fminimax(fun,x,A,b,Aeq,Beq,lb,ub)5.x=fminimax(fun,x0,A,b,Aeq,Beq,lb,ub,nonclon)6.x=fminimax(fun,x0,A,b,Aeq,Beq,lb,ub,nonclone,options)7.[x,fval]=fminimax(fun,x0,A,b,Aeq,Beq,lb,ub,nonclone,options)8.[x,fval,maxfval]=fminimax(fun,x0,A,b,Aeq,Beq,lb,ub,nonclone,options)9.[x,fval,maxfval,exitflag]=fminimax(fun,x0,A,b,Aeq,Beq,lb,ub,nonclone,options)10.[x,fval,maxfval,exitflag,output]=fminimax(fun,x0,A,b,Aeq,Beq,lb,ub,nonclone,options)11.[x,fval,maxfval,exitflag,output,lambda]=fminimax(fun,x0,A,b,Aeq,Beq,lb,ub,nonclone,options)fminimax函数:实现求解最大值最小化的问题其调用格式:9.4“半无限”多元函数规划第9章“半无限”多元函数优化问题的数学模型描述为:c(x):非线性不等式约束Ceq(x):非线性等式约束Ax≤b:线性不等式约束Aeqx=Beq:线性等式约束Ki(x,wi)≤0:关于优化变量x和变量w的函数关系9.4“半无限”多元函数规划第9章
x=fseminf(fun,x0,ntheta,seminfcon)x=fseminf(fun,x0,ntheta,seminfcon,A,b)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)[x,fval]=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)[x,fval,exitflag]=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)[x,fval,exitflag,output]=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)[x,fval,exitflag,output,lambda]=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)fseminf函数用于求解“半无限”多元函数的优化问题,其调用格式9.5多目标规划第9章多目标规划问题的标准形式为:目标函数若
且对于x*不存在
使得
和无法同时成立,那么就定义x*为多目标寻优问题的非劣解。9.5多目标规划第9章1.多目标寻优解法权和法约束法目标达到法将多目标向量问题转化为所有目标的加权求和的简单标量问题对目标函数向量中的主要目标Fp进行最小化目标达成法的一个好处是可以将多目标寻优问题转化为非线性规划问题改进的目标达成法通过将目标达到问题变为最大最小化问题来获得更为适合的目标函数9.5多目标规划第9章2.多目标寻优的有关函数fgoalattain函数来实现多目标规划的求解x=fgolaattain(fun,x0,goal,weight)x=fgolaattain(fun,x0,goal,weight,A,b)x=fgolaattain(fun,x0,goal,weight,A,b,Aeq,beq)x=fgolaattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)x=fgolaattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)x=fgolaattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)[x,fval]=fgolaattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)[x,fval,attainfactor]=fgolaattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)……….
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 永州市宁远县2025届四上数学期中调研模拟试题(含答案解析)
- 永寿县2025年四年级数学下学期期末教学质量检测试题含答案解析
- 永善县2025届数学三年级第二学期期末调研模拟试题含答案
- 2026年哺乳期保健指导措施
- 2026年社区创建文明城区工作方案
- 2026年小班安全演练计划及方案及措施
- 2026年国庆主题教学活动设计方案
- 2025-2026学年第二学期语文教研工作总结2篇
- 2026年朗读指导方法小学语文
- 2026年春节期间安全风险防控
- 2026青海数字经济发展集团有限公司社会招聘9人笔试备考题库及答案详解
- 2026年国家公务员考试面试题及答案
- TSG08-2026《特种设备使用管理规则》解析
- 2025年恩施州鹤峰县选调真题
- 国开2026年《劳动关系与社会保障实务》形考任务1-4答案
- 2026年高考(北京卷)英语试题及答案
- 2026 年高考(江苏卷)地理试题及答案
- 2026年中考《语文》作文10大主题抢分万能模板
- 《义务教育语文课程标准2025》
- 眉山市东坡区社区网格员招录考试真题库及完整答案
- 2024年陇西县幼儿园教师招教考试备考题库附答案解析(必刷)
评论
0/150
提交评论