matlab优化很小的数,matlab优化函数fminunc

本文详细介绍了MATLAB的优化函数fminunc,用于求解无约束多变量函数的最小值。fminunc可以采用梯度信息以提高效率,支持多种优化算法,如trust-region和quasi-Newton。文中通过示例展示了如何设置初始点、优化选项,并提供了自定义梯度函数的使用方法。同时,讨论了如何利用问题结构进行优化,并解释了函数的输出参数,包括目标函数值、退出标志和优化过程信息。
摘要由CSDN通过智能技术生成

一起来学演化计算-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 } }$$

示例

最小化一个多项式

c9105b444bc8061449b16d093325e515.png

求函数梯度

902ea05e1a660f7fc3e0f8b4ab9fe7ab.png

使用问题结构

此和上一节的内容相同,但是使用了问题结构的模型,即为problem设置options,x0,objective,solver然后使用fminunc函数优化问题。

problem.options = options;

problem.x0 = [-1,2];

problem.objective = @rosenbrockwithgrad;

problem.solver = 'fminunc';

c4066874c2325438b47eff9eb73b31b0.png

获取最佳的目标函数值

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

ff1bdce8ce5cc297bf5ce4f9a1da0131.png

检查解决方案过程

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

215e7cdfc7391cfb080fa5a572de7b36.png

输入参数

Fun 需要被优化的函数

2173dc1d01e6bae2b154aac521051b3a.png

X0 初始点

bf6f10783dc266166205990c05bd1c48.png

选项

6c3556e8fb67dcfca0e7319c99f54f24.png

所有算法

寻优算法

如果函数能够提供梯度则选择"trust-region"选项,否则选择 拟牛顿法 -"quasi-newton"

9dffd73dbcc4d88b8128f800beb20a16.png

梯度检查

04a936d350f6e612bdd0b0d3ea02a545.png

显示

88cc7dc66a513985ca2297e47b4c0091.png

有限差分类型和步长

11be2e96655c7afc086a429557cd30f5.png

函数终止

bbab1400d010a810c60992c1d5e458fb.png

迭代调用其他函数

6c24419c2e29ed152e67d51cbdf9b212.png

画出结果

20b268d235620ba61cfe313ea67bc2d5.png

自定义梯度函数

5343bb3a44c8b7a290d7299bd1fa8dc9.png

TypicalX

39f8054eeb963b9082fd01450f91f0b5.png

trust-region算法

e16e948c04704fb35b85f627dc45252a.png

quasi-Newton

b66f7168c9b6e78bb638eca331fbc264.png

Problem

c6be864ae34fdb73908b35491d02aeac.png

输出参数

4eb35da9f84ef1455ed3ce33f51669ab.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值