Python实现梯度法(最速上升(下降)法)寻找函数极大(极小)值

  首先简介梯度法的原理。首先一个实值函数$R^{n} \rightarrow R$的梯度方向是函数值上升最快的方向。梯度的反方向显然是函数值下降的最快方向,这就是机器学习里梯度下降法的基本原理。但是运筹学中的梯度法略有不同,表现在步长的选择上。在确定了梯度方向(或反方向)是我们优化目标函数值的方向后,我们不能够直接获得最佳的步长。常规的做法是选定一个固定的步长,而运筹学中的做法是将问题转化为一个一维搜索问题,进而通过求解这个一维问题(关于步长的函数)的最大最小值获得最佳步长。

  一个好消息是若目标函数$f(x)$二次连续可微, 且海森矩阵 $∇^2 f(x)$ 负定,那么最优步长的近似值可以由如下的公式给出。$$r_k = -\frac{∇f(x^{(k)})^T∇f(x^{(k)})}{∇f(x^{(k)})^T∇^2f(x^{(k)})∇f(x^{(k)})}$$

  下面给出一例利用梯度法求函数极小值(如果是凸规划问题同时也是最小值)的Python实现:

  

原文地址:https://www.cnblogs.com/chester-cs/p/11751838.html

时间: 2025-01-05 00:11:54

Python实现梯度法(最速上升(下降)法)寻找函数极大(极小)值的相关文章

Python学习笔记__4.2章 返回函数

# 这是学习廖雪峰老师python教程的学习笔记 1.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. # 累加函数 def external(*args): def internal(): ax = 0 for n in args: ax = ax + n return ax return internal  # external的返回值是internal # 调用external() f = external(1, 3, 5, 7, 9)   #这里的 f是一

Python开发【第四篇】函数

函数的作用 函数可以让编程逻辑结构化以及模块化 无论是C.C++,Java还是Python,函数是必不可少的知识点,也是很重要的知识点,函数是完成一个功能的代码块,使用函数可以使逻辑结构变得更加清晰以及程序模块化设计 先来看看Python函数相关知识 1 def test(x): 2 """我是用来描述这个函数的""" 3 x += 1 4 return x 5 6 # def : 定义函数的关键字 7 # test: 函数名 8 # (): 里

Python 基础 - Day 2 Learning Note - Function 函数

前言: 编程的三种方式 面向对象:类 (class) 面向对象 : 过程 (def) 函数式编程: 函数 (def) 定义:函数 vs. 过程 在python中,函数是对程序逻辑进行结构化或过程化的一种编程方法. 函数式编程就是:先定义一个数学函数, 然后按照这个数学模型用编程语言来实现. 过程式的编程就是没有返回值的函数式编程. 见下列 def func1(): 'the function discption - define a function' #文档介绍,强烈推荐解释function的

Python:SQLMap源码精读—start函数

源代码 1 def start(): 2 """ 3 This function calls a function that performs checks on both URL 4 stability and all GET, POST, Cookie and User-Agent parameters to 5 check if they are dynamic and SQL injection affected 6 """ 7 if n

python基础知识4(字典和函数)

# 字典 - 又称为(# hash,映射,关联数组) - "字" ---> 先找首字母,查到这个字的解释所在的页数; ## 字典的定义: d = {} d = {"key1":"value1"} d = {"key1":"value1","key2":"value3"} d = { "172.25.254.1": { "user&q

初学 Python(十二)——高阶函数

初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 称为高阶函数 ''' #函数作参 def f(x): return x*x #map函数为内置函数,意思为将第二个参数的list作用到f函数中 #最后的结果为一个list print map(f,[1,2,3,4,5]) #reduce函数为内置函数,意思将第二参数的序列作用到add函数值 #将结

自动化运维Python系列(三)之基础函数和文件操作

函数作用 增强代码的重用性和可读性 在没有使用函数编程之前,我们可能一直遵循的都是面向过程编程,即根据业务逻辑从上到下实现各个功能,这样的做的坏处是代码可读性不强,大量冗余代码,而且执行效率不高:有了函数后,我们就可以将多次使用到的相同代码模块放在单独的函数定义中,在任何想要调用它的地方随时调用,这就叫做函数式编程. 面向对象编程其实就是对函数进行再分类和封装,让开发"更快更好更强..." 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 函数的定义主要有如下要点:

python学习笔记4:高阶函数,装饰器,生成器,迭代器

一.高级函数1.把一个函数名当作实参传给另一个函数2.返回值包含函数名>>> def bar():... print ("in the bar")... >>> def foo(func):... res=func()... return res... >>> foo(bar)in the bar 二.嵌套函数在函数中定义另一个函数 三.装饰器装饰器本质上是函数,作用是装饰其他函数,就是为其他函数添加附加功能.原则1:不能修改被装饰

python学习第三周(下 函数)

本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值  嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身份证列表 3. 字典 key-value对 特性: 无顺序 去重 查询速度快,比列表快多了 比list占用内存多 为什么会查询速度会快呢?