zoukankan      html  css  js  c++  java
  • matlab优化函数fminunc

    一起来学演化计算-matlab优化函数fminunc

    觉得有用的话,欢迎一起讨论相互学习~

    我的微博我的github我的B站

    fminunc

    • 求无约束多变量函数的最小值
    • 非线性编程求解器
    • 找到指定问题的最小值,(min_{x}f(x)) ,其中f(x)是一个返回一个标量的函数,x是一个向量或者矩阵。

    语法

    • x = fminunc(fun,x0)
    • x = fminunc(fun,x0,options)
    • x = fminunc(problem)
    • [x,fval] = fminunc( ___ )
    • [x,fval,exitflag,output] = fminunc( __ )
    • [x,fval,exitflag,output,grad,hessian] = fminunc( ___ )

    表示和描述

    • x = fminunc(fun,x0)从x0点开始,尝试找到fun中描述的函数的一个局部最小x。点x0可以是标量、向量或矩阵。

    • Note fminunc适用于无约束的非线性问题。如果您的问题有约束,通常使用fmincon。参见优化决策表。

    • x = fminunc(fun,x0,options)通过选项中指定的优化选项最小化乐趣。使用 optimoptions 设置这些选项。

    • x = fminunc(problem)找到问题的最小值,其中问题是 Input Arguments 中描述的结构。

    • [x,fval] = fminunc( __ ),对于任何语法,返回目标函数在解x处的值

    • [x,fval,exitflag,output] = fminunc()另外返回一个描述fminunc退出条件的exitflag值,以及一个包含优化过程信息的结构输出

    • [x,fval,exitflag,output,grad,hessian] = fminunc( __ )另外返回:

      • 梯度-解x处的梯度。
      • Hessian- 解决方案x的x1和x2的偏导。
      • [Hessian=H _ { i j } = frac { partial ^ { 2 } f } { partial x _ { i } partial x _ { j } } ]

    示例

    最小化一个多项式

    求函数梯度

    使用问题结构

    • 此和上一节的内容相同,但是使用了问题结构的模型,即为problem设置options,x0,objective,solver然后使用fminunc函数优化问题。
    problem.options = options;
    problem.x0 = [-1,2];
    problem.objective = @rosenbrockwithgrad;
    problem.solver = 'fminunc';
    

    获取最佳的目标函数值

    • 没看出和第一个例子有什么区别,但是我感觉第一个函数是能够计算得到梯度的,而这个函数则不能够直接计算出梯度信息

    检查解决方案过程

    • 可以输出优化过程和各种参数

    输入参数

    Fun 需要被优化的函数

    X0 初始点

    选项

    所有算法

    • 寻优算法
    • 如果函数能够提供梯度则选择"trust-region"选项,否则选择 拟牛顿法 -"quasi-newton"
    • 梯度检查
    • 显示
    • 有限差分类型和步长
    • 函数终止
    • 迭代调用其他函数
    • 画出结果
    • 自定义梯度函数
    • TypicalX

    trust-region算法

    quasi-Newton

    Problem

    输出参数

  • 相关阅读:
    php根据时间显示刚刚,几分钟前,几小时前的实现代码
    PHP中获取当前页面的完整URL
    PhpExcel中文帮助手册|PhpExcel使用方法
    洛谷P1781 宇宙总统【排序+字符串】
    洛谷P1579 哥德巴赫猜想(升级版)【水题+素数】
    洛谷P1478 陶陶摘苹果(升级版)【水题】
    洛谷P1002 过河卒【dp】
    51Nod
    排序算法总结(C++)
    UVA1339
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/11244129.html
Copyright © 2011-2022 走看看