利用差分的牛顿插值法(Newton)

差分牛顿插值法要求是等距的。

先来看三个概念



差分与均差的关系如下:



牛顿(Newton)插值的基本公式为:


由于差分插值是等距的,所以可以设x=x0+nh

对于上式

再由差分和均差的关系,可以将上面的黄色部分也就是牛顿插值基本公式转换成:

这里只介绍前插法:


此外还有一个余项公式:


余项部分暂不考虑。现在可以将公式转换为代码:

NewtonForward.m

function f = Newtonforward(x,y,x0)
%求已知数据点的向前差分牛顿插值多项式
%已知数据点的x 坐标向量:x
%已知数据点的y 坐标向量:y
%为插值点的x坐标:x0
%求得的向前差分牛顿插值多项式或x0处的插值:f
syms t;
if(length(x) == length(y))n = length(x);c(1:n) = 0.0;
elsedisp('x和y的维数不相等!');return;
end
f = y(1);
y1 = 0;
xx =linspace(x(1),x(n),n); %吧x(1)到x(n)分成n-1份,比如1到100分成11份就是:1 10 20...100
if(xx ~= x)disp('节点之间不是等距的!');return;
end
for(i=1:n-1)for(j=1:n-i)y1(j) = y(j+1)-y(j);   %求△fendc(i) = y1(1);     l = t;for(k=1:i-1)l = l*(t-k);   %每一项的∏部分end;f = f + c(i)*l/factorial(i);  %得到前i项的牛顿插值的和simplify(f);y = y1;if(i==n-1)if(nargin == 3)f = subs(f,'t',(x0-x(1))/(x(2)-x(1)));  %如果有输入x0,那么就把未知数t替换成(x0-x(1))/(x(2)-x(1)),表示x0的位置在哪里elsef = collect(f);f = vpa(f, 6);endend
end

NewtonForwardInsert.m

xx=0:2*pi;
yy=sin(xx);
x1=0:0.5:2*pi;
y1=Newtonforward(xx,yy,x1);
plot(xx,yy,'o',x1,y1,'r')





【附】前插和后插的公式对比

前插公式


余项:

后插公式


余项:


后插法的matlab实现:

Newtonback.m

function f = Newtonback(x,y,x0)
%求已知数据点的向后差分牛顿插值多项式
%x:已知数据点的x坐标向量
%y:已知数据点的y坐标向量
%x0:插值点的x坐标
%f:求得的向后差分牛顿插值多项式或x0处的插值
syms t;
if(length(x)==length(y))n=length(x);c(1:n)=0.0;
elsedisp('x和y的维数不相等!!');return;
end
f=y(n);
y1=0;
xx=linspace(x(1),x(n),n);  %将x(1)到x(n)分成x(2)-x(1)等间距段
if(xx~=x)disp('节点之间不是等距的!');return;
end
for(i=1:n-1)for(j=i+1:n)y1(j)=y(j)-y(j-1);endc(i)=y1(n);l=t;for(k=1:i-1)l=l*(t+k);endf=f+c(i)*l/factorial(i);simplify(f);y=y1;if(i==n-1)if(nargin==3)f=subs(f,'t',(x0-x(n))/(x(2)-x(1)));elsef=collect(f);f=vpa(f,6);endend
end

NewtonBackInsert.m

xx=0:2*pi;
yy=sin(xx);
x1=0:0.5:2*pi;
y1=Newtonback(xx,yy,x1);
plot(xx,yy,'o',x1,y1,'r')


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

埃尔米特(Hermite)插值

Hermite插值满足在节点上等于给定函数值,而且在节点上的导数值也等于给定的导数值。对于高阶导数的情况,Hermite插值多项式比较复杂,在实际情况中,常常遇到的是函数值与一阶导数给定的情况。在此情况下,n个节点x1,x2,……

keras创建模型

关于Keras模型 Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况。 Sequential models:这种方法用于实…

多项式曲线拟合最小二乘法

对给定的试验数据点(xi,yi)(i1,2,……,n),可以构造m次多项式 数据拟合的最简单的做法就是使误差p(xi)-yi的平方和最小 当前任务就是求一个P(x)使得 从几何意义上讲就是寻求给与定点(xi,yi)距离的平方和最小的曲线yp(x),函数p(x)称为拟合函数或者是最小二乘解&#x…

运动合成——机器学习技术

参考文献:《人体运动合成中的机器学习技术合成综述》 根据机器学习的用途分类,在图形学中使用到的大致如下: 1> 回归和函数逼近。回归是一种插值技术,分析已知数据点来合成新的数据。 2> 降维。从高维数的运动数据…

ICA独立成分分析—FastICA基于负熵最大

1. 概念 官方解释:利用统计原理进行计算的方法,是一种线性变换。 ICA分为基于信息论准则的迭代算法和基于统计学的代数方法两大类,如FastICA算法,Infomax算法,最大似然估计算法等。 这里主要讨论FastICA算法。 先来…

