我用R语言建立了一个高斯拟合的nls模型,代码如下:
x <- 1:length(i) #建立x
a0 <- max(i) #a的初始值
b0 <- length(i)/2 #b的初始值,根据图像可知,b的初始值在数据的中心位置
c0 <- length(i)/4 #c的初始值
fit1 <- nls(i ~ a*exp(-((x-b)/c)^2),start=list(a=a0,b=b0,c=c0))
fit1
Nonlinear regression model
model: i ~ a * exp(-((x - b)/c)^2)
data: parent.frame()
a b c
14364.88 226.88 77.98
residual sum-of-squares: 62308476
Number of iterations to convergence: 4
Achieved convergence tolerance: 8.636e-06
我发现a,b,c在fit1$m$getpars中,但到此步骤时不知道如何精确提取出a,b,c
通过类似fit1$a这样的指令精确提取出a,b,c参数
使用类似如下方式获取参数值:
k<-ml$m$getPars()[[1]]
Vm<-ml$m$getPars()[[2]]
print(paste('k=',k))
print(paste('Vm=',Vm))
如有帮助请点采纳。
你好,可以使用coef函数来提取你的系数a、b、c
abc<-coef(fit1)
然后abc里面含有三个数分别代表你需要的系数a、b、c