函数f的零阶均差定义为 ,一阶定义均差为:

一般地,函数f 的k阶均差定义为:

或者上面这个式子求的k+1阶均差

利用均差的牛顿插值法多项式为:

简单计算的时候可以观看下面的差商(均差)表:

怎么利用差商表计算,可以看下面这个例子:

正常的话还有一个余项,在本文中先不考虑了。

总和上面的计算方法可以归纳出算法的大致思想:先计算差商表,类似于乘法口诀的思路,两个for循环就可以计算出,然后对于每一次内for循环以后,计算出了第一列,接着把相对应的f(x)计算出来,接着进入第二列的计算,接着计算相应的f(x).......一直到计算完毕最后一个f(x),把所有的f(x)相加,便是最终的插值。

为了便于写算法,以五个样本点为例,计算了一下差商表:

【注】这里的覆盖是就是把这一列计算的值覆盖到前一列的对应地方,这样便于找到规律,可以发现分子始终是y(i+1)-y(i),而分母则与列号有关系,详看代码,更易于理解

Newton1.m

function f = Newton1(x,y,x0)
%求已知数据点的均差形式牛顿插值多项式
%已知数据点的x坐标向量:x
%已知数据点的y坐标向量:y
%插值点的x坐标:x0
%求得的均差形式牛顿插值多项式或x0处的插值:fsyms t;
%计算输入的x y是否长度相等
if(length(x)==length(y))n=length(x);c(1:n)=0.0;
elsedis('x和y的维数不相等!');return;
endf = y(1);%第0列的f(x)就是y(1)本身
y1 = 0; %这个y1不是y(1),存的是差商表后面的值
l  = 1; %l是用来算f(x)后面对应的(x-x1)(x-x2).....的for(i=1:n-1)   for j=1:iy1(j)=0;endfor(j=i+1:n)y1(j) = (y(j)-y(j-1))/(x(j)-x(j-i)); %利用前面的列计算后面列的值endc(i) = y1(i+1);     l = l*(t-x(i));  f = f + c(i)*l;simplify(f);y = y1;if(i==n-1)if(nargin == 3)f = subs(f,'t',x0);%替换函数,用后面的替换前面的,把t替换为x0elsef = collect(f);                %将插值多项式展开f = vpa(f, 6);endend
end

Newton1Insert.m

% x=[1 1.2 1.8 2.5 4];
% y=[1 1.44 3.24 6.25 16];
% f=Newton1(x,y)
% f=Newton1(x,y,2.0)% x=[0.40 0.55 0.65 0.80 0.90];
% y=[0.41075 0.57815 0.69675 0.88811 1.02652];
% f=Newton1(x,y,0.596)x1=0:2*pi;
y1=sin(x1);
xx=0:0.2:2*pi;
yy=Newton1(x1,y1,xx);
plot(x1,y1,'o:',xx,yy,'r')

