文章目录

  • 一、均差及其性质
    • 1.均差的定义
    • 2.均差的性质
    • 3.均差表
  • 二、牛顿插值多项式
    • 1.牛顿插值多项式
  • 三、牛顿插值多项式在Matlab上的实现
    • 1.Matlab代码
    • 2.代码使用演示
  • 备注

一、均差及其性质

1.均差的定义

在开始介绍牛顿插值多项式之前,需要先引入均差的定义

定义 :称f[x0,xk]=f(xk)−f(x0)xk−x0f[x_0,x_k]=\frac{f(x_k)-f(x_0)}{x_k-x_0}f[x0​,xk​]=xk​−x0​f(xk​)−f(x0​)​为函数f(x)f(x)f(x)关于点x0x_0x0​,xkx_kxk​的一阶均差.

f[x0,x1,xk]=f[x0,xk]−f[x0,x1]xk−x1f[x_0,x_1,x_k]=\frac{f[x_0,x_k]-f[x_0,x_1]}{x_k-x_1}f[x0​,x1​,xk​]=xk​−x1​f[x0​,xk​]−f[x0​,x1​]​称为f(x)f(x)f(x)的二阶均差. 一般地,称f[x0,x1,⋯,xk]=f[x0,⋯,xk−2,xk]−f[x0,x1,⋯,xk−1]xk−xk−1f[x_0,x_1,\cdots ,x_k]=\frac{f[x_0,\cdots ,x_{k-2},x_k]-f[x_0,x_1,\cdots,x_{k-1}]}{x_k-x_{k-1}}f[x0​,x1​,⋯,xk​]=xk​−xk−1​f[x0​,⋯,xk−2​,xk​]−f[x0​,x1​,⋯,xk−1​]​为f(x)f(x)f(x)的k\mathbf{k}k阶均差(均差也称为差商)。

2.均差的性质

(1)kkk阶均差可表示为函数值f(x0)f(x_0)f(x0​),f(x1)f(x_1)f(x1​),⋯\cdots⋯,f(xk)f(x_k)f(xk​)的线性组合,即f[x0,x1,⋯,xk]=∑j=0kf(xj)(xj−x0)⋯(xj−xj−1)(xj−xj+1)⋯(xj−xk)f[x_0,x_1,\cdots ,x_k]=\sum_{j=0}^{k}\frac{f(x_j)}{(x_j-x_0)\cdots(x_j-x_{j-1})(x_j-x_{j+1})\cdots(x_j-x_k)} f[x0​,x1​,⋯,xk​]=j=0∑k​(xj​−x0​)⋯(xj​−xj−1​)(xj​−xj+1​)⋯(xj​−xk​)f(xj​)​可用归纳法证明此性质。这个性质也表明均差与节点的排列次序无关,称为均差的对称性,即f[x0,x1,⋯,xk]=f[x1,x0,x2,⋯,xk]=⋯=f[x1,⋯,xk,x0]f[x_0,x_1,\cdots,x_k]=f[x_1,x_0,x_2,\cdots,x_k]=\cdots=f[x_1,\cdots,x_k,x_0]f[x0​,x1​,⋯,xk​]=f[x1​,x0​,x2​,⋯,xk​]=⋯=f[x1​,⋯,xk​,x0​]

(2)由性质(1)及kkk阶均差表达式可得f[x0,x1,⋯,xk]=f[x1,x2,⋯,xk]−f[x0,x1,⋯,xk−1]xk−x0f[x_0,x_1,\cdots,x_k]=\frac{f[x_1,x_2,\cdots,x_k]-f[x_0,x_1,\cdots,x_{k-1}]}{x_k-x_0}f[x0​,x1​,⋯,xk​]=xk​−x0​f[x1​,x2​,⋯,xk​]−f[x0​,x1​,⋯,xk−1​]​

(3)若f(x)f(x)f(x)在[a,b][a,b][a,b]上存在nnn阶导数,且节点x0x_0x0​,x1x_1x1​,⋯\cdots⋯,xn∈[a,b]x_n\in[a,b]xn​∈[a,b],则nnn阶均差与导数的关系为f[x0,x1,⋯,xk]=f(n)(ξ)n!,ξ∈[a,b]f[x_0,x_1,\cdots,x_k]=\frac{f^{(n)}(\xi )}{n!} ,\xi\in[a,b]f[x0​,x1​,⋯,xk​]=n!f(n)(ξ)​,ξ∈[a,b]这个公式可直接用罗尔定理证明。

3.均差表

均差计算可列为均差表如下:

xkx_kxk​ f(xk)f(x_k)f(xk​) 一阶均差 二阶均差 三阶均差 四阶均差 ⋯\cdots⋯
x0x_0x0​ f(x0)‾\underline{f(x_0)}f(x0​)​
x1x_1x1​ f(x1)f(x_1)f(x1​) f[x0,x1]‾\underline{f[x_0,x_1]}f[x0​,x1​]​
x2x_2x2​ f(x2)f(x_2)f(x2​) f[x1,x2]f[x_1,x_2]f[x1​,x2​] f[x0,x1,x2]‾\underline{f[x_0,x_1,x_2]}f[x0​,x1​,x2​]​
x3x_3x3​ f(x3)f(x_3)f(x3​) f[x2,x3]f[x_2,x_3]f[x2​,x3​] f[x1,x2,x3]f[x_1,x_2,x_3]f[x1​,x2​,x3​] f[x0,x1,x2,x3]‾\underline{f[x_0,x_1,x_2,x_3]}f[x0​,x1​,x2​,x3​]​
x4x_4x4​ f(x4)f(x_4)f(x4​) f[x3,x4]f[x_3,x_4]f[x3​,x4​] f[x2,x3,x4]f[x_2,x_3,x_4]f[x2​,x3​,x4​] f[x1,x2,x3,x4]f[x_1,x_2,x_3,x_4]f[x1​,x2​,x3​,x4​] f[x0,x1,x2,x3,x4]‾\underline{f[x_0,x_1,x_2,x_3,x_4]}f[x0​,x1​,x2​,x3​,x4​]​
⋮\vdots⋮ ⋮\vdots⋮ ⋮\vdots⋮ ⋮\vdots⋮ ⋮\vdots⋮ ⋮\vdots⋮ ⋮\vdots⋮

二、牛顿插值多项式

1.牛顿插值多项式

设待插函数为f(x)f(x)f(x),利用拉格朗日插值多项式和均差的概念可以得到f(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯+f[x0,x1,⋯,xn](x−x0)⋯(x−xn−1)+f[x,x0,⋯,xn]ωn+1(x)=Pn(x)+Rn(x)f(x)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+\cdots +f[x_0,x_1,\cdots,x_n](x-x_0)\cdots(x-x_{n-1})+f[x,x_0,\cdots,x_n]\omega _{n+1}(x)=P_n(x)+R_n(x)f(x)=f(x0​)+f[x0​,x1​](x−x0​)+f[x0​,x1​,x2​](x−x0​)(x−x1​)+⋯+f[x0​,x1​,⋯,xn​](x−x0​)⋯(x−xn−1​)+f[x,x0​,⋯,xn​]ωn+1​(x)=Pn​(x)+Rn​(x)
其中牛顿均差插值多项式:
Pn(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯+f[x0,x1,⋯,xn](x−x0)⋯(x−xn−1)P_n(x)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+\cdots +f[x_0,x_1,\cdots,x_n](x-x_0)\cdots(x-x_{n-1})Pn​(x)=f(x0​)+f[x0​,x1​](x−x0​)+f[x0​,x1​,x2​](x−x0​)(x−x1​)+⋯+f[x0​,x1​,⋯,xn​](x−x0​)⋯(x−xn−1​)
牛顿插值余项:
Rn(x)=f[x,x0,⋯,xn]ωn+1(x)R_n(x)=f[x,x_0,\cdots,x_n]\omega _{n+1}(x)Rn​(x)=f[x,x0​,⋯,xn​]ωn+1​(x)

三、牛顿插值多项式在Matlab上的实现

1.Matlab代码

function [f0,f1] = Newtown_f(x0,y0)
%Newtown_f x0,y0分别是牛顿插值法所用点的x坐标、y坐标向量
%f0 输出多项式的句柄函数形式
%f1 输出多项式的符号表达式
syms x y
N=length(x0);   %统计样本点个数
mean_difference=zeros(N);
mean_difference(:,1)=y0';
mean_difference_temp=diff(y0);  %生成用于储存均差的矩阵,并存储一阶均差
%计算i-1阶均差
for i=2:Ndelta=i-1;for j=delta+1:Nmean_difference(j,i)=mean_difference_temp(j-delta)/(x0(j)-x0(j-delta));endmean_difference_temp=diff(mean_difference(i:end,i));
end
%计算多项式
for i=0:(N-1)if i==0alpha=mean_difference(i+1,i+1);polynomial=1;f1=alpha*polynomial;elsealpha=mean_difference(i+1,i+1);polynomial=polynomial*(x-x0(i));f1=f1+alpha*polynomial;end
end
f1=simplify(f1);    %简化多项式
f0=matlabFunction(f1);

2.代码使用演示

在多项式函数 f(x)=x2f(x)=x^2f(x)=x2 上取三个样本点进行插值

%% 样本点生成
N=3;
x0=linspace(-1,1,N);
y0=x0.^2;%% 使用插值法进行计算
[f1,f2]=Newtown_f(x0,y0);%% 画图
xo_o=linspace(-1,1,500);    %生成画图用点的x值
yo_o=f1(xo_o);  %代入多项式计算画图用点的y值
plot(xo_o,yo_o);
f2 %在命令行窗口展示多项式符号表达式


上图分别为插值多项式在[−1,1][-1,1][−1,1]区间上的图像和得到插值多项式f2=x2f2=x^2f2=x2,可以看到插值多项式图像与原多项式图像保持一致。


备注

一般情况下,插值多项式所插的点越多,多项式的次数就越高,插值结果越接近原函数,但对于龙格函数,例如:f(x)=11+25x2f(x)=\frac{1}{1+25x^2}f(x)=1+25x21​,会存在龙格现象,即插值次数越高,插值结果越偏离原函数的特殊情况。

牛顿插值法在Matlab上的实现相关推荐

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

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

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

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

  3. 【数学建模笔记】【第三讲】拉格朗日插值法,牛顿插值法,分段三次埃尔米特插值法及其MATLAB实践

    温馨提示:本文共有3748字,阅读并理解全文大概需要15-20分钟 插值算法 一.插值法的定义 1.插值函数一共有三种: 2.多项式插值法原理 3.分段插值法原理: 4.具体如何求插值函数呢? (1) ...

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

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

  5. 2021-01-07 matlab数值分析  插值法 拉格朗日插值法 牛顿插值法

    matlab数值分析  插值法 1 拉格朗日插值法 function yh=lagrange(x,y,xh) n=length(x); m=length(xh); yh=zeros(1,m); for ...

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

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

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

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

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

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

  9. 利用均差的牛顿插值法(Newton)

    函数f的零阶均差定义为 ,一阶定义均差为: 一般地,函数f 的k阶均差定义为: 或者上面这个式子求的k+1阶均差 利用均差的牛顿插值法多项式为: 简单计算的时候可以观看下面的差商(均差)表: 怎么利用 ...

  10. 牛顿插值法及其C++实现

    牛顿插值法 一.背景引入 相信朋友们,开了拉格朗日插值法后会被数学家的思维所折服,但是我想说有了拉格朗日插值法还不够,因为我们每次增加一个点都得重算所有插值基底函数,这样会增加计算量,下面我们引入牛顿 ...

最新文章

  1. Nginx优化、服务器状态模块(--with-http_stub_status_module 的安装使用)
  2. 深入了解以太坊虚拟机第5部分——一个新合约被创建后会发生什么
  3. 阿里云ACE共创空间——大数据方案体验1 日志服务
  4. zabbix php 安装,zabbix_Linux安装php5.6.31
  5. 封装mysql数据库_快速掌握 Mysql数据库对文件操作的封装
  6. linux vi 编辑命令
  7. script脚本中写不写$(document).ready(function() {});的差别
  8. Hexo报错Usage: hexo command处理及图片显示问题
  9. 大数据引领医药行业 为时过早
  10. [CGAL] CGAL的编译与使用
  11. 2020 Q4营收环比增长27.5%,前程无忧找回增长节奏
  12. 迷你西游最新服务器是哪个,《迷你西游》新开服务器公告
  13. 苹果六现价多少钱_六克拉的Derier多少钱 六克拉钻戒多少钱
  14. python控制苹果手机触摸屏失灵怎么办_iPhone手机触屏不灵敏怎么办 触屏失灵乱跳等问题解决方法大全必看...
  15. 亚马逊测评有哪些误解?
  16. NAACL最佳方法论文 | 课本上的A*搜索算法可以提升文本生成效果!
  17. 力扣(83.643)补8.29
  18. 物体检测中的小物体问题
  19. 一键卸载oracle11,Oracle11完全卸载
  20. 安全(Security)设计原则(1)

热门文章

  1. NVivo for Mac中的编码难理解?这6个视频帮助你!
  2. linux连win7打印机,如何在CentOS 6.5下安装Win7下的共享打印机服务
  3. Ruby on Rails快速创新性能的终极指南
  4. 为什么你玩lol遇到的队友都是坑(适用于所有moba游戏)
  5. linux嵌入式无线中继,openwrt无线中继设置步骤
  6. 破局人工智能:构建AI,与腾讯云一起探索语音应用场景
  7. android 各国语言对应的缩写
  8. linux天气软件,Ubuntu 18.04 6款查询天气的小工具推荐(适用于其它Linux)
  9. 华为HCIE云计算培训笔记第5天
  10. 华为USG6000 防火墙默认设置