【最优化方法】无约束优化问题(函数梯度、下降方向、最优性)

本文主要是介绍【最优化方法】无约束优化问题(函数梯度、下降方向、最优性),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 下降方向
  • 下降方向与梯度关系
  • 例题
    • 偏导数
    • 方向导数
    • 梯度(导数)
    • 下降方向
  • 最优性条件
    • 一阶必要条件
    • 二阶必要条件
    • 二阶充分条件
    • 无约束凸规划的最优性条件

我们把一元方程推广到 n n n 维无约束极小化问题,得到解无约束优化问题

min ⁡ x ∈ R n f ( x ) \min_{x\in\mathbf{R}^n}f(x) xRnminf(x)

下降方向

f ( x ) f(x) f(x) 为定义在空间 R n \mathbf{R}^n Rn 上的连续函数,点 x ˉ ∈ R n \bar{x}\in\mathbf{R}^n xˉRn,若对于方向 s ∈ R n s\in\mathbf{R}^n sRn 存在数 δ > 0 \delta>0 δ>0 使成立
f ( x ˉ + α s ) < f ( x ˉ ) , ∀ α ∈ ( 0 , δ ) , f(\bar{x}+\alpha s)<f(\bar{x}),\:\forall\:\alpha\in(0,\delta), f(xˉ+αs)<f(xˉ),α(0,δ),

则称 s 为 f ( x ) f(x) f(x) x ˉ \bar x xˉ 处的一个下降方向,在点 x ˉ \bar x xˉ 处的所有下降方向的全体记为 D ( x ˉ ) . \mathcal{D}(\bar{x}). D(xˉ).

下降方向与梯度关系

设函数 f ( x ) f(x) f(x) 在点 x ˉ \bar x xˉ 处连续可微,如存在非零向量 s ∈ R n s \in R^n sRn 使成立
∇ f ( x ˉ ) T s < 0 \nabla f(\bar x)^T s < 0 f(xˉ)Ts<0

则称向量 s s s f ( x ) f(x) f(x) x ˉ \bar x xˉ 处的一个下降方向

证明:对于充分小的 α > 0 \alpha > 0 α>0,将 f ( x ˉ + α s ) f(\bar x + \alpha s) f(xˉ+αs) 在点 x ˉ \bar x xˉ 处作 Taylor 展开,有
f ( x ˉ + α s ) = f ( x ˉ ) + α ∇ f ( x ˉ ) T s + o ( ∣ ∣ α s ∣ ∣ ) f(\bar x + \alpha s) = f(\bar x) + \alpha \nabla f(\bar x)^Ts + o(||\alpha s||) f(xˉ+αs)=f(xˉ)+αf(xˉ)Ts+o(∣∣αs∣∣)

α > 0 \alpha>0 α>0 以及 ∇ f ( x ˉ ) T s < 0 \nabla f(\bar{x})^{\mathrm{T}} s<0 f(xˉ)Ts<0 知存在 δ > 0 \delta>0 δ>0, 使对任意 α ∈ ( 0 , δ ) \alpha \in(0, \delta) α(0,δ)
α ∇ f ( x ˉ ) T s + o ( ∥ α s ∥ ) < 0. \alpha \nabla f(\bar{x})^{\mathrm{T}} s+o(\|\alpha s\|)<0 . αf(xˉ)Ts+o(αs)<0.

结合这两式有
f ( x ˉ + α s ) < f ( x ˉ ) , ∀ α ∈ ( 0 , δ ) , f(\bar{x}+\alpha s)<f(\bar{x}), \quad \forall \alpha \in(0, \delta), f(xˉ+αs)<f(xˉ),α(0,δ),

这就证明了 s s s f ( x ) f(x) f(x) 在点 x ˉ \bar{x} xˉ 处的下降方向.
D ( x ˉ ) = { s ∣ ∇ f ( x ˉ ) T s < 0 } \mathcal{D}(\bar{x})=\left\{s \mid \nabla f(\bar{x})^{\mathrm{T}} s<0\right\} D(xˉ)={sf(xˉ)Ts<0}

