lar<-function(a,b,x,fun){
w1<-1
s<-0
if(length(a)!=length(b)) m<-c("有关插值节点的变量输入错误,请检查节点处函数值是否对应");m
else {
for(i in 1:length(a)){
w1<- w1*(x-a)
}
for(j in 1:length(a)){
p<-a[j]-a[-j]
u<-prod(p)
t<-fun(a[j])
q<-w1*t/(u*(x-a[j])
s<-s+q
j=j+1
s
}
}
}
a<-c(0.4,0.5,0.7,0.8,3.2)
b<-c(0.4,1.2,0.6,0.7,0.8)
fun<-function(x) log(x)
lar(a,b,2,fun)
整个程序是想实现拉格朗日插值算法,红色字体是预计能运算(Xi-X0 )…(Xi-Xi-1 )(Xi-Xi+1 )…(Xi-Xn )
并且在与Yi,W1做乘积后累加,所以我使用了for循环,但是出现了很大偏差
Error: object 's' not found
> j=j+1
> s
恳请朋友们帮着检查错误!
any suggestion will highly be appreciated. thanks in advance