满意答案
vwamuoor8000
推荐于 2018.04.24
#include
#include
typedef double (*F)(double);
/* @brief 二分法求解函数
* @param[in] f 求解的函数
* @param[in] a, b 求解的区间端点
* @param[in] 吵盯e 精度
* @pre f(a)*f(b)<=0且f在该闭区间上连续
* @return 方程液枝的解 */
double solve(F f, double 升埋和a, double b, double e = 1e-6)
{
if (fabs(f(a))
if (fabs(f(b))
if (f(a) > 0) std::swap(a, b);
while (1) {
double c = (a + b) / 2;
if (fabs(f(c))
if (f(c)
else b = c;
}
}
#include
int main()
{
std::cout <
return 0;
}
02分享举报