lagrange 補間式



library(dplyr)

data=data.frame(num=1:20,y=c(0.20, 0.10, 0.49, 0.26, 0.92, 0.95, 0.18, 0.19, 0.44, 0.79, 0.61, 0.41, 0.49, 0.34, 0.62, 0.99, 0.38, 0.22,0.71,0.40),x1=c(84,87,86,85,82,87,92,94,88,84.9,78,90,88,87,82,84,86,83,85.2,82),x2=c(61,55.5,57,57,50,50,66.5,65,60.5,49.5,49.5,61,59.5,58.4,53.5,54,60,58.8,54,56),x3=c(24.5,24,23,22.5,22,24,25,26,25,24,23,21,26,25.5,24,23,24,24,24,22)+50)

data=data%>%group_by(x2)%>%summarise(y=mean(y))

Y=data$y[1:2]*100;X=data$x2[1:2]

L=function(s){

L_f=function(J){

x_vec=X[-J];xj=X[J]

return(prod((s-x_vec)/(xj-x_vec)))

}

vec=c()

for(i in 1:length(X)){

vec=c(vec,Y[i]*L_f(i))

}

return(sum(vec))

}


samples=seq(min(X),max(X),0.1)

pre=c()

for(i in 1:length(samples)){

pre=c(pre,L(samples[i]))

}

plot(samples,pre)