记号:
g ( x ) = ∇ f ( x ) G ( x ) = ∇ 2 f ( x ) g(x) = \nabla f(x) ~~~~~ G(x) = \nabla^2 f(x) g(x)=f(x)     G(x)=2f(x)

例题

偏导数

求函数偏导数
f ( x , y ) = { x y x 2 + y 2 ( x , y ) ≠ ( 0 , 0 ) 0 ( x , y ) = ( 0 , 0 ) f(x,y) = \begin{cases} \large{\frac{xy}{x^2+y^2}} & (x,y)≠(0,0) \\\\ 0 & (x,y)=(0,0) \end{cases} f(x,y)= x2+y2xy0(x,y)=(0,0)(x,y)=(0,0)

先求函数对 x x x 的偏导数 f x f_x fx
f x = y ( x 2 + y 2 ) − 2 x ⋅ x y ( x 2 + y 2 ) 2 = y ( y 2 − x 2 ) ( x 2 + y 2 ) 2 x ≠ 0 f x = f ( x , 0 ) − f ( 0 , 0 ) x = 0 x → 0 , y = 0 f_x = \frac{y(x^2+y^2)-2x·xy}{(x^2+y^2)^2} = \frac{y(y^2-x^2)}{(x^2+y^2)^2} \quad \quad x ≠ 0 \\ f_x = \frac{f(x,0)-f(0,0)}{x} = 0 \quad \quad \quad \quad x \rightarrow 0,y = 0 \\ fx=(x2+y2)2y(x2+y2)2xxy=(x2+y2)2y(y2x2)x=0fx=xf(x,0)f(0,0)=0x0y=0

同理求 f y f_y fy
f y = x ( x 2 + y 2 ) − 2 y ⋅ x y ( x 2 + y 2 ) 2 = x ( x 2 − y 2 ) ( x 2 + y 2 ) 2 y ≠ 0 f y = f ( 0 , y ) − f ( 0 , 0 ) y = 0 y → 0 , x = 0 f_y = \frac{x(x^2+y^2)-2y·xy}{(x^2+y^2)^2} = \frac{x(x^2-y^2)}{(x^2+y^2)^2} \quad \quad y ≠ 0 \\ f_y = \frac{f(0,y)-f(0,0)}{y} = 0 \quad \quad \quad \quad y \rightarrow 0,x = 0 \\ fy=(x2+y2)2x(x2+y2)2yxy=(x2+y2)2x(x2y2)y=0fy=yf(0,y)f(0,0)=0y0x=0

故:
f x = { y ( y 2 − x 2 ) ( x 2 + y 2 ) 2 x ≠ 0 0 x = 0 f y = { x ( x 2 − y 2 ) ( x 2 + y 2 ) 2 y ≠ 0 0 y = 0 f_x = \begin{cases} \large \frac{y(y^2-x^2)}{(x^2+y^2)^2} & x ≠ 0 \\ 0 & x = 0 \\ \end{cases} \quad \quad f_y = \begin{cases} \large \frac{x(x^2-y^2)}{(x^2+y^2)^2} & y ≠ 0 \\ 0 & y = 0 \\ \end{cases} fx= (x2+y2)2y(y2x2)0x=0x=0fy= (x2+y2)2x(x2y2)0y=0y=0

方向导数

求函数 f ( x , y ) = x 2 − x y + y 2 f(x,y)=x^2-xy+y^2 f(x,y)=x2xy+y2 在点 ( 1 , 1 ) (1, 1) (1,1) 沿于 x x x 轴方向夹角为 α \alpha α 的方向射线 l ⃗ \vec{l} l 的方向导数,并问在怎样的方向上此方向导数有:(1)最大值;(2)最小值;(3)等于零?

解:
∂ f ∂ l = f x ( 1 , 1 ) ⋅ c o s α + f y ( 1 , 1 ) ⋅ s i n α = ( 2 x − y ) ∣ ( 1 , 1 ) ⋅ c o s α + ( 2 y − x ) ∣ ( 1 , 1 ) ⋅ s i n α = c o s α + s i n α = 2 s i n ( α + π 4 ) \begin{aligned} \frac{\partial f}{\partial l} & = f_x(1,1)·cos\alpha +f_y(1,1)·sin\alpha \\ & = (2x-y)|_{(1,1)}·cos\alpha +(2y-x)|_{(1,1)}·sin\alpha \\ & = cos\alpha + sin\alpha = \sqrt2sin(\alpha + \frac{\pi}{4}) \end{aligned} lf=fx(1,1)cosα+fy(1,1)sinα=(2xy)(1,1)cosα+(2yx)(1,1)sinα=cosα+sinα=2 sin(α+4π)

故:

(1)当 α = π 4 \alpha = \frac{\pi}{4} α=4π 时,方向导数达到最大值 2 \sqrt 2 2

(2)当 α = 5 π 4 \alpha = \frac{5\pi}{4} α=45π 时,方向导数达到最小值 − 2 -\sqrt 2 2

(3)当 α = 3 π 4 \alpha = \frac{3\pi}{4} α=43π α = 7 π 4 \alpha = \frac{7\pi}{4} α=47π 时,方向导数等于 0 0 0

梯度(导数)

求函数 u = x 2 + 2 y 2 + 3 z 2 + 3 x − 2 y u = x^2 + 2y^2 + 3z^2 + 3x - 2y u=x2+2y2+3z2+3x2y 在点 ( 1 , 1 , 2 ) (1,1,2) (1,1,2) 处的梯度,并在哪些点处梯度为零?

解:
f x = 2 x + 3 , f y = 4 y − 2 , f z = 6 z f_x = 2x+3,f_y=4y-2,f_z=6z fx=2x+3fy=4y2fz=6z ∇ u ( x , y , z ) = ∂ u ∂ x i ⃗ + ∂ u ∂ y j ⃗ + ∂ u ∂ z k ⃗ = ( 2 x + 3 ) i ⃗ + ( 4 y − 2 ) j ⃗ + ( 6 z ) k ⃗ \nabla u(x,y,z) = \frac{\partial u}{\partial x} \vec{i} + \frac{\partial u}{\partial y} \vec{j} + \frac{\partial u}{\partial z} \vec{k} = (2x+3)\vec{i} + (4y-2)\vec{j} + (6z)\vec{k} u(x,y,z)=xui +yuj +zuk =(2x+3)i +(4y2)j +(6z)k ∇ u ( 1 , 1 , 2 ) = ( 2 × 1 + 3 ) i ⃗ + ( 4 × 1 − 2 ) j ⃗ + ( 6 × 2 ) k ⃗ = 5 i ⃗ + 2 j ⃗ + 12 k ⃗ \nabla u(1,1,2) = (2×1+3)\vec{i} + (4×1-2)\vec{j} + (6×2)\vec{k} = 5\vec{i} + 2\vec{j} + 12\vec{k} u(1,1,2)=(2×1+3)i +(4×12)j +(6×2)k =5i +2j +12k

故函数在点 ( 1 , 1 , 2 ) (1,1,2) (1,1,2) 处的梯度为 5 i ⃗ + 2 j ⃗ + 12 k ⃗ 5\vec{i} + 2\vec{j} + 12\vec{k} 5i +2j +12k .

f x = f y = f z = 0 f_x=f_y=f_z=0 fx=fy=fz=0, 得 x = − 3 2 , y = 1 2 , z = 0 x=-\frac{3}{2},y=\frac{1}{2},z=0 x=23y=21z=0,因此函数在点 P 0 ( − 3 2 , 1 2 , 0 ) P_0(-\frac{3}{2},\frac{1}{2},0) P0(23,21,0) 处梯度为零.

下降方向

确定线性函数 f ( x ) = 2 x 1 − x 2 + 3 x 3 f(x) = 2x_1 − x_2 + 3x_3 f(x)=2x1x2+3x3 的所有下降方向。请问这样的下降方向是否同所在点的位置有关?

函数 f ( x ) f(x) f(x) 的梯度为:

∇ f ( x ) = [ ∂ f ∂ x 1 ∂ f ∂ x 2 ∂ f ∂ x 3 ] T = [ 2 − 1 3 ] T \nabla f(x) = {\large \begin{bmatrix} \frac{\partial f}{\partial x_1} & \frac{\partial f}{\partial x_2} & \frac{\partial f}{\partial x_3} \end{bmatrix}}^T= \begin{bmatrix} 2 & -1 &3 \end{bmatrix} ^T f(x)=[x1fx2fx3f]T=[213]T
一个下降方向 s s s,满足 ∇ f ( x ˉ ) T s < 0 \nabla f(\bar x)^T s < 0 f(xˉ)Ts<0,所以我们找到向量 s s s 使得
[ 2 − 1 3 ] [ s 1 s 2 s 3 ] < 0 \begin{bmatrix} 2 & -1 & 3 \end{bmatrix} \begin{bmatrix} s_1 \\ s_2 \\ s_3 \end{bmatrix} < 0 [213] s1s2s3 <0
满足的条件是 s = [ s 1 s 2 s 3 ] s = \begin{bmatrix} s_1 \\ s_2 \\ s_3 \end{bmatrix} s= s1s2s3 满足 2 s 1 − s 2 + 3 s 3 < 0 2s_1 - s_2 + 3s_3 < 0 2s1s2+3s3<0

故满足条件的所有向量 s s s 为线性函数 f ( x ) = 2 x 1 − x 2 + 3 x 3 f(x) = 2x_1 − x_2 + 3x_3 f(x)=2x1x2+3x3 的所有下降方向。

并且,下降方向同所在点的位置无关。

最优性条件

下述所有条件使用 Taylor 展开即可证明

一阶必要条件

f : D ⊂ R n → R 1 f:D\subset\mathbf{R}^n\to\mathbf{R}^1 f:DRnR1 在开集 D D D 上连续可微, 若 x ∗ ∈ D x^*\in D xD f f f 的局部极小点,则
g ( x ∗ ) = 0 g(x^{*})=0 g(x)=0
称满足一阶必要条件 g ( x ∗ ) = 0 g(x^*) = 0 g(x)=0 的点为稳定点(也称为驻点);

稳定点分为三种类型:极大值点、极小值点、鞍点。

二阶必要条件

f : D ⊂ R n → R 1 f:D\subset\mathbf{R}^n\to\mathbf{R}^1 f:DRnR1 在开集 D D D 上二阶连续可徽,若 x ∗ ∈ D x^*\in D xD f f f 的局部极小点,则 g ( x ∗ ) = 0 g(x^{*})=0 g(x)=0 G ( x ∗ ) ⩾ 0 G(x^{*})\geqslant0 G(x)0 为半正定矩阵。

二阶充分条件

f : D ⊂ R n → R 1 f:D\subset\mathbf{R}^n\to\mathbf{R}^1 f:DRnR1 在开集 D D D 上二阶连续可微,则 x ∗ ∈ D x^*\in D xD f f f 的一个严格局部极小点的充分条件是 g ( x ∗ ) = 0 g(x^*)=0 g(x)=0 G ( x ∗ ) G(x^*) G(x) 是正定矩阵

无约束凸规划的最优性条件

​ 设 f : D ⊂ R n → R 1 f:D\subset\mathbf{R}^n\to\mathbf{R}^1 f:DRnR1 在开集 D D D 上连续可微, 则 x ∗ ∈ D x^*\in D xD f f f 的全局极小点 ⇔ g ( x ∗ ) = 0 \Leftrightarrow g(x^{*})=0 g(x)=0

这篇关于【最优化方法】无约束优化问题(函数梯度、下降方向、最优性)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560578

相关文章

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

在Golang中实现定时任务的几种高效方法

《在Golang中实现定时任务的几种高效方法》本文将详细介绍在Golang中实现定时任务的几种高效方法,包括time包中的Ticker和Timer、第三方库cron的使用,以及基于channel和go... 目录背景介绍目的和范围预期读者文档结构概述术语表核心概念与联系故事引入核心概念解释核心概念之间的关系

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN