最初对于牛顿法,我本人是一脸懵的。其基本原理来源于高中知识。在如下图所示的曲线,我们需要求的是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. python实现牛顿法_牛顿法求极值及其Python实现

    原博文 2018-01-24 21:58 − 最初对于牛顿法,我本人是一脸懵的.其基本原理来源于高中知识.在如下图所示的曲线,我们需要求的是f(x)的极值: 对于懵的原因,是忘记了高中所学的点斜式(P ...

  2. 零基础学python 视频_零基础入门学习PYTHON(第2版)(微课视频版)

    小甲鱼畅销图书重磅升级,针对Python 3.7,通过生动的实例,让读者在实践中理解概念,在轻松.愉快中学会Python! 本书提倡理解为主,应用为王.因此,只要有可能,小甲鱼(注:作者)都会通过生动 ...

  3. 外星人颜色python练习_在知乎上学Python爬虫

    有很多人正在入门Python爬虫,学习Python爬虫.在这个过程中,会遇到很多难题,许多小伙伴都会去寻找答案,但是因为答案的纷繁复杂和种类多样,往往要花上好些时间. 而码不理经常会在知乎上寻找学习问 ...

  4. ruby和python比较_为什么说Ruby比Python容易阅读

    这是一篇充满偏见的语言战争文章,是一场无意义的锤子和锤子的比拼.语言的复杂性可以通过选择语言回避,而问题本身的复杂性是选择哪个语言都无法回避的. 不屑语言战争的人可以轻松无视此文. 1.字符串格式化 ...

  5. python自学免费教程-python免费入门教程/求完整的Python入门教程

    python不错的入门学习教程或者学习路线?适合新手的 可以去菜鸟教程去学,里面有很多基础入门的教程. 不过你想深入学习的话,学马哥python, 网上有一些免费的教程,课程很系统,讲的通俗易懂 求完 ...

  6. 六星教育python怎么样_六星教育:Python怎么学?自学Python经验分享

    近些年,随着人工智能.大数据.自动化运维等行业的兴起,Python在编程方向上得天独厚的优势也凸显出来.随着Python工程师需求的日益增多,Python薪资也随之水涨船高.学习Python的同学越来 ...

  7. python 中煤_程序员如何用Python科学炒股

    菜鸟学Python的第155篇原创文章 阅读本文大概需要3分钟 菜鸟独白 我是一个程序员,也是一个老股民,差不多有5年的股龄,经历过牛市也经历过熊市.起起伏伏,都没有怎么赚钱,至到去年我开始用Pyth ...

  8. 千锋python笔记_《2020千锋Python入门视频全套全开源》多实用

    确实,对于在学开发或者已经从事开发工作的小哥哥小姐姐来说,恋爱这个事还挺让人揪心的! 有对象的时候又怕嘴笨不会哄对象,总不能跟对象说你看我用代码给你画个心吧!没对象的用爬虫技术爬来各种小哥哥小姐姐的头 ...

  9. windows10安装python环境_在windows10下安装python(配置环境变量),Windows10

    建议使用:anaconda(环境管理和包管理)+Pycharm (强大的IDE开发工具) python环境变量设置: window系统高级设置-> 系统环境变量里 变量名: PYTHONPATH ...

  10. 怎么查看自己安装的python版本_教你如何检查 Python 版本

    本教程介绍如何使用 命令行检查操作系统上安装的 Python 版本.这在安装用 Python 编写的需要特定版本 Python 的应用程序时非常有用. Python 是世界上最流行的编程语言之一.它用 ...

最新文章

  1. TS2003基于触摸屏的应用
  2. Zabbix 监控TCP的SYN,establised
  3. PHP日期、时间戳相关的小程序
  4. AI技术的“践行者” — 云测试成为企业降本增效利器
  5. 深度系统安装移动硬盘启动_深度系统如何安装_电脑知识
  6. I/O的一些简单操作
  7. Android中Socket大文件断点上传
  8. oracle隐含参数 开库,Oracle数据库隐含参数介绍
  9. 固高运动控制卡IO口输入输出
  10. Artistic Style Dev CPP 运算符 前后空格
  11. ICML 2021奖项公布!谷歌大脑摘得桂冠,田渊栋、陆昱成获荣誉提名!
  12. 关于EnableViewState属性
  13. 物联网(IOT)之常见物联网通信技术概览-有线篇
  14. 部署ecshop网站
  15. KS0108控制的12864液晶屏的反白显示办法
  16. 小话设计模式(十三)职责链模式
  17. 酷狗音乐、QQ音乐、网易云音乐API
  18. dell笔记本屏幕进水有水印
  19. java swing 简单计算器_java用swing写了一个简单的计算器
  20. 【MATLAB教程案例16】基于GWO灰狼优化算法的函数极值计算matlab仿真及其他应用

热门文章

  1. 自带的jvm监控不准_如何实时监控 Flink 集群和作业?
  2. ant部署web工程模板
  3. 天津大学计算机专硕_「20考研」计算机考研专业课变动汇总
  4. Oracle listener
  5. node制作http服务器,NodeJS 搭建 HTTP 服务器
  6. nohup.out文件过大的解决办法
  7. Git如何忽略已经上传的文件或文件夹?
  8. MySQL日志设置双1_mysql日志配置文件示例
  9. 【Sofa】Sofa比赛成绩记录
  10. Java集合(四) LinkedList详解