数值分析-插值法

Posted shensobaolibin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数值分析-插值法相关的知识,希望对你有一定的参考价值。

我们能得到一个函数f在区间[a,b]上某些点的值或者这些点上的高阶导数

我们就能通过插值法去得到一个函数g,g与f是非常相近的

一般来说g分为三类,一类是n次多项式 an*xn + an-1*xn-1 + .......+a0,一类是三角多项式,最后一类是分段n次多项式

 

多项式插值

这个可以说是最简单的插值了

 对于an*xn + an-1*xn-1 + .......+a0,我们有n+1个未知数,我只需要知道n+1个点的函数值就可以解出这n+1个未知数

将解出的值带入即可

 

优点:简单粗暴

缺点:要解n+1个方程,时间复杂度较高,n不好确定,若n过大,容易过拟合,若n过小,容易欠拟合

 

拉格朗日插值

先说一阶多项式

我们有两点式

f(x) = yk*(xk+1 - x) / (xk-xk+1) + yk+1*(x-xk) / (xk+1 - xk

此两点式可以看做? * yk + (1-?) * yk+1

那么自然的在x=xk的时候 ?=0  在x=xk+1的时候?=1

这里的?其实是与x相关的一阶多项式

再说二阶多项式

对于一个二次函数,我们有三个点(xk-1,yk-1) ,(xk,yk) ,(xk+1,yk+1)

我们有lk-1,lk,lk+1

f(x) = lk-1*yk-1 + lk*yk  +  lk+1*yk+1

其中l是与x相关的二次多项式

我们可以把l当作基函数

这样的话就有

x = xk-1 时lk-1 = 1, lk=0, lk+1 = 0

x = xk时   lk-1 = 0, lk=1, lk+1 = 0

x = xk+1时lk-1 = 0, lk=0, lk+1 = 1

那么这个插值基函数是很好求的

因为每个插值函数都有两个零点

对于lk-1来说有零点xk,xk+1

那么lk-1就可以表示为lk-1 = A*(x-xk)*(x-xk+1)

因为x=xk-1时lk-1 = 1

所以A = 1 / ((xk-1 - xk)* (xk-1 - xk+1) )

那么同理lk和lk+1也能求出来了

那我们得到二阶的拉格朗日插值多项式

技术分享图片

 

现在将二阶推广到n阶

得到n接的拉格朗日插值多项式

技术分享图片

技术分享图片

 

优点:算法较为简单

缺点:暂不清楚


以上是关于数值分析-插值法的主要内容,如果未能解决你的问题,请参考以下文章

数值分析----几种常见插值运算

数值分析----几种常见插值运算

《数值分析》-- 插值方法中基础名词概念解释

《数值分析》-- 埃尔米特插值与分段插值

《数值分析》-- 牛顿插值

数值分析Python实现系列—— 拉格朗日插值法