一、牛顿插值多项式的推导

拉格朗日插值多项式的形式具有对称性,便于记忆,又便于应用于编制程序。

但公式中的都依赖于全部插值节点,在增加或减少节点时必须全部重新计算。

为克服这个缺点,把插值多项式构造成如下形式:

记为,即

其中系数 可由插值条件确定。


为此,我们引入差商概念:

 定义1:设函数f(x)在点上的值依次为 称

处的一阶差商,记为,即

称一阶差商的差商

(i,j,k互异)

为f(x)在处的二阶差商,记为,即

一般地,称m-1阶差商的差商

为f(x)在点处的m阶差商。

特别地,规定零阶差商


有了差商的概念之后,我们就可以用差商来表示牛顿插值多项式中的系数。

由插值条件可得:

由插值条件可得:

由插值条件可得:

一般地,可以证明有:

于是,满足插值条件的n次牛顿插值多项式为

二、牛顿插值多项式的MATLAB实现

function [C,D]=newpoly(X,Y)
%输入  X代表插值节点的值
%      Y代表各个插值节点所对应的函数值
%输出  C代表牛顿插值函数
%      D代表差商表
n=length(X);
%求差商表
D=zeros(n,n);
D(:,1)=Y;
for i=2:nfor j=i:nD(j,i)=(D(j,i-1)-D(j-1,i-1))/(X(j)-X(j-i+1));end
end
%求牛顿插值函数
A=(diag(D))';
P=zeros(n,n);
P(1,n)=1;
for i=2:nV=1;for q=1:i-1V=conv(V,poly(X(q)));endP(i,n-i+1:n)=V(1:i);
end
Q=A*P;
C=poly2sym(Q);

接着,在命令行窗口中输入:

>> X=[1 2 3 4 5 6];

>> Y=[66 66 65 64 63 63];

>> [C,D]=newpoly(X,Y)

可以得到差商表如下:

xk

f[xk]

一阶差商

二阶差商

三阶差商

四阶差商

五阶差商

x1=1

66.00

0

0

0

0

0

x2=2

66.00

0

0

0

0

0

x3=3

65.00

-1.00

-0.50

0

0

0

x4=4

64.00

-1.00

0

0.17

0

0

x5=5

63.00

-1.00

0

0

-0.04

0

x6=6

63.00

0

0.50

0.17

0.04

0.02

并且由牛顿插值法得到的牛顿插值多项式为:

三、牛顿插值多项式的Python实现

import numpy as npX=np.array([1,2,3,4,5,6])
Y=np.array([66,66,65,64,63,63])n=np.shape(X)[0]
D=np.zeros((n,n))#求差商表
for i in range(n):D[i,0]=Y[i]
for i in range(1,n):for j in range(i,n):D[j,i]=(D[j,i-1]-D[j-1,i-1])/(X[j]-X[j-i])

插值与多项式逼近 | 牛顿插值多项式相关推荐

  1. 拉格朗日插值法与牛顿插值多项式

    多项式插值 先有一个函数 f ( x ) f(x) f(x),如果给定在区间 [ a , b ] [a,b] [a,b]上的 n + 1 n+1 n+1个点 a < = x 0 < x 1 ...

  2. 插值与多项式逼近的数值计算方法——《数值计算方法》

    <数值计算方法>系列总目录 第一章 误差序列实验 第二章 非线性方程f(x)=0求根的数值方法 第三章 CAD模型旋转和AX=B的数值方法 第四章 插值与多项式逼近的数值计算方法 第五章 ...

  3. 牛顿插值多项式(python实现)

    理论知识 牛顿插值多项式(理论知识) 目标函数 f(x)=11+x2f(x)=11+x2 f(x) = \frac{1}{1+x^2} 插值点为[-10, 10]上的整数点. 图片 代码实现 impo ...

  4. 牛顿后插matlab,大神求解析程序~~关于牛顿插值多项式的matlab程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这个是牛顿插值求多项式的程序,从网上下载的,但是小妹看半天也看不明白,求解析!!大神帮忙解答一下,O(∩_∩)O谢谢~~ function [p2,z]= ...

  5. 牛顿插值多项式 Python 循环和递归两种实现思路

    这里不介绍牛顿插值多项式数学推导,只提供Python循环和递归实现的思路与代码,想要学习牛顿插值多项式的同学可以去看数值分析课本等. 这里提供循环和递归两种思路,因为我是先想的递归,完整的代码和思路都 ...

  6. python 计算牛顿差商,计算并化简牛顿插值多项式

    1. 程序 1.1 导入库 import numpy as np import sympy as sy 1.2 函数 def NewtonInt(x_value, y_value):"&qu ...

  7. 数值方法:插值与多项式逼近

  8. 用牛顿插值多项式求函数近似值的算法,能用C语言编程实现

    #include<stdio.h> main() {int i,j,k,m,z=0;double sum=0,w=1,x,b[5][6],cc[2][4];for(i=0;i<5;i ...

  9. 分段二次插值例题_分段低次插值克服了高次插值多项式可能产生震荡的不足,但分段低次插值函数在整个插值区间上不能保证...

    [单选题]43. ---I heard you had left our Disneyland admission coupons at home. [多选题]下列各式中,其计算结果等于贡献边际率的有 ...

最新文章

  1. 小余学调度:学习记录2021.8月
  2. php中n12br,PHP常见字符串操作函数与用法总结
  3. matlab 自适应噪声对消,基于Matlab的RLS自适应语音噪声对消系统的设计与实现
  4. java日期用什么属性_java日期以及使用Java反射机制遍历实体类的属性和类型
  5. matlab计算三角格网面积,不规则平面图形的面积计算及其MATLAB实现.doc
  6. 【报告分享】2020年中国数据驱动型企业成长路径研究报告.pdf(附下载链接)...
  7. 使用es6制作简单数独游戏
  8. 3dMAX蒙皮镜像不对称
  9. 防火墙 | DDos攻击防范技术
  10. 王者荣耀s16服务器维护,王者荣耀:S16单排环境依旧差劲 五大原因戳到很多人的痛点...
  11. 电话号码的字母组合---2022/01/23
  12. Pycharm debug时变量无法立即显示,正在评估(evaluating )...
  13. android中的高级组件(三)(ExpandableListView,ImageSwitcher,Gallery)
  14. OpenGL地球(自转+贴图)
  15. apple pencil有买的必要吗?便宜的平替电容笔推荐
  16. MOOS-ivp 实验三 MOOS简介(1)
  17. c语言随机产生三个大写字母,C语言编写的随机产生四则运算测试题
  18. 差评回复话术,拿来吧你!
  19. BERT预训练模型的使用
  20. Java:DateUtils 获取 本上下(周/月)周一周日 最后一天 当月多少天

热门文章

  1. 电子学会青少年软件编程 Python编程等级考试二级真题解析(判断题)2020年12月
  2. 线程池的解析以及7个参数
  3. python编写音乐-python写的定时播放音乐
  4. springboot集成钉钉_【程序源代码】springboot集成钉钉机器人
  5. 比马化腾预期要早好几年!QQ第一位满级用户出现了,竟是位女生?
  6. maya 常用命令用法整理
  7. PS画布基本操作 新建保存 图片类型区分设置
  8. 朴素贝叶斯分类-西瓜分类python
  9. 使用dialogflow和firebase构建whatsapp聊天机器人的指南
  10. Android如何查耳机电量,手机怎样显示蓝牙耳机的电量