天天看點

Lagrange插值的R語言實作

Lagrange插值是n次多項式插值,其成功地用構造插值基函數的方法解決了求n次多項式插值函數問題。其基本思想是将待求的n次插值多項式改寫為具有承襲性的形式,然後利用插值條件确定多項式的待定系數,以求所出要的插值函數,Lagrange插值簡單易懂,而且插值效果也不錯。

.

Lagrange插值的R語言實作
Lagrange插值的R語言實作
####構造拉格朗日函數#####
##定義變量x為缺失值y對應的x值,yk為已知的所有y值組成的向量,xk為yk向量對應的x值向量
lagrange<-function(x,xk,yk){
  n<-length(xk) #n為列的長度
  lagr<-0
    if(length(xk)!=length(yk))
    stop("the length of input values xk and yk is not equal!")
  if(n<2)
    stop("the length of xk and yk should be bigger than 1")
  for(i in 1:n)
  {
    Li<-1
    for(j in 1:n)
    {
      if(i!=j)
        Li<-Li*(x-xk[j])/(xk[i]-xk[j])
    }
    lagr<-Li*yk[i]+lagr
  }
  return(lagr)
}
           

 關于定位缺失值并進行利用lagrange插補相關内容後續更新

繼續閱讀