matlab优化工具箱介绍
Matlab优化工具箱简介
1 引言
最优化方法是专门研究如何从多个方案中选择最佳方案的科学。
最优化是一门应用广泛的学科,它讨论决策问题的最佳选择的特性,构造
寻求最佳解的计算方法[1]。在生活和工作中,优化问题广泛存在。最
优化方法的研究和应用已经涉及很多领域,并取得了很好的经济效益
和社会效益。
MATLAB是Mathworks公司推出的一套功能强大的过程计算及
数值分析软件,是目前世界上应用最广泛的工程计算软件之一[2]。它
包含很多工具箱,主要用来扩充matlab的数值计算、符号运算、图形
建模仿真等功能,使其能够用于多种学科。如,控制系统工具箱
(Control System Toolbox)、信号处理工具箱(Signal Processing
Toolbox)、财政金融工具箱(Financial Toolbox)等等.本文主要介绍
Matlab的优化工具箱(Optimization Toolbox)的一些内容。
2 优化工具箱简介
(1)Matlab的优化工具箱主要应用包括:
①求解无约束条件非线性极小值;
②求解约束条件下非线性极小值,包括目标逼近问题、极大-极小
值问题;
③求解二次规划和线性规划问题;
④非线性最小二乘逼近和曲线拟合;
⑤求解复杂结构的大规模优化问题。
(2
(3)Matlab优化函数的查阅与定位
在matlab的命令窗口键入命令
help optiom
结果显示该工具箱中所有函数清单,部分函数如下图示。
优化工具箱部分函数清单
(4)优化工具箱的结构
优化工具箱的结构如下图所示;
3 胃烧 优化函数简介
3.1 线性规划问题
线性规划问题是目标函数和约束条件均为线性函数的问题。
线性规划问题的数学模型为:
min n R x x f ∈'
s.t.:b x A ≤*
beq x Aeq =*
ub x lb ≤≤
其中f 、x 、b 、beq 、lb 、ub 为向量,A 、Aeq 为矩阵。
其它形式的线性规划问题都可经过适当变换化为此标准形式。
函数 linprog
调用格式如下:
x = linprog(f,A,b) %求min f ' *x b x A ≤?线性规划的最
优解。
x = linprog(f,A,b,Aeq,beq) %等式约束beq x Aeq =?,若没有
不等式约束b x A ≤?,则A=[ ],b=[ ]。
x = linprog(f,A,b,Aeq,beq,lb,ub) %指定x 的范围ub x lb ≤≤,
若没有等式约束beq x Aeq =? ,则Aeq=[ ],beq=[ ]
x = linprog(f,A,b,Aeq,beq,lb,ub,x0) %设置初值x0
x = 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 (f min x
其中:x 为向量,如]x ,,x ,x [x n 21 =
可以使用函数fminbnd 、fminarch 和fminunc 。
函数 fminbnd
格式 x = fminbnd(fun,x1,x2) %返回自变量x 在区间21x x x <<
上函数
fun 取最小值时x 值,fun 为目标函数的表达
式字符串或MATLAB 自定义函数的函数柄。
x = fminbnd(fun,x1,x2,options) % options 为指定优化参数选
项
[x,fval] = fminb首先近义词 nd(…) % fval 为目标函数的最小值
[x,fval,exitflag] = fminbnd(…) %xitflag 为终止迭代的条件
[x,fval,exitflag,output] = fminbnd(…) % output 为优化信息 函
数 fminarch
格式 x = fminarch(fun,x0) %x0为初始点,fun 为目标函数的
表达式
字符串或MATLAB 自定义函数的函数柄。
x = fminarch(fun,x0,options) % options 查optimt
[x,fval] = fminarch(…) %最优点的函数值
[x,fval,exitflag] =fminarch(…)% exitflag 与单变量情形一致
[x,fval,exitflag,output] = fminarch(…) %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,exit避孕药的危害 flag,output] = fminunc(…) %output 为输出优化信息
[x,fval,exitflag,output,grad] = fminunc(…) % grad 为函数在解
x 处的梯度值
[x,fval,exitflag,output,grad,hessian] = fminunc(…) %目标
函数在解x 处的海赛(Hessian )值
3.2.2 约束非线性规划问题
非线性有约束的多元函数的数学模型为:
)(min x f
s.t. 0)x (C ≤
0)x (Ceq =
b x A ≤?
beq x Aeq =?
ub x lb ≤≤
其中: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 二次规划问题
二次规划问题的数学模型为:
x f x H x 2
1min '+' s.t. b x A ≤?
beq x Aeq =?
b u x b l ≤≤
其中,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 满足等约束条件
beq x Aeq =?。
x = quadprog(H,f,A,b,Aeq,beq,lb,ub) % lb,ub 分别为解x 的下
界与上界。
x = quad七皇子 prog(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 最小、最大化问题
最小、最大化问题的数学模型为:
)}x (F {max min i }F {x i
s.t. 0)x (C ≤
0)x (Ceq =
b x A ≤?
beq x Aeq =?
ub x lb ≤≤
其中: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 多目标规划问题
多目标规划是指在一组约束下,对多个不同目标函数进行优化。
它的一般形式为
])x (f ,),x (f ),x (f [min m 21
p ,,2,1j 0)x (g j =≤
其中:)x ,,x ,x (x n 21 =。
在同一约束下,当目标函数处于冲突状态时,不存在最优解x 使
所有目标函数同时达到最优。此时,我们使用有效解,即如果不存在S
x ∈,使得)x (f )x (f *i i ≥,i=1,2,…m, 则称x*为有效解。
在MATLAB 中,多目标问题的数学模型为:
,min x imize
s.t. goal
-
?
)x(F≤
weight
C≤
)x(
Ceq=
)x(
A≤
x
b
Aeq=
beq
x
≤
lb≤
ub
x
其中: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(fu关于桥的成语 n,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]张德丰.MATLAB数值分析与应用[M].国防工业出版社,2009.
[4]张武.MATLAB优化工具箱及其应用[J].农业网络信息,138~142,
2008年第8期.
[5]MATLAB工具箱介绍./p-
.
[6]matlab优化工具箱使用实战.
/blog/static/1
/
[7]MATLAB优化工具箱./p-
#
本文发布于:2023-04-25 06:00:29,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/846954.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |