matlab优化工具箱介绍
- 格式:doc
- 大小:236.00 KB
- 文档页数:7
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 sub.to 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 、fminsearch 和fminunc 。
函数 fminbnd
格式 x = fminbnd(fun,x1,x2) %返回自变量x 在区间21x x 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 查optimset
[x,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 约束非线性规划问题
非线性有约束的多元函数的数学模型为:
)(min x f
s.t. 0)x (C ≤
0)x (Ceq =
b x A ≤⋅
beq x Aeq =⋅
ub x lb ≤≤