Lagrange插值是一种常用的数值插值方法,用于根据给定的离散数据点,构造一个多项式函数来逼近这些数据点。在R语言中,我们可以使用以下代码实现Lagrange插值。
首先,我们需要定义一个函数来计算Lagrange插值多项式的权重。以下是该函数的代码实现:
lagrange_weights <- function(x, k, n) {
w <- rep(1, n+1)
for (j in 1:n) {
for (i in 1:n) {
if (i != j) {
w[j] <- w[j] * (x[k] - x[i]) / (x[j] - x[i])
}
}
}
return(w)
}
接下来,我们可以编写一个函数来执行Lagrange插值。该函数接受两个参数:x和y,分别表示给定数据点的x坐标和y坐标。以下是该函数的代码实现:
lagrange_interpolation <- function(x, y) {
n <- length(x) - 1
f <- function(x_interp) {
interp_value <- 0
for (k in 1:(n+1)) {
weights <- lagrange_weights(x, k, n)