通常在使用Matlab优化工具箱中的函数时,需要根据不同要求修改优化选项,例如最大迭代次数、x处的终止容限等等。可通过 optimset 语句来修改优化选项参数:

options=optimset(‘optionName’,’optionValue’);如:

options=optimset('tolx',1e-100);

options=optimset(options,'tolfun',1e-100);

后面还可以依此法添加很多选项信息。

下面举一个完整例子:求取f=4*x(1)^2+5*x(1)*x(2)+2*x(2)^2的最小值

---------------------------------------------------------------------------------------------function

[f,g]=ff3(x)

f=4*x(1)^2+5*x(1)*x(2)+2*x(2)^2;

if nargut >1

g(1)=8*x(1)+5*x(2);

g(2)=5*x(1)+4*x(2);

end

通过下面将优化选项结构options.GradObj设置为’on’来得到梯度值。

options=optimset(‘Gradobj’,’on’);

x0=[1,1];

[x,fval,exitflag]=fminunc(@ff3,x0,options)

---------------------------------------------------------------------------------------------

Options的参数描述(OPTIMSET):

%OPTIMSET

PARAMETERS�rivativeCheck - Compare user supplied derivatives (gradients or

Jacobian)

% to finite-differencing derivatives [ on |

{off}]

%Diagnostics - Print

diagnostic information about the function to be

% minimized or solved [ on | {off}]

%DiffMaxChange - Maximum

change in variables for finite difference gradients

% [ positive scalar | {1e-1} ]

%DiffMinChange - Minimum change in variables for finite difference

gradients

% [ positive scalar | {1e-8} ]

%Display - Level of display

[ off | iter | notify | final ]

%GoalsExactAchieve - Number of goals to achieve exactly

(do not over- or

% under-achieve) [ positive scalar integer | {0}]

%GradConstr - Gradients for the nonlinear constraints defined by

user

% [ on | {off} ]

%GradObj - Gradient(s) for the objective function(s) defined by

user

% [ on | {off}]

%Hessian - Hessian for the objective function defined by

user [ on | {off} ]

%HessMult - Hessian multiply function defined by user

% [ function | {[]} ]

%HessPattern - Sparsity pattern of the Hessian for

finite-differencing

% [ sparse matrix ]

%HessUpdate - Quasi-Newton updating scheme

% [ {bfgs} | dfp | gillmurray | steepdesc ]

%Jacobian - Jacobian for the objective function defined by

user

% [ on | {off}]

%JacobMult - Jacobian multiply function defined by user

% [ function | {[]} ]

%JacobPattern - Sparsity pattern of the Jacobian for

finite-differencing

% [ sparse matrix ]

%LargeScale - Use large-scale algorithm if possible [ {on} | off

]

%LevenbergMarquardt - Chooses Levenberg-Marquardt over

Gauss-Newton algorithm

% [ on | off]

%LineSearchType - Line search algorithm choice [ cubicpoly |

{quadcubic} ]

%MaxFunEvals - Maximum number of function evaluations

allowed

% [ positive integer ]

%MaxIter - Maximum number of iterations allowed [ positive

integer ]

%MaxPCGIter - Maximum number of PCG iterations allowed [positive

integer]

%MeritFunction - Use goal attainment/minimax merit

function

% [ {multiobj} | singleobj ]

%MinAbsMax - Number of F(x) to minimize the worst case absolute

values

% [ positive scalar integer | {0} ]

%PrecondBandWidth - Upper bandwidth of preconditioner for

PCG

% [ positive integer | Inf | {0} ]

%TolCon - Termination tolerance on the constraint violation [

positive scalar ]

%TolFun - Termination tolerance on the function value [ positive

scalar ]

%TolPCG - Termination tolerance on the PCG iteration

% [ positive scalar | {0.1} ]

%TolX - Termination tolerance on X [ positive scalar ]

%TypicalX - Typical X values [ vector ]

---------------------------------------------------------------------------------------------

注:

优化问题求解时常常需要对相对误差,使用算法等进行设置.Matlab提供了options向量来对优化函数进行参数设置,options向来由18个元素.目前已经被optimset和optimget代替,详情可查阅函数optimset和optimget

下面逐个说明各个参数的功能和取值.

Options(1)=0(默认值)

功能:控制显示,优化过程中控制输出信息,0表示不显示;1表示显示;-1表隐藏信息.

Options(2)=1e-4

功能:控制x的精度,自变量x的最低精度终止条件.当所有终止条件都满足的时候,优化终止.

Options(3)=1e-4

功能:控制 f 精度,目标函数f的最低精度终止条件.当所有终止条件都满足的时候,优化终止.

options(4)=1e-7

功能:约束g的最低精度终止判别条件.当所有的终止条件都满足的时候,优化终止.

options(5)=0

功能:选择主要优化算法.

options(6)=0

功能:SD算法控制.选择搜索方向算法.

options(7)=0

功能:搜索算法控制.选择线性搜索算法.

options(8)=N/A

功能:函数值,算法结束时极值点的函数值,attgoal和minimax而言,它包含一个到达因子.

options(9)=0

功能:梯度检查控制.当值为1时,在最初的几个迭代周期,梯度将与有限差分计算的结果比较,此时,梯度函数必须存在.

options(10)=N/A

功能:函数计算计数.

options(11)=N/A

功能:梯度计算计数.

options(12)=N/A

