【Python篇】拟牛顿法面面俱到(一)--牛顿插值法
感谢关注天善智能,走好数据之路↑↑↑
欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!
对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tsaiedu,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。
这次带来的是拟牛顿法系列,本系列的目标是完全理解拟牛顿法,包括其中涉及到的知识,比如泰勒公式、海森矩阵等,泰勒公式大家都很熟悉,不过它是怎么推导出来的呢?想必大家都不是很了解吧,这要从牛顿插值法说起,本节就先来讲解一下牛顿插值法。
本文大都参考自知乎:https://www.zhihu.com/question/22320408
1、什么是插值
什么叫插值?插值是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方法。
相信大家对插值都不陌生,我们在数据挖掘进行缺失值处理时,有时是直接将数据丢弃,有时是用插值法填充一个数进去。
想想我们是怎么做的?有时候直接拿上一个数进行填充,有时候直接拿最后一个数进行填充,还有的时候,我们用前后两个数的平均值进行填充。使用最后一种方法时,我们其实就用到了一种简单的差值方法--线性插值法。
除线性插值法外,还有许多常用的插值方法,我们将在下一节介绍。
2、常见的插值方法
2.1 线性插值法
这是最简单的插值方法,示意图如下:
这种近似太粗糙,我们只需要知道前后两个点的数据就可以进行插值,但实际的过程往往没有这么简单。
2.2 多项式插值
牛顿插值法也算是多项式插值中的一种,但我们将牛顿插值法单独拿出一节进行讲解。这里介绍另一种多项式插值方法,过程如下:
这样求解出的三次多项式(如果有唯一解的话),一定同时经过已知的四个点。
不过这样进行求解有两个弊端:
计算量大,当数据量成千上万时,我们需要求解的参数也是成千上万的,效率十分低下。
新增加一个观测数据,我们需要重新进行计算
为了解决上面的两个问题,我们有了牛顿插值法。
3、牛顿插值法
牛顿插值法全名是格雷戈里-牛顿公式,格雷戈里和牛顿分别给出了这个插值公式,主要牛顿太耀眼了,所以格雷戈里都被大家遗忘了。
牛顿插值法的特点在于:每增加一个点,不会导致之前的重新计算,只需要算和新增点有关的就可以了。
下面就进入数学阶段了,前方高能预警,非战斗人员请退避,直接跳过推导阶段。
3.1 牛顿插值法的推导
我们先把问题数学化:
下面两张图讲解了牛顿插值法的大体过程:
观察b1,b2的特点,不断重复上面的过程,我们就可以得到牛顿插值法的计算公式。
然后是详细的推导过程(图片来自上面提到的知乎):
上面有一句话说的没错,我也觉得b2的推导错了,我们按照正常的逻辑来一遍:
哈哈,是不是有很多小伙伴跟我得到了一样的结果,那上面的结果是怎么来的呢?可以看到,我们是先确定的x0,然后推导了满足x1的插值公式,那么加入这个思路反过来呢?我们先确定的是x1,然后推导得到满足x0的公式,那么结果如下:
数学真是一个奇妙的玩意,需要静下心来细细品味呀。
我们提炼一下刚才的过程:
当新增一个点时,我们只需计算新的均差即可:
4、Python代码实现
下面的例子是对牛顿插值法的一个简单实现:
具体的代码详情我们就不介绍了,最后来看看实验效果吧:
5、后记
牛顿插值法可以用来做什么呢?这不是废话么,当然是插值啦,哈哈。其实,我们不知道的是,它还可以用来推导泰勒公式呢!欲知后事如何,且听下回分解!
文章来源:天善智能社区
作者:石晓文https://ask.hellobi.com/publish/article/12044
【Python篇】拟牛顿法面面俱到(一)--牛顿插值法相关推荐
- python计算差商_Python实现牛顿插值法(差商表)
def func(x,y,X,infor=True): list2=[y[0]] # 差商表的对角线的第一个元素始终是y0 count=1 while(True): if len(y)>1: l ...
- 数据预处理包括哪些内容python_常见的数据预处理--python篇
做过数据分析的孩子一般都知道:数据预处理很重要,大概会占用整个分析过程50%到80%的时间,良好的数据预处理会让建模结果达到事半功倍的效果.本文简单介绍python中一些常见的数据预处理,包括数据加载 ...
- python处理pdf文件_好玩的Python 篇一:用Python显示和处理PDF文件
好玩的Python 篇一:用Python显示和处理PDF文件 2020-05-25 00:20:30 0点赞 0收藏 0评论 pdf是电子书,文档经常会用的格式,除了下载各种阅读器以外,我们也可以用P ...
- AI 学习之路——轻松初探 Python 篇(一)
喜欢小之的文章的可以关注公众号「WeaponZhi」持续关注动态 这是「AI 学习之路」的第 1 篇,「Python 学习」的第 1 篇 前言 1. Python 篇的组织结构 不管是学习人工智能还是 ...
- java 多项式拟合最多的项数_牛顿插值法、曲线拟合、多项式拟合
2020年10月4日研究了一下牛顿插值法,其用途是使用x.y两组数值,根据新的x值返回对应的y值,与TREND.FORECAST函数不同,这种方法可应对非线性数据.其作用类似于图表中的曲线拟合或LIN ...
- 2021-01-07 matlab数值分析 插值法 拉格朗日插值法 牛顿插值法
matlab数值分析 插值法 1 拉格朗日插值法 function yh=lagrange(x,y,xh) n=length(x); m=length(xh); yh=zeros(1,m); for ...
- 谁说菜鸟不会数据分析python下载_刻意练习9:《谁说菜鸟不会数据分析python篇》第3章编程基础总计46页学习笔记...
学习计划MyPlan9 主题:<谁说菜鸟不会数据分析python篇>第3章节 编程基础,总计46页. 时间:7.15-7.21 周内完成 各位星友们,在这个星球里每个人都要逼迫自己学习未知 ...
- Machine Learning之Python篇(一)
Machine Learning之Python篇 概述 教程 https://ljalphabeta.gitbooks.io/python-/content/ <Python机器学习>中文 ...
- 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较
第 1 页 共 7 页 拉格朗日插值法与牛顿插值法的比较 一. 背景 在工程和科学研究中出现的函数是多种多样的.常常会遇到这样的情况:在某个实际 问题中,虽然可以断定所考虑的函数 ) ( x f 在区 ...
最新文章
- eclipse设置代码自动保存步骤
- Bex5开发技巧之MYSQL Incorrect string value
- 查找点链表中倒数第k个数
- web前端项目--用hbuilder调试app项目
- Linux/windows下nginx的安装及使用
- java实现无序数组结构
- nginx 伪静态php去掉后缀_Nginx与PHP是如何进行交互的?
- flex 与 后台通讯
- windows c语言 sata 序列号,【Delphi】获取IDE/SATA硬盘序列号
- 安装并启动Tomcat 8(mac版本)
- 数据结构----二路归并排序
- 亲测比较好用的各类软件
- TTime::FormatL 详解
- python如何调用math函数库函数_Python math函数库
- Word学习笔记:P6-文档封面、页眉、页脚设置
- 知识点15:文件的高级应用
- html5程序员面试官如何提问,前端程序员第二轮面试的10个问题
- 2016年4月计算机组成原理试题答案,2019年4月江苏自考02318计算机组成原理模拟试题及答案...
- 计算机网络_学习笔记 索引
- iBatis延迟加载
热门文章
- 椭圆曲线:不定方程的难解问题
- 计算机信息管理发展的重要性,从历史情况看,计算机信息管理的发展过程是( )...
- 数学分析:换元积分法与分部积分法
- 英语流利说 第13天
- Faas,又一个未来?
- 计算机教 学计划,计算机教学计划
- oracle 判断标签,判断text标签
- python自定义cmap_python自定义cmap_Python matplotlib的使用并自定义colormap的方法
- 极路由php插件,极路由SDK
- C# / VB 获取PDF文档的数字签名信息