Neville插值方法详解

牛顿的插值方法涉及两个步骤:计算系数,随后评估多项式。 如果插值运作良好使用相同的多项式在x的不同值处重复执行。 要是一点是内插,一种单步计算插值的方法,如Neville的算法,是一个更方便的选择。

4个数据点的表格

  k=0 k=1 k=2 k=3
x0 P0[x0]=y0 P1[x0,x1] P2[x0,x1,x2] P3[x0,x1,x2,x3]
x1 P0[x1]=y1 P1[x1,x2] P2[x1,x2,x3]  
x2 P0[x2]=y2 P1[x2,x3]    
x3 P0[x3]=y3      

通项公式

Pk[xi,xi+1,⋯,xi+k]=(x−xi+k)Pk−1[xi,xi+1,⋯,xi+k−1]+(xi−x)Pk−1[xi+1,⋯,xi+k]xi−xi+k

4个数据点的计算公式

  k=0 k=1 k=2 k=3
x0 P0[x0]=y0 P1[x0,x1]=(x−x1)P0[x0]+(x0−x)P0[x1]x0−x1 P2[x0,x1,x2]=(x−x2)P1[x0,x1]+(x0−x)P1[x1,x2]x0−x2 P3[x0,x1,x2,x3]=(x−x3)P2[x0,x1,x2]+(x0−x)P2[x1,x2,x3]x0−x3
x1 P0[x1]=y1 P1[x1,x2]=(x−x2)P0[x1]+(x1−x)P0[x2]x1−x2 P2[x1,x2,x3]=(x−x3)P1[x1,x2]+(x1−x)P1[x2,x3]x1−x3  
x2 P0[x2]=y2 P1[x2,x3]=(x−x3)P0[x2]+(x2−x)P0[x3]x2−x3    
x3 P0[x3]=y3      

Neville算法Python代码

import numpy as np
def neville(xData,yData,x):
m = len(xData)
A = np.zeros((m,m)) # A代表计算表格
A[:,0]=np.array(np.array(yData))
for k in range(1,m):
for i in range(m-k):
A[i,k]=((x-xData[i+1])*A[i,k-1]+(xData[i]-x)*A[i+1,k-1])/(xData[i]-xData[i+1])
return A

案例分析

yData = [4.0, 3.9, 3.8, 3.7]
xData = [-0.06604, -0.02724, 0.01282, 0.05383]
neville(xData,yData,0)

计算结果

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 

数值分析之Neville's Algorithm的更多相关文章

  1. Neville 插值方法

    简介 wikipedia: Neville's method 在数学上,Neville 算法是一种计算插值多项式方法,由数学家Eric Harold Neville提出.由给定的n+1个节点,存在一个 ...

  2. OpenCASCADE Root-Finding Algorithm

    OpenCASCADE Root-Finding Algorithm eryar@163.com Abstract. A root-finding algorithm is a numerical m ...

  3. 数据结构(DataStructure)与算法(Algorithm)、STL应用

    catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...

  4. 挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法

    转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...

  5. PE Checksum Algorithm的较简实现

    这篇BLOG是我很早以前写的,因为现在搬移到CNBLOGS了,经过整理后重新发出来. 工作之前的几年一直都在搞计算机安全/病毒相关的东西(纯学习,不作恶),其中PE文件格式是必须知识.有些PE文件,比 ...

  6. [异常解决] windows用SSH和linux同步文件&linux开启SSH&ssh client 报 algorithm negotiation failed的解决方法之一

    1.安装.配置与启动 SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有 ...

  7. [Algorithm] 使用SimHash进行海量文本去重

    在之前的两篇博文分别介绍了常用的hash方法([Data Structure & Algorithm] Hash那点事儿)以及局部敏感hash算法([Algorithm] 局部敏感哈希算法(L ...

  8. Backtracking algorithm: rat in maze

    Sept. 10, 2015 Study again the back tracking algorithm using recursive solution, rat in maze, a clas ...

  9. [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型

    深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推崇为一种类似于人脑结构的人工智能算法,那为什么深度学习在语义分析领域仍然没有实质性的进展呢? ...

随机推荐

  1. Python3 Win下安装 scipy

    没有利用Anaconda安装python库时可能遇到一些问题,例如直接 pip3 install scipy 可能报错,安装失败.原因是Scipy的安装需要依赖MKL库,官方的Numpy不包含MKL, ...

  2. SIFT feature

    转载:http://www.cnblogs.com/wangguchangqing/p/4853263.html 1.SIFT概述 SIFT的全称是Scale Invariant Feature Tr ...

  3. centos6安装python3.6.4

    安装Python依赖包: [root@Python src]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlit ...

  4. PhantomJSのメモいろいろ

    提供されるモジュール群は5つ phantom: そのもの FileSystem: ファイルに出力したり.依存ファイルの存在確認したり System: コマンドラインから引数取りたいなら WebPage ...

  5. 多个SpingBoot项目的搭建与部署

    最近几年SpringBoot大热,很多IT公司都开始采用SpringBoot来替换传统的SpringMVC项目.那么如何搭建一个适合开发的项目架构呢? 这里我主要介绍Java程序员使用最多的两种工具进 ...

  6. openwrt 添加luci选项

    刚刚下载的openwrt trunk版本,安装后没有luci选项,如下图 需要添加luci页面选项. 步骤如下: (1)修改配置文件 .config , 将 CONFIG_FEED_luci is n ...

  7. uboot 传递的参数 mtdparts

    启动uboot后,在重新烧写程序之前,查看传递给内核的参数时(命令为: printenv),看到如下内容: bootargs=console=ttyS0,115200 mtdparts=spi0.0: ...

  8. 转载:Nginx是什么(1.1)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19609.html 人们在了解新事物时,往往习惯通过类比来帮助自己理解事物的概貌.那么,我们在学习Nginx时也采用同样的方式,先来看 ...

  9. 04-Bootstrap的插件

    1.下拉菜单 代码如下: <div class="dropdown"> <button class="btn btn-default dropdown- ...

  10. PHP对Url中的汉字进行编码和解码

    有的新手朋友们对于url编码解码这个概念,或许有点陌生.但是如果这么说,当我们在浏览各大网页时,可能发现有的url里有一些特殊符号比如#号,&号,_号或者汉字等等,那么为了符合url的规范,存 ...