登录
首页 » 算法 » 优化一个变量的函数

优化一个变量的函数

于 2022-01-26 发布 文件大小:3.21 kB
0 47
下载积分: 2 下载次数: 1

代码说明:

翻译 maninwest@Codeforge 作者:John D. Cook@CodeProject这里介绍一个算法,优化化带有一个变量的函数而不需要导数。通常,需要导数的方法稳定但是慢,不需要导数的方法快捷但是不稳定。这里实现的这个方法稳定且高效。这个方法开始是Richard Brent 实现的。 给定一个函数  f(x) 和一个区间l [a, b], 该方法是找出函数 f(x) 在 [a, b] 区间的最小值。该方法也可以用于找出最大值。要找出最大值,指向传递原函数的反函数。即 f(x) 的最大值出现在-f(x) 的最小值点。Brent 的方法比较稳定。也很容易使用。用户不需要提供导数函数。该方法为了稳定牺牲了一些效率,但是相比其他稳定的方法如黄金分割法,则更加快捷。使用函数这里给出的代码是一个 C++ 函数和使用此函数的示例项目。要在你自己的项目中使用,只需在 Brent.h.头文件中添加#include 即可。最小化函数的主要输入是一个模板化实参,一个函数对象实现目标函数最小化。目标函数必须使用签名 double operator()(double x)实现 Public 方法。例如,这里是一个用于计算函数 f(x) = -x exp(-x) 的函数对象类。 class foo { public: double operator()(double x) {return -x*exp(-x);} };代码需要函数对象而不是函数的主要原因是,需要在应用中优化的函数,除了函数实参外,还要依赖参数。函数对象可以有很多参数,它们在找到一个变量的结果函数最小值前固定。其他实参是函数需要找到最小值的区间的终点,偏差用于停止, 一个输出参数用

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 数据结构课程设计链表
    本程序是利用链表用C++实现多项式的加减程序微分积分等运算,可以直接使用,运算结果已经经过仿真验证,对于数据结构链表感兴趣的初学者可以看一下,里面几乎涵盖了所有的链表的操作。
    2022-04-14 18:42:58下载
    积分:1
  • 图书管理系统
    资源描述C语言下的可读写文件的图书管理系统                                                                                                                                                                                                                                                                                  
    2022-01-25 22:18:51下载
    积分:1
  • GNjava实现
    这是一个经典的社团划分,采用GN算法思想, 基本上是从昨天开始吧,着手复杂网络的GN算法,整个过程包括从GML文件中提取邻接矩阵数据,GN算法的实现,模块度的计算。 (1)GML文件的读取。做GN的时候首次知道GML(Graph Model Language),GML (Graph Modelling Language): There are many different programs that work with graphs but almost all of them use their own file format. As a consequence, exchanging graphs between different programs is almost impossible. Simple tasks like exchange of data, externally reproducible results or a common benchmark suite are much harder than neccessary. Therefore, we have developed a new file format for the Graphlet system: GML. GML supports attaching arbitrary information to graphs, nodes and edges, and is therefore able to emulate almost every other format. 从上面的英文中我们可以知道,GML是一种文件格式,试图统一大家对图结构的表达形式。这样,会很方便大家的交互,比如程序的利用。我们主要工作是从GM
    2022-02-20 11:14:43下载
    积分:1
  • 飞思卡尔实现PID
    应用背景飞思卡尔单片机,用于稳定参数,在很多程序上都可以使用。我们参加过飞思卡尔智能车大赛,使用的程序,这里的程序是对参加比赛的程序的升级版。稳定性十分的不错关键技术PID算法是一个传统工业上使用的普遍的用法,在稳定性上有十分好的应用,可以实现温度的控制和调节,在速度的控制上也没有任何问题
    2022-01-22 14:33:58下载
    积分:1
  • C 编程示例
    C 编程示例: 这些程序说明各种编程元素的概念,如使用运算符、 循环、 函数、 单人和双人的二维数组,字符串、 文件、 指针等上执行的操作。浏览到你正在寻找,其中每个之一提供输出复杂的简单的 c 程序中的代码。
    2023-06-20 15:55:03下载
    积分:1
  • 用于盲均衡的改进的常十字模,比常十字模具有更好的性能...
    用于盲均衡的改进的常十字模算法,比常十字模算法具有更好的性能-For blind equalization improvement of regular cross-mode algorithm, than the regular cross-mode algorithm has better performance
    2022-03-23 19:13:36下载
    积分:1
  • 心电图 lib
    Ecglib 是自动的心电图的分析算法库,主要用于自动分析静息心电图、 年龄、 性别的可以视为一个诊断的因素以确保诊断的准确性。通过 CSE 心电数据库评价自动心电图分析算法 (Ecglib),以达到更好的效果。 另外 EcglibDemo 是Ecglib库的示例程序。
    2022-06-20 18:42:08下载
    积分:1
  • sift
    这是基于MFC的sift算法,在VC上运行通过,代码注释比较详细,分块比较清晰,通过按键可以生成高斯金字塔,差分金字塔特征点和方向,已经特征点的文档
    2022-04-19 07:31:01下载
    积分:1
  • 基于聚类的医学图像分割
    本程序为M文件,运行环境为matlab, 也可通过matlab转化为C++运行。实现功能:可实现医学图像的自动分割!
    2023-02-14 12:30:04下载
    积分:1
  • BESSEL PROGRAMS IN C/C
    BESSEL PROGRAMS IN C/C-Loaded PROGRAMS IN C/C
    2022-07-24 18:55:10下载
    积分:1
  • 696524资源总数
  • 103971会员总数
  • 70今日下载