[英]How to fit a smooth curve on a plot with very few points in R
由于您想拟合二次方,因此可以按以下方式获得所需的结果。 假设二次函数为
f(x) = a*x^2 + b*x + c
那么我们知道
a+b+c = 60
4a+2b+c = 46
9a+3b+c = 46
通过将f(1),f(2),f(3)
等同于points[1:3]
。 由于对称性,我们可以忽略points]
的第四个元素。 a,b,c
是一组线性方程A %*% x = points
。 因此,如下构建矩阵A
A <- matrix(c(1,1,1,4,2,1,9,3,1),nrow=3,byrow=TRUE)
然后求解线性方程:
pcoef <- solve(A,points[1:3])
现在获取您想要的图形
f <- function(x,pcoef) pcoef[1]*x^2 + pcoef[2]*x + pcoef[3]
g <- function(x) f(x,pcoef)
plot(points, ylim=c(40,60), pch = 20, col = 2, cex = 2)
curve(g,from=1,to=4,add=TRUE, col="blue")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.