我在R软件中使用nlminb()函数进行优化.

函数接受一个可选参数"GRADIATE",该参数与要优化的目标函数具有相同的参数,并在第一个参数处计算目标的梯度.必须返回一个与参数集长度一样长的向量.

我想知道nlminb()函数使用哪种方法来求目标函数的梯度,如果没有将梯度函数赋给自变量?

我使用了nlminb()函数进行优化,但没有给出"GRADIATE"参数.

推荐答案

正如我所怀疑的,答案是"有限差分",但这并不容易找到.如果深入挖掘,您会发现Port库中的函数DRMNF(对于无界优化:DRMNFB是用于有界优化的类似函数),以及注释here

      SUBROUTINE DRMNF(D, FX, IV, LIV, LV, N, V, X)
C
C  ***  ITERATION DRIVER FOR  DMNF...
C  ***  MINIMIZE GENERAL UNCONSTRAINED OBJECTIVE FUNCTION USING
C  ***  FINITE-DIFFERENCE GRADIENTS AND SECANT HESSIAN APPROXIMATIONS.

here:

C     [...]   INSTEAD OF CALLING CALCG TO OBTAIN THE
C     GRADIENT OF THE OBJECTIVE FUNCTION AT X, DRMNF CALLS DS7GRD,
C     WHICH COMPUTES AN APPROXIMATION TO THE GRADIENT BY FINITE
C     (FORWARD AND CENTRAL) DIFFERENCES USING THE METHOD OF REF. 1.

裁判1号是斯图尔特,G.W.1967."对Davidon极小化方法的修改,以接受导数的差分近似."美国医学会学报14(1):72-83.https://doi.org/10.1145/321371.321377.

R相关问答推荐

在R中,如何将变量(A,B和C)拟合在同一列中,如A和B,以及A和C在同一面板中?

如何在ggplot图中找到第二轴的比例

迭代到DataFrame列并获得成对的值列表(col1->;col2、col2->;col3、col3->;col4等)的正确方法.

如何根据数据帧中的值从该数据帧中提取值?

正在导出默认的RStudio主题,还是设置括号 colored颜色 ?

来自程序包AFEX和amp;的类/函数和NICE_TABLE&冲突

R中的类别比较

ggplot R:X,Y,Z使用固定/等距的X,Y坐标绘制六边形热图

Rmarkdown::Render vs Source()

如何移动点以使它们的打印不重叠

在同一单元格中创建包含整数和百分比的交叉表

是否从列中删除★符号?

将R中对象的CSV数组转换为JSON数组

根据向量对列表元素进行排序

真实世界坐标的逆st_变换

从不同长度的列中随机排序特定数量的元素

按给定要求对向量进行排序

在自定义ggplot2中自动检测离散或连续调色板

长而宽的格式练习

条形图,每组2条