如何使用R语言编写牛顿插值公式对缺失值进行插值

如何使用R语言编写牛顿插值公式对缺失值进行插值,第1张

LagrangePolynomial <- function(x,y) {

  len = length(x)

  if(len != length(y))

    stop("length not equal!")

   

  if(len < 2)

    stop("dim size must more than 1")

   

  #pretreat data abd alloc memery

  xx <- paste("(","a -",x,")")

  m <- c(rep(0,len))

   

  #combin express

  for(i in 1:len) {

    td <- 1

    tm <- "1"

    for(j in 1:len) {

      if(i != j) {

        td <- td(x[i] - x[j])

        tm <- paste(tm,"",xx[j])

      }

    }

    tm <- paste(tm,"/",td)

    m[i]<-tm #m[i] <- parse(text=tm)

  }

   

  #combin the exrpession

  m <- paste(m,"",y)

  r <- paste(m,collapse="+")

   

  #combin the function

  fbody <- paste("{ return(",r,")}")

  f <- function(a) {}

   

  #fill the function's body

  body(f) <- parse(text=fbody)

   

  return(f)

}

这是拉格朗日多项式插值算法  你参考下吧

牛顿环实验步骤:

接通钠光源,预热5分钟后,使读数显微镜物镜对准牛顿环的中央部分。

调节读数显微镜,看到清楚的明暗条纹,且条纹与叉丝无视差。

将牛顿环调整在量程范围内,然后用右手反转副齿轮,将十字叉丝移到右35暗环时再用右手正转,使叉丝开始向左推进,直到纵丝压到第30暗环环纹中央,

继续转动副齿轮,使纵丝经过牛顿环中心暗斑到另一方,对准第10~30环,依次记下相应的标度X10,, X15,, X20,, X25,, X3

算出相应的暗环直径,再计算R20-10, R25-15, R30-20,最后算出R即可。

1牛顿法收敛速度为二阶,对于正定二次函数一步迭代即达最优解。

2牛顿法是局部收敛的,当初始点选择不当时,往往导致不收敛

3牛顿法不是下降算法,当二阶海塞矩阵非正定时,不能保证产生方向是下降方向。

4二阶海塞矩阵必须可逆,否则算法进行困难。

5对函数要求苛刻(二阶连续可微,海塞矩阵可逆),而且运算量大。

以上就是关于如何使用R语言编写牛顿插值公式对缺失值进行插值全部的内容,包括:如何使用R语言编写牛顿插值公式对缺失值进行插值、牛顿环实验步骤、牛顿下山法的优势等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9772479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存