如何使用Bernstein多项式将平滑曲线拟合到R中的数据?
我知道有很多类似的问题,但我需要用伯恩斯坦多项式来解决这个问题 我试过这样的方法:如何使用Bernstein多项式将平滑曲线拟合到R中的数据?,r,smoothing,polynomial-approximations,R,Smoothing,Polynomial Approximations,我知道有很多类似的问题,但我需要用伯恩斯坦多项式来解决这个问题 我试过这样的方法: library(pracma) train <- rnorm(100) test <- rnorm(50) eCDF <- ecdf(train) # squeeze eCDF support between 0 and 1 Fy <- function(y){ b <- max(train) a <- min(train) eCDF((b-a)*y+a) }
library(pracma)
train <- rnorm(100)
test <- rnorm(50)
eCDF <- ecdf(train)
# squeeze eCDF support between 0 and 1
Fy <- function(y){
b <- max(train)
a <- min(train)
eCDF((b-a)*y+a)
}
m <- min(test)
M <- max(test)
# squeeze points between 0 and 1
x_to_y <- function(x) return ((x-m)/(M-m))
# polynomial order
k = 10
x <- x_to_y(test)
# bernstein Args: function to be approximated, order, points to estimates
y <- bernstein(Fy,k, x)
plot(x, y)
库(pracma)
试着创建一个可复制的例子,这样你就更有可能得到别人的帮助。现在应该没事了,谢谢。我不知道你在期待什么。如果键入绘图(x,Fy(x))
然后键入行(x,y)
,您可以清楚地看到bernstein()
确实适合您的数据点。也许你期望函数也能返回Bernstein多项式的系数。可以考虑添加此功能,但目前没有。
lo <- loess(y~x)
plot(x,y)
lines(predict(lo), col='red', lwd=2)