了解scipy.optimize.basinhopping公司

2024-09-27 00:20:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用scipy.optimize.basinhopping公司使函数最小化。我得到的是:

Out[96]: 
                  nfev: 162178
 minimization_failures: 2501
                   fun: 4.4702905615653705
                     x: array([-194.7754468])
               message: ['requested number of basinhopping iterations completed successfully']
                  njev: 44057
                   nit: 2500

但是,我很难理解输出。这些返回参数的含义是什么:

  • nfev

  • 最小化故障

  • njev

  • nit

我想nfev=函数求值的次数,nit应该对应于“迭代次数”。但为什么是尼特!=nfev?在


Tags: 函数message公司scipyout次数arrayoptimize
1条回答
网友
1楼 · 发布于 2024-09-27 00:20:53

一些输出记录在^{}

  • nfev:函数求值的数目
  • njev:雅可比求值数
  • nit:算法的迭代次数

其他选项的文档较少,但是您可以随时查看Github source来理解。minimization_failures表示局部优化器未能收敛的次数(如果montecarlo步骤为局部优化器建议的起始位置离局部最小值太远,则可能会发生这种情况)。在

盆跳算法的迭代次数nit,预计远远少于nfev,函数求值的次数。迭代对应于以下步骤:

  • 通过在当前位置周围随机移动来提出一个新的位置
  • 最小化函数(使用局部优化器)以找到流域最小值
  • 接受或拒绝新的水池。在

在局部极小化过程中会有许多函数求值,因此我们期望nfevnit大得多。在

相关问题 更多 >

    热门问题