R nls; nlsModel中的错误:初始参数估计时的奇异梯度矩阵

问题描述

我从R中的nls函数收到一个错误。我搜索了一些类似的问题,但没有解决此问题。例如,我尝试使用库'minpack.lm'中的nlsLM,它也会失败。所以我必须在这里寻求帮助。以下是代码

tt = c(10,30,50,90,180,360,720,1440,2880,4320,8640,12960)
x = c(
  1.53901e-06,1.22765e-06,1.11200e-06,9.25185e-07,8.71809e-07,8.80705e-07,8.36225e-07,7.82849e-07,8.18433e-07,6.04928e-07,3.46944e-07,4.44800e-07
)
y = c(
  3.81639e-06,5.00623e-06,4.62815e-06,5.10631e-06,4.48359e-06,3.30487e-06,2.64879e-06,2.13727e-06,8.02865e-07,1.91487e-06,3.73855e-06,2.32631e-06
)

nt = length(tt)
L0 = 0.005
y0 = 0.000267681

model = function(K,Kd,k1) {
  
  eta = 5 / (4 * Kd + 40)
  eta1 = 1 - eta
  eta1_seq = eta1 ^ c(0:(nt - 1))
  Lt = L0 * eta * cumsum(eta1_seq)
  
  b = K * x - K * Lt + 1
  L = (-b + sqrt(b ^ 2.0 + 4 * K * Lt)) / (2 * K)
  
  cx = x * K * L / (K * L + 1)
  qx = Kd * cx
  
  q1 = y0 * (1 - k1 * sqrt(tt))
  
  y = qx + q1
  
  return(y)
  
}

fit <- nls(
  y ~ model(K,k1),start = list(K = 1e+15,Kd = 10,k1 = 1e-5),lower = c(1e+13,1,1e-10),upper = c(1e+20,200,1e-3),algorithm = "port"
)

在此先感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)