灵魂级别讲解均差与牛顿插值大概原理到代码实现 - 独爱莲

时间:2024-03-09 11:33:49

灵魂级别讲解均差与牛顿插值大概原理到代码实现

1 背景小知识

  什么是插值?为什么要插值?怎么插值?这是这里需要知道的背景知识(个人的理解)。

  插值就是在已知一些点(此处是xy坐标)的前提下,在已知点之间进行取多个点,取点方法多样,取点的方法也就是插值的方法。

如比较经典的拉格朗日插值,牛顿插值,分段插值等等。

  为什么要插值?在工程应用中,很多时候某些特性的函数是不确定的,换句话说是无解或者解不出来,但是通过实验或者其他方

法可以取得样本,也就是取得已知点,那么我们通过人为的插入点,可以对函数进行大致的估计,从而使用估计后的函数来代替原函数。

2 均差与牛顿插值

了解一下插值多项式,我理解的就是反映某一特性的变化规律,下面是准确的定义

 

 

  牛顿插值是建立在均差的基础之上的,所以必须了解其定义。一阶的均差的定义和导数的定义有相似之处,此处需要注意的是i和j

可以是不相邻的。多阶在一阶的基础之上推演出来的。不要问我为什么要这样定义,这得问定义的那个人。很多时候,数学就是搞

一些莫名其妙的定义,发现其性质很好,然后有的就可以用于工程,这就我理解的数学。

 再看看牛顿多项式,其中就运用到了均差。用已知的离散点表示出了一个多项式,可以理解成一个函数,这个函数的系数是已知的

离散点(y0=f(x0),y1=(x1).....)确定的,而函数的输入则是需要插值点的横坐标x输出的是纵坐标y

 

 

  此方法肯定有误差,但是在此处不谈论,读入有兴趣可以参考教材。

这是大概的原理,比较简洁,此处不是方法原理为重点,很多细节没有展示,但是读者肯定觉得抽象,下面代码和验证会让我们理解更清晰。

 

3 代码实现与验证

下面的代码主要是生成均差表,用的就是均差的定义,代码难处都已经注释了,下面没有直接给出可以复制的代码,而是图片的形式,希望读者自己动手写,在写

的过程中思考每一行代码。

 

下面的函数是利用牛顿插值法输入是x和y(矩阵)一一对应的数值,也就是已知的离散点,和所需要求的插值点的横坐标x

输出的则是与其对应的纵坐标y

写几行代码验证一下,定义x和y矩阵,生成均差表,然后在等距取点,求出插值。

下面是均差表,与定义的均差表格式一样

下图中,实线是已知点直接点与点相连,而空心点是插值点。插值点在实线附近,没有距离特别远的点。