tensorboard的可视化及模型可视化

待整理 How to Check-Point Deep Learning Models in Keras LossWise Tensorboard 中文社区 谷歌发布TensorBoard API,让你自定义机器学习中的可视化 查找tensorflow安装的位置 pip show tensorflow-gpu Name: tensorflow-gpu Version: 1.0.1 Summary: TensorFl…

隐马尔科夫模型——简介

1. 前言 学习了概率有向图模型和概率无向图模型,回头再看了一下隐马尔可夫模型(hidden Markov model,HMM)。 HMM属于树状有向概率图模型,主要用于对时序数据的建模,它的潜在变量是离散的;而另一种状态空间模型&…

训练的神经网络不工作?一文带你跨过这37个坑

近日,Slav Ivanov 在 Medium 上发表了一篇题为《37 Reasons why your Neural Network is not working》的文章,从四个方面(数据集、数据归一化/增强、实现、训练),对自己长久以来的神经网络调试经验做了 37…

HMM——前向算法与后向算法

1. 前言 前向算法和后向算法主要还是针对HMM三大问题之一的评估问题的计算,即给定模型参数,计算观察序列的概率。文章不介绍过多公式,主要看两个例子 复习一下HMM的三大要素(以海藻(可观测)和天气&#x…

HMM——维特比算法(Viterbi algorithm)

1. 前言 维特比算法针对HMM第三个问题,即解码或者预测问题,寻找最可能的隐藏状态序列: 对于一个特殊的隐马尔可夫模型(HMM)及一个相应的观察序列,找到生成此序列最可能的隐藏状态序列。 也就是说给定了HMM的模型参数和一个观测…

HMM——前向后向算法

1. 前言 解决HMM的第二个问题:学习问题, 已知观测序列,需要估计模型参数,使得在该模型下观测序列 P(观测序列 | 模型参数)最大,用的是极大似然估计方法估计参数。 根据已知观测序列和对应的状态序列,或者说…

Web安全(吴翰清)

安全工程师的核心竞争力不在于他能拥有多少个 0day,掌握多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。 第一篇 我的安全世界观 脚本小子 “Script Kids”。 黑客精神所代表的 Open、Free、Share。…

机器学习两种方法——监督学习和无监督学习(通俗理解)

前言 机器学习分为:监督学习,无监督学习,半监督学习(也可以用hinton所说的强化学习)等。 在这里,主要理解一下监督学习和无监督学习。 监督学习(supervised learning) 从给定的训…

Tensorflow中padding的两种类型SAME和VALID

边界补充问题 原始图片尺寸为7*7,卷积核的大小为3*3,当卷积核沿着图片滑动后只能滑动出一个5*5的图片出来,这就造成了卷积后的图片和卷积前的图片尺寸不一致,这显然不是我们想要的结果,所以为了避免这种情况&#xff…

机器学习两种距离——欧式距离和马氏距离

我们熟悉的欧氏距离虽然很有用,但也有明显的缺点。它将样品的不同属性(即各指标或各变量)之间的差别等同看待,这一点有时不能满足实际要求。例如,在教育研究中,经常遇到对人的分析和判别,个体的…

最小二乘法深入

上次写了一个一次函数yaxb类型的最小二乘法,即可以看做是n维输入列向量对应的一个n维输出列向量,然后对已知结果进行学习,得到拟合公式。这里对m*n的矩阵进行最小二乘法分析。 设模型的输出为和训练集输出,它们之间的平方误差为&…

ubuntu16.04 制作gif

byzanz安装 sudo apt-get install byzanz byzanz-record #录像byzanz-playback #回放 下载完成后打开命令行输入byzanz-record –help 其中我们重点关注几个参数 * -d 动画录制的时间,默认录制10秒 * -e 动画开始延迟 * -x 录制区域的起始X坐标 * -y 录制区域的起始Y坐标 …

典型关联分析CCA(canonical correlation analysis)

先看两个数学概念: 相关系数(参看百度百科) 相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关程度 相…

Kullback–Leibler divergence(相对熵,KL距离,KL散度)

1 前言 注意两个名词的区别: 相对熵:Kullback–Leibler divergence 交叉熵:cross entropy KL距离的几个用途: ① 衡量两个概率分布的差异。 ② 衡量利用概率分布Q 拟合概率分布P 时的能量损耗,也就是说拟合以后丢失…

李宏毅机器学习课程11~~~为何要深?

为何要“深”? pluskid的博客 Deep Learning and Shallow Learning Bengio Y. Learning deep architectures for AI. Foundations and trends in Machine Learning, 2009 Deeper is Better? 模型有更多的参数会有更好的结果,这是毋庸置疑的。 深瘦的模…