首先,dfsane属于BB包,使用时应首先载入library("BB")
nleqslv 属于nleqslve包,同样使用时应载入 library("nleqslve")
DescriptionDerivative-Free Spectral Approach for solving nonlinear systems of equations
求解非线性方程组法
Usagedfsane(par, fn, method=2, control=list(),
quiet=FALSE, alertConvergence=TRUE, ...)
看这个公式很多人都头疼,不知道你们是不是,反正我是,那么就那代码样例说话:
library(BB)
fun
f
f[1]
f[2]
f[3]
f
}
startx
result = dfsane(startx,fun,control=list(maxit=2500,trace = FALSE))
theta = result$par
fun函数就是 fn,公式中第二个,你的非线性方程组的公式比如,在本例中 y = a/(1+exp(bx+c)
在本方程中x,y为已知坐标点,求a,b,c的值
在fun中,参数只为x,此x并非自变量x,而是一个list,也就是向量即你要求的参数值(a,b,c的值)的表示,也即用dfsane的求得的解,x[1]表示a,x[2]表示b,x[3]表示c。