首先,dfsane属于BB包,使用时应首先载入library("BB")
nleqslv 属于nleqslve包,同样使用时应载入 library("nleqslve")
Description
Derivative-Free Spectral Approach for solving nonlinear systems of equations
求解非线性方程组法
Usage
dfsane(par, fn, method=2, control=list(),
quiet=FALSE, alertConvergence=TRUE, ...) 看这个公式很多人都头疼,不知道你们是不是,反正我是,那么就那代码样例说话:
library(BB)
fun
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。
由于0 = a/(1+exp(bx+c) - y, 所以即求 f = a/(1+exp(bx+c) - y由于要求a,b,c,在原方程中x,y已知,带入。
求解三个参数最少需要三个方程组联立,f[1],f[2],f[3]即为三个数组联立,用dfsane求解,求得的解即为要求a,b,c的值</