-
优化一个变量的函数
翻译 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
-
语音传输的实验程序
语音传输的实验程序:不同编码方式图形比较画出线性A律CVSD在相同随机错误与突发错误参数下得译码后波形并加以比较。以下实验若未注明均采用该参数设置:幅度:6V 频率:1K 编码位数:不同不同编码方式下 不同的误码率以及相应的传输速率
- 2022-03-17 10:01:36下载
- 积分:1
-
buttreworth滤波器源码
内含butterworth、chebyshev、elliptic滤波器,高通低通等各种滤波器源码,C语言编程,简单易懂,可根据自己需要修改,然后移植到各个平台。
- 2022-06-26 10:42:24下载
- 积分:1
-
无和集问题求解算法
无和集问题求解算法-no set of issues and algorithm
- 2023-03-07 10:45:03下载
- 积分:1
-
PID自整定
#如果ARDUINO>;=100
- 2023-06-23 11:35:03下载
- 积分:1
-
常用的矩阵变换C代码
常用的矩阵变换C代码,复矩阵乘法、矩阵的转置、全选主元高斯-约当法、对称正定矩阵的求逆、
求行列式值的全选主元高斯消去法、矩阵的三角分解、一般实矩阵的QR分解,奇异值分解
- 2023-01-12 08:45:04下载
- 积分:1
-
Apriori Algo Matlab
vvvapriori算法MatlabApriori算法MatlabApriori算法MatlabApriori算法MatlabApriori算法MatlabApriori算法MatlabApriori算法MatlabApriori算法Matlab
- 2022-01-26 07:16:31下载
- 积分:1
-
著名的seismiclab的代码 是地震学研究人员必备的工具
著名的seismiclab的代码 是地震学研究人员必备的工具-famous seismiclab code seismic study is an essential tool for officers
- 2022-12-01 03:05:04下载
- 积分:1
-
顺序表的实现
表中的基本操作的实现(初始化、插入、删除、求表长、按值查找、按位置查找)
- 2022-02-04 01:49:57下载
- 积分:1
-
KNN最邻近分类算法
改代码是由python编写的,实现了机器学习中最常用的、最简单的最邻近算法(KNN)。其中,附带有验证用的数据集,可以验证算法的效果。
- 2022-07-09 18:04:11下载
- 积分:1