曲线拟合 | 二次B样条拟合曲线
B 样条曲线拟合实例:能平滑化曲线
1. 实例1
为MASS包中mcycle数据集。它测试了一系列模拟的交通车事故中,头部的加速度,以此来评估头盔的性能。times为撞击时间(ms),accel为加速度(g)。首先导入数据,并绘制散点图
(1) 关键函数
# bs() ==== # bs(x, df = NULL, knots = NULL, degree = 3, intercept = FALSE, # Boundary.knots = range(x)) #参数解释: #x:自变量,这里为x #df: 自由度(回归函数中的参数个数),默认为0,由于我们需要截距, # 2.2 节中c中提到的公式减去1,因此自由度为4+3 = 7 #knots:节点的位置,这里为c(15,20,32,40) #degree:q值,默认为3 #其他的参数保持默认即可
然后搭配lm 函数,即可画出样条函数曲线
(2) 代码
# Spline ==== x=mcycle$time y=mcycle$accel plot(x, y, type="p", pch=19, cex=0.5) library(splines) #B = spline(y, n=3*length(y) ) #lines(B$x, B$y, lty=2, col="red") bspl
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。