nls 初始参数估计的奇异梯度矩阵
nls singular gradient matrix at initial parameter estimates
我正在尝试将第一个零级动力学曲线拟合到某些数据,当我绘制数据并将一些初始参数添加到模型时,我得到了非常好的视觉拟合但是当我 运行 nls
我收到错误:
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
我试过这些参数但没有成功,所以我根据模型模拟了一些数据,但我仍然得到同样的错误。任何可能出错的建议:
t <- 1:50
CrStart <- 850
CsStart <- 1100
KrStart <- 0.27
KsStart <- 0.0065
y3 <- runif(1,825,875)*(1 - exp(-runif(1,0.25,0.3)*t)) + runif(1,1050,1150)*runif(1,0.00625,0.00675)*t+runif(50,0,100)
plot(t,y3)
m <- nls (y3~Cr*(1 - exp(-Kr*t)) + Cs*Ks*t, start=list(Cr=CrStart,Cs=CsStart,Kr=KrStart,Ks=KsStart))
你的问题是参数Cs
和Ks
混淆了;您的模型中有太多参数。 Cs
和 Ks
的组合有无数种适合模型。
解决办法是把Cs*Ks
改成K
,改成K
。然后K = Cs*Ks
。
我正在尝试将第一个零级动力学曲线拟合到某些数据,当我绘制数据并将一些初始参数添加到模型时,我得到了非常好的视觉拟合但是当我 运行 nls
我收到错误:
Error in nlsModel(formula, mf, start, wts) : singular gradient matrix at initial parameter estimates
我试过这些参数但没有成功,所以我根据模型模拟了一些数据,但我仍然得到同样的错误。任何可能出错的建议:
t <- 1:50
CrStart <- 850
CsStart <- 1100
KrStart <- 0.27
KsStart <- 0.0065
y3 <- runif(1,825,875)*(1 - exp(-runif(1,0.25,0.3)*t)) + runif(1,1050,1150)*runif(1,0.00625,0.00675)*t+runif(50,0,100)
plot(t,y3)
m <- nls (y3~Cr*(1 - exp(-Kr*t)) + Cs*Ks*t, start=list(Cr=CrStart,Cs=CsStart,Kr=KrStart,Ks=KsStart))
你的问题是参数Cs
和Ks
混淆了;您的模型中有太多参数。 Cs
和 Ks
的组合有无数种适合模型。
解决办法是把Cs*Ks
改成K
,改成K
。然后K = Cs*Ks
。