如何拟合指数曲线,如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))