最初对于牛顿法,我本人是一脸懵的。其基本原理来源于高中知识。在如下图所示的曲线,我们需要求的是f(x)的极值:

对于懵的原因,是忘记了高中所学的点斜式(Point Slope Form),直接贴一张高中数学讲义:

因为我们一路沿着x轴去寻找解,所以迭代求f(x)=0的解得通用式为:

与梯度下降相比,牛顿法也同样是沿着曲线的斜率去寻找极值,但是不存在需要自定义learning rate的问题,因为alpha是由斜率来决定的。

牛顿法的python实现:

def newtons(f,df,x0,e):

xn = float(x0)

e_tmp = e+1

loop = 1

while e_tmp>e:

print '########loop'+str(loop)

k = df(xn)

xm = f(xn)

print 'xn='+str(xn)+',k='+str(k)+',y='+str(xm)

q = xm/k

xn = xn-q

e_tmp = abs(0-f(xn))

print 'new xn='+str(xn)+',e='+str(e_tmp)+',q='+str(q)

loop=loop+1

return xn

我们调用一下:

from Test1.newtonMethod import newtons

def f(x):

return x**2+2*x

def df(x):

return 2*x+2

x = newtons(f,df,3,0.01)

print 'the point you find is '+str(x)

运行结果如下:

########loop1

xn=3.0,k=8.0,y=15.0

new xn=1.125,e=3.515625,q=1.875

########loop2

xn=1.125,k=4.25,y=3.515625

new xn=0.297794117647,e=0.684269571799,q=0.827205882353

########loop3

xn=0.297794117647,k=2.59558823529,y=0.684269571799

new xn=0.0341661806366,e=0.0694996891724,q=0.26362793701

########loop4

xn=0.0341661806366,k=2.06833236127,y=0.0694996891724

new xn=0.000564381199631,e=0.0011290809254,q=0.0336017994369

the point you find is 0.000564381199631

python牛顿法寻找极值_牛顿法求极值及其Python实现相关推荐

  1. matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt

    matlab函数求极值matlab函数求极值 * * 函数的极值 1.一元函数的极值 函数命令:fminbnd 调用格式:[x,feval,exitflag,output]=fminbnd(fun,x ...

  2. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  3. python数据科学入门_干货!小白入门Python数据科学全教程

    前言本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据工 ...

  4. python打造excel神器_超简单:用Python让Excel飞起来

    前言 如何获取学习资源 章Python快速上手 1.1为什么要学习用Python控制Excel 1.2Python编程环境的搭建 1.2.1安装Python官方的编程环境IDLE 1.2.2安装与配置 ...

  5. python函数模块化教程_【软件测试教程】Python模块化以及内置模块的使用

    一:什么是模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. 二:模块类型 1:自定义模块 由编程人员自己写的模块.自定义模块时要 ...

  6. python 功能化模块_【软件测试教程】Python模块化以及内置模块的使用

    一:什么是模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能. 二:模块类型 1:自定义模块 由编程人员自己写的模块.自定义模块时要 ...

  7. 阿里云python自测答案_阿里云技能测试python初级中级高级

    简介 偶尔发现,阿里云-开发者社区,里竟然有技能测试平台 覆盖知识面也较多 初级(65) 涉及知识点:Python语言的基本特性.编程环境.语法基础.数据结构,了解Python的网络编程与Web开发, ...

  8. anaconda下使用python怎样实现图像增强_如何用anaconda进行python开发

    展开全部 序 Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,32313133353236313431303231363533e58685e5aeb9313333 ...

  9. python代码编写工具_编写更好的Python代码的终极指南

    python代码编写工具 Despite its 尽管它 downsides, Python remains the king of today's programming world. Its ve ...

  10. python是一门面向_如何系统地自学一门Python 语言

    零基础情况下,学一门语言充实下自己,Python,简洁.优美.容易使用,是一个很好的选择.那么如何系统地自学Python呢? 有的人非常想学好Python,一方面被琐事纠缠,一直没能动手,另一方面,担 ...

最新文章

  1. React是如何在后台运行的
  2. 分布式系统的面试题11
  3. Java经典面试题详解:Java字符串转成list
  4. cannot和can not的区别 666666
  5. PHP生成静态HTML的源代码及用法
  6. [Yii Framework] 数据库查询
  7. TCP/IP 协议簇的逐层封装
  8. python作品阐述_Python网络编程基础的作品鉴赏-
  9. 《TensorFlow技术解析与实战》——第3章 可视化TensorFlow
  10. 【数据分析学习】Pandas学习记录
  11. Python之np.where的使用
  12. html利用cookie登陆,前端登陆注册实现——利用cookie模仿后台数据库存取数据
  13. C语言科学计数法常量,科学计数法c语言
  14. 编译时Collected errors
  15. IDEA中MyBatis插件的安装及使用
  16. Google Play上架总结(三)Google Play 上架流程
  17. Could not import the lzma module
  18. echarts结合amap (echarts-extension-amap)
  19. win7安装android驱动失败怎么办,Win7蓝牙驱动安装失败的原因分析与解决方法
  20. 解除封闭、寒假延长!多校发通知!

热门文章

  1. 当驾校学员遇上微信小程序
  2. Qt第一章:pyside6安装与配置
  3. 零信任在智慧城市典型场景中的融合应用
  4. 数据智能、孪生城市——展望未来智慧城市产业发展
  5. 在移动硬盘(SDD)上装ubuntu18.04
  6. matlab遗传算法多配送中心路径优化(带时间窗)【matlab优化算法】
  7. 运放为什么可以虚短虚断
  8. 电商支付-使用Restful api接口集成Paypal支付方式(一)
  9. Listen1:让你畅听全网音乐,支持多平台
  10. 【Unity 学习笔记】01 素材的导入和常见功能