利用均差的牛顿插值法(Newton)相关推荐

  1. matlab 牛顿向后差分,利用差分的牛顿插值法(Newton)

    差分牛顿插值法要求是等距的. 先来看三个概念 差分与均差的关系如下: 牛顿(Newton)插值的基本公式为: 由于差分插值是等距的,所以可以设x=x0+nh 对于上式

  2. 牛顿(Newton)插值法的Matlab实现

    牛顿(Newton)插值法的Matlab实现 算法 程序 运行 对已知点计算 手算例题 本篇为Newton插值法,构造插值多项式 拉格朗日(Lagrange)插值法链接如下: 链接: Lagrange ...

  3. 牛顿插值法 matlab m文件,牛顿插值法matlab程序

    <牛顿插值法matlab程序>由会员分享,可在线阅读,更多相关<牛顿插值法matlab程序(3页珍藏版)>请在人人文库网上搜索. 1.计算方法数值实验报告班级090712学号0 ...

  4. 导数,差商,牛顿插值法

    1 差商的定义 设有函数f (x)以及自变量的一系列互不相等的的值 f(xi),称 为f (x)在点处的一阶差商,并记作.又称 为f (x)在点处的二阶差商:称: 为f (x)在点处的n阶差商. 2 ...

  5. 【数值分析】拉格朗日插值法与牛顿插值法的C++实现

    数值分析--拉格朗日插值法与牛顿插值法的C++实现 文章目录 数值分析--拉格朗日插值法与牛顿插值法的C++实现 一.插值法 1.1 插值法定义 1.2 插值多项式唯一性定理 二.拉格朗日(Lagra ...

  6. 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】

    『易坊知识库摘要_MATLAB|MATLAB牛顿插值法例题与程序Word版』x12345678y22.523.324.421.7025.228.524.825.4二.数学原理假设有n+1个不同的节点及 ...

  7. 使用C++计算3次牛顿插值法

    本文原文发表于本人博客 哔哔哔哔-使用C++计算3次牛顿插值法 牛顿插值法是数值分析中一种用于插值的多项式,由Issac Newton提出,是估算函数值的重要方法之一 前言 近期数值分析课程讲到了牛顿 ...

  8. java 多项式拟合最多的项数_牛顿插值法、曲线拟合、多项式拟合

    2020年10月4日研究了一下牛顿插值法,其用途是使用x.y两组数值,根据新的x值返回对应的y值,与TREND.FORECAST函数不同,这种方法可应对非线性数据.其作用类似于图表中的曲线拟合或LIN ...

  9. 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较

    第 1 页 共 7 页 拉格朗日插值法与牛顿插值法的比较 一. 背景 在工程和科学研究中出现的函数是多种多样的.常常会遇到这样的情况:在某个实际 问题中,虽然可以断定所考虑的函数 ) ( x f 在区 ...

最新文章

  1. Day 03 为什么大学生难管理时间
  2. C语言sopc蜂鸣器按键弹奏中音,基于sopc 蜂鸣器
  3. 微软新闻:英雄由此诞生
  4. 计算机网络学习笔记(24. HTTP消息格式)
  5. php手术多久就不疼了,自己腹部刚开刀口没几天,却站了5小时为患者手术
  6. 浅谈商品推荐:如何猜中用户的心思?
  7. Linux内存管理 -- /proc/{pid}/smaps讲解
  8. 微信小程序上传照片加水印
  9. java nio 详_java NIO 详解
  10. 正点原子stm32F407 lcd.c 增加 画实心圆 函数
  11. 使用Java模拟登录KINGOSOFT青果教务系统(湖北三峡职业技术学院)
  12. 选择交换法排序c语言程序,C语言排序算法之简单交换法排序,直接选择排序,冒泡排序...
  13. Oracle数据类型详细解释
  14. 【逗老师带你学IT】通过企业微信推送AD域密码即将到期提醒
  15. 2020-2021学年第二学期期末考试《药用高分子材料》大作业
  16. TIA博途中如何为PLC分配IP地址?
  17. Linux 探索之旅 | 第一部分第四课:磁盘分区 + 完成 Ubuntu 安装
  18. new FormData() - FormData对象的作用及用法
  19. HoloLens开发环境安装部署(基于Unity2018.4/VS2017/MRTK)
  20. scratch优秀案例-中国风-西游记故事系列之孙悟空大战白骨精

热门文章

  1. 安卓php高级编辑器使用方法,Android Studio实战 - 编辑器介绍与使用
  2. php数组去空函数怎么写,分享php数组去除空值函数
  3. ansys本地的help文件_linux - 远程拷贝文件之rsync
  4. 表格布局页面_对于表格布局管理器的回顾以及接下来的目标
  5. 数学--数论---P4718 Pollard-Rho算法 大数分解
  6. 如何在win10+VS2017环境下新建一个简单的WDF示例程序
  7. [深度学习] Pytorch中RNN/LSTM 模型小结
  8. 硬件芯片选型原理图设计
  9. 【转载】315M无线模块数据传输——深入研究
  10. 在sts中springboot工程的maven解析异常处理