matlab优化工具箱介绍

  • 格式:doc
  • 大小:236.00 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 ≤≤