我试图将第一个零级动力学曲线拟合到一些数据,当我绘制数据并向模型添加一些初始参数时,我得到了非常好的视觉拟合,但是当我运行并且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
。
关于r - 初始参数估计时的 nls 奇异梯度矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486498/