nlsLM& nls问题:“初始参数估计时的奇异梯度矩阵”

时间:2015-06-28 13:34:32

标签: r nls

我在解决非线性方程时遇到问题。 我曾尝试使用 nls nlsLM

鉴于此示例,摘自 stats :: nls

library(minpack.lm)
x <- -(1:100)/10
y <- 100 + 10 * exp(x / 2+40)

我正在尝试解决方程式:

y ~  Const + A * exp(B * x + C)

如果我尝试:

nlmod <- nlsLM(y ~  Const + A * exp(B * x + C),start=list(Const=100,A=10,B=.5,C=40))

我明白了:

Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates

如果尝试删除“C”,请使用:

nlmod <- nlsLM(y ~  Const + A * exp(B * x),start=list(Const=100,A=10,B=.5)); summary(nlmod)

我得到了一个结果......但正如我们从定义中所知,不完美

Formula: y ~ Const + A * exp(B * x)

Parameters:
       Estimate Std. Error t value Pr(>|t|)
Const 1.000e+02  1.444e+17       0        1
A     1.000e+01  3.471e+17       0        1
B     5.000e-01  3.654e+16       0        1

Residual standard error: 7.369e+17 on 97 degrees of freedom

Number of iterations to convergence: 1 
Achieved convergence tolerance: 1.49e-08

我也曾尝试使用 nls ,结果几乎相同:

> nlmod <- nls(y ~  Const + A * exp(B * x+ C),start=list(Const=100,A=10,B=.5,C=40))
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates

> nlmod <- nls(y ~  Const + A * exp(B * x),start=list(Const=100,A=10,B=.5)); summary(nlmod)
Error in nls(y ~ Const + A * exp(B * x), start = list(Const = 100, A = 10,  : 
  singular gradient

感谢您的见解。

0 个答案:

没有答案