-
优化一个变量的函数
翻译 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);}
};代码需要函数对象而不是函数的主要原因是,需要在应用中优化的函数,除了函数实参外,还要依赖参数。函数对象可以有很多参数,它们在找到一个变量的结果函数最小值前固定。其他实参是函数需要找到最小值的区间的终点,偏差用于停止, 一个输出参数用
- 2022-01-26 15:15:42下载
- 积分:1
-
飞思卡尔舵机程序
飞思卡尔xs128芯片,舵机驱动程序,本舵机的型号是SD-5,本代码是可以直接使用的啦!
- 2022-04-22 17:29:15下载
- 积分:1
-
蚁群算法c++代码
为什么这么简单的程序会让蚂蚁干这样复杂的事情?答案是:简单规则的涌现。事实上,每只蚂蚁并不是像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,这样,在蚁群这个集体里,复杂性的行为就会凸现出来。这就是人工生命、复杂性科学解释的规律!
- 2022-03-19 05:34:14下载
- 积分:1
-
AES128源代码实现
AES128源代码实现
- 2022-02-01 22:45:38下载
- 积分:1
-
网站自爬网程序
本项目用来索引网站页面作为静态内容并创建网站地图的列表。如何使用: 只是将该文件添加在您的服务器和调用在浏览器中,它将创建一个页面中包含所有的数据,直到五级深的整个网站中的静态代码
- 2022-03-16 03:43:52下载
- 积分:1
-
一个正二十面体的细分迭代工程,很漂亮,需要glut
一个正二十面体的细分迭代工程,很漂亮,需要glut-an icosahedron is the breakdown of iterative engineering, and very pretty, needs glut
- 2022-07-12 14:02:38下载
- 积分:1
-
高斯法解线性方程组
高斯法解线性方程组-Gaussian method for solving linear equations
- 2022-08-15 17:21:38下载
- 积分:1
-
浙江大学设计大赛,我自己收集的acm2060
浙江大学程序设计大赛ACM2060题我自己收集的-Zhejiang University Design Competition ACM2060 that my own collection
- 2023-08-19 15:15:04下载
- 积分:1
-
用MATLAB编写的绘制稳定运动模型的代码程序,以及前面程序相关的一篇论文。请多指教。...
用MATLAB编写的绘制稳定运动模型的代码程序,以及前面程序相关的一篇论文。请多指教。-Drawing prepared by using MATLAB stable motion model code procedures, as well as in front of a paper related to the proceedings. Please advice.
- 2023-08-18 06:50:04下载
- 积分:1
-
bp网络分类验证
数据来源机器学习数据集,数据经过归一化处理,网络结构为7-7-3的网络。利用5折-交叉验证,做的三类分类代码,分类精度极高。
- 2022-07-07 12:34:16下载
- 积分:1