功能:限定计数,限定函数梯度计算或差分梯度计算的次数.

options(13)=0

功能:等式约束个数,等式约束必须放在g的前几个元素中.

options(14)=0*n

功能:最大迭代次数,该值缺省时被置为n的100倍,n为自变量x的个数,在fmins中,缺省为n的200倍,在fminu中,为500n.

options(15)=0

功能:目标数,尽可能接近goals的目标数,由函数attgoal使用.

options(16)=1e-8

功能:最小摄动控制.有限差分梯度计算中的最小变化.对函数的梯度计算而言,实际使用的摄动将自动调整以提高精度,它将在最小摄动和最大摄动之间变化.

options(17)=0,1

有限差分梯度计算中变量的最大变化.

options(18)=N/A

功能:步长控制,在第一步迭代被赋值为1或更小

matlab中options,[转载]Matlab优化函数中options选项的修改相关推荐

  1. matlab 模块mex,[转载]MATLAB的mex接口

    mex的适用情况:需要大量循环或者遍历,不想改写已有的C模块,这些情况下适用mex接口比较合适. mex的环境要求:已安装MATLAB,已安装合适的C编译器. mex使用: 首先在MATLAB中使用m ...

  2. matlab灰度归一化,[转载]matlab图像处理为什么要归一化和如何归一化?

    matlab图像处理为什么要归一化和如何归一化?一.为什么归一化 1. 基本上归一化思想是利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响.也就是转换成唯一的标准形式以抵抗仿射变换 ...

  3. matlab画图模糊,[转载]matlab中模糊工具箱的使用

    用 Matlab 中的 Fuzzy 工具箱做一个简单的模糊控制,流程如下: 1.创建一个 FIS (Fuzzy Inference System ) 对象, a = newfis(fisName,fi ...

  4. matlab中select,[转载]MATLAB阈值获取函数ddencmp、thselect、wbmpen和w

    crit(t) wdcbm的调用格式有以下两种: (1)[THR,NKEEP]=wdcbm(C,L,ALPHA); (2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M); 函数wdcbm ...

  5. matlab xcorr lags,[转载]matlab中xcorr的用法

    Matlab中用于计算自相关函数的指令是xcorr.比如矩阵A=[1 2 3]; xcorr(A)=3.0000 8.0000 14.0000 8.0000 3.0000 自相关函数是信号间隔的函数, ...

  6. matlab imagesc 坐标,[转载]matlab 中imagesc的用法

    imagesc(A) 将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色 imagesc(x,y,A) x,y决定坐标范围,x,y应是两个二维向量,即x=[x1 x2],y= ...

  7. matlab logical bug,[转载]Matlab中的logical

    Matlab中什么是logical logical作为逻辑变量,可以是一种数据类型,第一次见到是在workspace里100*1logical,可以用在取出最值. logical是布尔变量,可以是一个 ...

  8. MATLAB阶段性方程组,[转载]matlab 解方程组

    1.解方程 最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法: (1)x=i ...

  9. matlab水汽计算公式,[转载]matlab 解方程组

    1.解方程 最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法: (1)x=i ...

  10. matlab水壶图形,[转载]Matlab 图像处理相关函数命令大全

    Matlab 图像处理相关函数命令大全 一.通用函数: colorbar 显示彩色条 语法:colorbar colorbar('vert') colorbar('horiz') colorbar(h ...

最新文章

  1. 9月Python开源项目Top10
  2. 在应用程序中使用虚拟内存——Windows核心编程学习手札之十五
  3. C语言如何获取文件大小?fseek() + ftell()
  4. 推动Windows的限制:句柄
  5. 怎样写一个具有异步交互的React组件的单元测试
  6. php自动提交百度收录,wordpress站点如何自动提交百度收录
  7. 每日算法系列【LeetCode 1031】两个非重叠子数组的最大和
  8. FreeRTOS历史版本更新记录
  9. android 调用hal,Android HAL层的使用方法总结
  10. ps-ef命令linux,【Linux】- ps -ef |grep 命令
  11. Java学习软件安装详解
  12. # 初步认识 VR / AR
  13. angular五大服务顺序_双11五折特惠!49.9元抢贵安欢乐世界夜场活动票,五大惊魂大咖点、网红项目女巫塔罗牌占卜,游荡鬼巡游,鬼妆派对~...
  14. 二、(3)doc2vec
  15. 洛阳旅游网html,毕业设计——基于HTML5的洛阳旅游网站设计与实现
  16. 分享一些不起眼的赚钱项目
  17. 高端:「简历」都是怎么写的?
  18. java 获取分辨率_如何在java中获得屏幕分辨率?
  19. 触摸数学激情——与数学家张景中对话
  20. Moveit!入门——古月居机械臂开发笔记(一)

热门文章

  1. Python-从txt中获取所有带有书名号的内容,并去除重复内容
  2. linux 怎样停定时任务,linux停用cron定时执行任务的方法
  3. D-Feet的复杂类型使用攻略(DBUS)
  4. Taro微信小程序使用getUserProfile获取微信用户头像昵称等信息
  5. 机顶盒安装APK应用的方法
  6. 新语法之CORRESPONDING
  7. “先进”的飞书为何搞不定钉钉?
  8. ORCLE导出数据,加不加owner,ORACLE常用的导出语句
  9. sql查询实例1(学生表_课程表_成绩表_教师表)
  10. 深入研究webrtc平滑发送(paced sender)