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

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

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

输出参数

matlab优化函数fminunc的更多相关文章

  1. Matlab基础

    基本运算: 一,矩阵的生成 clc ; clear all; close all; 1.直接输入 A = [ 1 ,2 ,3,4;2,3,4,5;3,4,5,6] A = 1 2 3 4 2 3 4 ...

  2. 机器学习作业(二)逻辑回归——Python(numpy)实现

    题目太长啦!文档下载[传送门] 第1题 简述:实现逻辑回归. 此处使用了minimize函数代替Matlab的fminunc函数,参考了该博客[传送门]. import numpy as np imp ...

  3. 计算智能(CI)之粒子群优化算法(PSO)(一)

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 计算智能(Computational Intelligence , ...

  4. matlab(4) Logistic regression:求θ的值使用fminunc / 画decision boundary(直线)plotDecisionBoundary

    画decision boundary(直线) %% ============= Part 3: Optimizing using fminunc =============% In this exer ...

  5. MATLAB命令大全

    一.常用对象操作:除了一般windows窗口的常用功能键外.1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看.2.who 可以查看当前工作空间变量名, whos ...

  6. 在数学建模中学MATLAB

    为期三周的数学建模国赛培训昨天正式结束了,还是有一定的收获的,尤其是在MATLAB的使用上. 1. 一些MATLAB的基础性东西: 元胞数组的使用:http://blog.csdn.net/z1137 ...

  7. Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression

    原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性 ...

  8. [转] MATLAB快捷键

    原文地址:MATLAB快捷键大全 (转载)作者:掷地有声 一.索引混排版 备注:删除了如F1(帮助)等类型的常见快捷命令 SHIFT+DELETE永久删除 DELETE删除 ALT+ENTER属性 A ...

  9. MATLAB中如何使用遗传算法

    matlab有遗传算法工具箱. 核心函数:   (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成 ...

随机推荐

  1. python是什么编程语言。

    python是一门动态解释性的强类型定义语言.

  2. C# 3.0 扩展方法&接口

    namespace ExtensionInterfaceMethod { class Program { static void Main(string[] args) { //使用接口变量来调用扩展 ...

  3. 转载 C# 开源框架(整理)

    C# 开源框架(整理)http://www.cnblogs.com/gaoyuchuanIT/articles/5612268.html Json.NET http://json.codeplex.c ...

  4. 获取上一个页面的data

    let pages = getCurrentPages();// 获取页面栈 let current = pages[pages.length - 1]; // 当前页面 let url = curr ...

  5. shell命令的原理

    https://blog.csdn.net/m0_37925202/article/details/80258974 https://blog.csdn.net/a15929748502/articl ...

  6. 自动化部署--Jenkins

    自动化部署--Jenkins--简介安装(一) https://www.jianshu.com/p/b9ce206139f1 自动化部署--Jenkins--Maven构建(二)  https://w ...

  7. Java 输入流和字符串互相转换

    import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.InputStream; impo ...

  8. mac使用poetry

    安装 为了防止依赖冲突不推荐使用pip的方式直接安装,当然你也可以这样做 curl -sSL https://raw.githubusercontent.com/sdispater/poetry/ma ...

  9. mac环境使用python处理protobuf

    安装 brew install protobuf 然后再安装protobuf需要的依赖 brew install autoconf automake libtool 验证是否安装成功 protoc – ...

  10. 深度学习面试题21:批量归一化(Batch Normalization,BN)

    目录 BN的由来 BN的作用 BN的操作阶段 BN的操作流程 BN可以防止梯度消失吗 为什么归一化后还要放缩和平移 BN在GoogLeNet中的应用 参考资料 BN的由来 BN是由Google于201 ...