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语言编写牛顿插值公式对缺失值进行插值、牛顿环实验步骤、牛顿下山法的优势等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)