MATLAB/Octave中fminunc基础解释

功能

找到最小的无约束多变量函数,通俗理解就是求一个函数最小值,和取最小值时变量的取值。

使用形式

常见形式:[optTheta, functionVal, exitFlag, output]=fminunc(@func,fun,x0,options)
参数解释:

  • @func:待求解的函数句柄,不懂句柄的可以百度,简单理解就是引用该函数。
  • x0:该函数内部改用迭代的方式逼近最小值,该值是初始给定值,简答理解就是函数内部从这个值开始迭代。
  • options:optimset详细解释 ,详情可见链接内容,该参数可以不设置。

返回值解释:

  • optTheta:取最小值时函数func变量的取值,可以是数,也可以是数组。
  • functionVal:函数func的局部最有解
  • exitFlag:返回标志,返回值为1时说明函数收敛,返回值为0表示迭代次数超过设定值,返回值为负数表示函数不收敛。
  • output:返回一些函数内部数据,例如迭代次数等

示例

function f=fminuc_test(x)
  f=x^2-4*x+9;
end;

[optTheta, functionVal, exitFlag, output]=fminunc(@fminuc_test,-10)

返回结果

optTheta =  2.0000
functionVal =  5
exitFlag =  1
output =
  scalar structure containing the fields:
    iterations =  7
    successful =  6
    funcCount =  20

示例解释:

目标:求解函数f=x^2-4*x+9的最小值。

设置很简单,就设置了从-10开始迭代,通常从0开始。

返回值:optTheta = 2.0000表明当x=2时函数取最小值functionVal = 5。exitFlag = 1表明行数收敛。iterations = 7表明迭代了7次,其他返回只根据需求查查就好了。

发布了14 篇原创文章 · 获赞 0 · 访问量 2397

猜你喜欢

转载自blog.csdn.net/wtzhu_13/article/details/91364751