我试图解决一组非线性方程式但是卡住了。
0<x1<1 ; x2>0 ; x3>0
library(BB)
f <- function(x) {
x1 <- x[1]
x2 <- x[2]
x3 <- x[3]
F <- rep(NA, 3)
F[1] <- 1-x1^(log(1+1/(x3)^x2))-0.64
F[2] <- x1^(log(1+1/(x3)^x2))-x1^(log(1+(2/x3)^x2))-0.17
F[3] <- x1^(log(1+(2/x3)^x2))-x1^(log(1+(3/x3)^x2))-0.10
return(F)
}
p0 <- c(0.5,2,1)
dfsane(par=p0, fn=f,control=list(maxit=30000))
仅在第一次迭代时遇到错误
&#34;失败:功能评估错误&#34;
任何人都可以帮忙解决错误吗?
答案 0 :(得分:0)
要调试此类错误,您可以打印出在每次函数迭代时正在处理的x
的值,以识别导致函数行为异常的参数。
当我这样做时,我发现以下输入数据存在问题:
x <- c(-1.199934, -2.745093, 3.648077)
f(x)
# [1] NaN NaN NaN
您应该更新您的函数,以便它不会返回NaN
越界数据(或移动到接受函数参数约束的解算器)。