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

优化一个变量的函数

于 2022-01-26 发布 文件大小:3.21 kB
0 178
下载积分: 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 个回复

  • 《牛顿差值》
    计算方法《牛顿差值》-calculation method, "Newton margin"
    2022-02-07 00:30:34下载
    积分:1
  • 一款工程FFT的计,包括非常详细的开发文档。 里面有经典的关于复数的。...
    一款工程FFT的计算,包括非常详细的开发文档。 里面有经典的关于复数的算法。-FFT calculation of a project, including the development of very detailed documentation. There are classic on the complex algorithms.
    2022-01-28 08:41:28下载
    积分:1
  • 小游戏贪吃蛇代码
    设计出一个算法,贪吃蛇小游戏怎么做出来的,利用C++语言编写,代码简单,很容易看懂,function [p,ff] = oct3bank(noi);  pi = 3.14159265358979;  Fs = 500000;    %1/(t(2)-t(1));     % Sampling Frequency N = 3;      % Order of analysis filters.  %f=[1.00 1.25 1.60 2.00 2.50 3.15 4.00 5.00 6.300 8.00] ff=[20 25 31.5 40 50 63 80 100 125 160 200 250 315 400 500 630 800 1000 1250 1600 2000 2500 3150 4000 5000 6300 8000 10000 12500 16000] %ff = ((2^(1/3)).^[0:19]);  % Exact center freq.   p = zeros(1,30); % Design filters and compute RMS powers in 1/3-oct. bands
    2022-03-14 23:12:20下载
    积分:1
  • 最小生成树的两种实现
    资源描述最小生成树的两种算法实现,是中国顶尖名校——北京航空航天大学的计算机软件基础(数据结构)课程作业;完成很好,可以给数据结构入门使用
    2023-08-30 11:55:03下载
    积分:1
  • 导线网平差的程序
    资源描述课程作业里边的导线网平差,参考了不少内容,内容较丰富,可以下载作为参考。也可以用于提交作业。提供思路方向。
    2022-03-31 04:23:03下载
    积分:1
  • 基于贝叶斯学习的 RFID 室内定位方的研究
    资源描述本文在比较研究已有室内定位方法的基础上,采用基于接收到信号强度 值(Received Signal Strength Indicator,RSSI)和贝叶斯算法对室内的人员或物 体进行位置估计及跟踪。并对贝叶斯算法进行了有效改进,改进算法具有较 高的定位精度,基本达到了成本与精度的平衡。并通过大量的实验对影响定 位效果的各种因素进行了全面测试分析。 
    2022-01-22 01:44:31下载
    积分:1
  • 动态规划中的三角剖分
    动态规划算法中的三角剖分-dynamic programming algorithm triangulation
    2022-12-16 17:45:04下载
    积分:1
  • 任务状态栏托盘的图标定时刷新
    里面是源代码 能够刷新掉程序非正常关闭时在任务栏托盘留下的图标  
    2022-12-20 00:25:03下载
    积分:1
  • 琪美诺9的统计
    大致想法就是对于一个数abcdefg。。。比他小或等于的有abcdefg 个,其中不包括9的有(大致就是转成9进制, 如果不存在9的话转出来的大小就是小于等于abcdefg有几个十进制的数)a*9^n + b * 9 ^(n-1)....这样。但对于在高位出现过9了,那么低位的数字也就没有意义了,计算的话反而会重复,就在高位的下一位不+就好了 所以比abcdefg小的9的个数就是abcdefg-a*9^n + b * 9 ^(n-1)。。。这样多个。 一个高精度*纯洁的数字 + 高精度的加减操作就好了(因为确认了b >= a)。。 很奇怪大神们的思想都是一开始打表10^n - 9 ^ n什么的这样。。 渣渣的思路一开始就是一级一级往上乘果然跟大神们不是一个思维方式
    2022-12-12 03:00:03下载
    积分:1
  • 用C语言实现大整数相乘问题
    用C语言实现大整数相乘问题-C Language large integer multiplication problems
    2022-05-26 22:27:39下载
    积分:1
  • 696516资源总数
  • 106409会员总数
  • 8今日下载