求一C++风格程序,用二分法求f(x)=0的根
答案:1 悬赏:80
解决时间 2021-01-12 05:31
- 提问者网友:暗中人
- 2021-01-11 07:47
求一C++风格程序,用二分法求f(x)=0的根
最佳答案
- 二级知识专家网友:冷風如刀
- 2021-01-11 09:19
#include
#include
typedef double (*F)(double);
double solve(F f, double a, double b, double e = 1e-6)
{
if (fabs(f(a)) < e) return a;
if (fabs(f(b)) < e) return b;
if (f(a) > 0) std::swap(a, b);
while (1) {
double c = (a + b) / 2;
if (fabs(f(c)) < e || c == a || c == b) return c;
if (f(c) < 0) a = c;
else b = c;
}
}
#include
int main()
{
std::cout << solve(sin, 1.5, 6); //输出3.14159
return 0;
}
#include
typedef double (*F)(double);
double solve(F f, double a, double b, double e = 1e-6)
{
if (fabs(f(a)) < e) return a;
if (fabs(f(b)) < e) return b;
if (f(a) > 0) std::swap(a, b);
while (1) {
double c = (a + b) / 2;
if (fabs(f(c)) < e || c == a || c == b) return c;
if (f(c) < 0) a = c;
else b = c;
}
}
#include
int main()
{
std::cout << solve(sin, 1.5, 6); //输出3.14159
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息