在R语言中使用多元非线性回归(nls函数)时,经常会遇到“Error in nls 循环次数超过了50这个最大值”问题。
主要原因在于nls中默认的最大迭代次数为50,此时,只需使用nls.control
修改最大迭代次数即可。
比如将最大迭代次数修改为1000:
nlc <- nls.control(maxiter = 1000)
m1 <- nls(y ~ a * x1 ^ b * x2 ^ c,
control = nlc,
start = list(a = 1, b = 1, c = 1),
trace = T)