如何拟合指数曲线,如r中的a*b^t?
试一试如何拟合指数曲线,如r中的a*b^t?,r,R,试一试 nls根据您的知识/经验,每个参数都需要一个良好的起点。根据方程式,两者都应大于零。t=1的值是否始终可用?如果是,则将此值用于a。取第二个并计算(不适合)b,然后使用它。如果非线性拟合从错误的位置开始,则可能会失败(或仅找到局部最小值)。顺便说一下,A=10,B=10也工作了,并考虑拟合日志(TEXP)而不是T,以避免简单的策略在GET初始中失败。 input <- " t y 1 5.3 2 7.2 3 9.6 4
nls
根据您的知识/经验,每个参数都需要一个良好的起点。根据方程式,两者都应大于零。t=1的值是否始终可用?如果是,则将此值用于a
。取第二个并计算(不适合)b,然后使用它。如果非线性拟合从错误的位置开始,则可能会失败(或仅找到局部最小值)。顺便说一下,A=10,B=10也工作了,并考虑拟合日志(TEXP)而不是T,以避免简单的策略在GET初始中失败。
input <- "
t y
1 5.3
2 7.2
3 9.6
4 12.9
5 17.1
6 23.2"
dat<-read.table(textConnection(input),header=TRUE,sep="")
t<-dat[,1]
y<-dat[,2]
nls(y~(a*b^t))
Error in getInitial.default(func, data, mCall = as.list(match.call(func, :
no 'getInitial' method found for "function" objects
nls(y~(a*b^t),start=c(a=4,b=1))