提问人:Samuel Charberet 提问时间:8/16/2023 最后编辑:Samuel Charberet 更新时间:8/16/2023 访问量:28
R_:对参数总和有约束的 NL
R_: nls with constraints on a sum of parameters
问:
我正在尝试使用 minpack.lm 包将非线性模型拟合到数据中,并约束两个参数的总和。这里 , 和 是我想要优化的约束,因此是 log(A_b + A_s) 和 log(1 - (A_b + A_s)) 函数。A_b+A_s<1
A_b>0
A_s>0
k>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))
答: 暂无答案
评论