我是C的新手。
我试图使用C中的optim。根据“编写R扩展”第5.8节,Nelder方法需要16个参数:
void nmmin(int n, double *xin, double *x, double *Fmin, optimfn fn,
int *fail, double abstol, double intol, void *ex,
double alpha, double beta, double gamma, int trace,
int *fncount, int maxit);
据我理解,与接受函数参数中默认值的R不同,C要求函数的用户提供所有参数。虽然我读了optim页面,但我仍然很难理解其中一些论点的含义,即:
如果有人能告诉我所有论点的描述在哪里,我将不胜感激。
附注:
以下是我弄清楚它们是什么的论点:
以下是Nelder方法的一些具体论点:
发布于 2012-10-07 01:35:54
失败-如果函数失败,则接收true
用户初始化转换公差
前数据传递给优化函数(fn)
α-反射因子
β-收缩和还原因子
γ-扩张因子
接收迭代循环中调用优化函数的次数。
您可以在这里看到如何使用这些参数:
source.html#l00674
例如,intol的用法如下:
convtol = intol * (fabs(f) + intol);
if (trace) Rprintf(" Scaled convergence tolerance is %g\n", convtol);
这里有一些关于Nelder算法的更多细节,使用Pascal代码:
http://books.google.com/books?id=M9hTn3UAheQC&pg=PA173
(计算机的紧凑数值方法:线性代数与函数最小化( John C. Nash) )
https://stackoverflow.com/questions/12765304
复制相似问题