参考资料:【上海交大】最优化方法 18讲视频教程
二分法算法
例题
例题代码
#include <iostream>
// C++默认小数为double类型,为避免类型转换麻烦,故将x定义为double类型
double f(double x) {
return (8*x*x*x - 2*x*x - 7*x + 3);
}
// 函数名即为函数首地址,故要以指针类型传入
/*!
* 实现二分查找
* @param f 需要优化的函数
* @param a 优化区间下界
* @param b 优化区间上界
* @param epsilon 最终所得区间长度最大值
* @return
*/
double dichotomous_search(double(*f)(double), double a, double b, double epsilon) {
double c, x1, x2, interval, precise;