R_:对参数总和有约束的 NL

R_: nls with constraints on a sum of parameters

提问人:Samuel Charberet 提问时间:8/16/2023 最后编辑:Samuel Charberet 更新时间:8/16/2023 访问量:28

问:

我正在尝试使用 minpack.lm 包将非线性模型拟合到数据中,并约束两个参数的总和。这里 , 和 是我想要优化的约束,因此是 log(A_b + A_s) 和 log(1 - (A_b + A_s)) 函数。A_b+A_s<1A_b>0A_s>0k>0

我试图重现这里给出的例子。

但是,nlsLM 会抛出一个错误,我怀疑这是因为它无法对参数的总和进行约束,而不是仅对参数值进行约束。

library(minpack.lm)
data <- data.frame(x = c(0.63, 0.67, 1.08, 1.37, 1.17, 1.34, 1.33, 1.48, 1.40, 1.58, 1.02, 1.48, 0.90, 0.55, 0.90), y = c(0.58, 0.61, 0.50, 0.51, 0.50, 0.47, 0.49, 0.51, 0.47, 0.48, 0.53, 0.43, 0.57, 0.68, 0.49))

n <- nrow(data)
mydata0 <- rbind(data, 0 * data[1:2,])

nlsLM(y ~ c(A_b + (A_s * k / x[1:n]) * log((x[1:n] + k) / k) ,
            log(A_b + A_s),
            log(1 - (A_b + A_s))),
      mydata0,
      start = list(A_b = 0.5, A_s = 0.5, k = 1))
优化 NLS

评论

0赞 Armali 8/17/2023
nlsLM 抛出一个错误 - 哪个错误?

答: 暂无答案