C++用二分法求根.用二分法设计一个通用函数root(),求方程f(x)=0在[a,b]内的一个实根(设f(a)*f(b)
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/20 07:25:47
C++用二分法求根.用二分法设计一个通用函数root(),求方程f(x)=0在[a,b]内的一个实根(设f(a)*f(b)
C++用二分法求根.
用二分法设计一个通用函数root(),求方程f(x)=0在[a,b]内的一个实根(设f(a)*f(b)
C++用二分法求根.用二分法设计一个通用函数root(),求方程f(x)=0在[a,b]内的一个实根(设f(a)*f(b)
#include <iostream>
#include <iomanip>
using namespace std;
double func(double x)
{
return (x*x*x - 6*x -3);
}
void root(double a, double b, double e, double *pResult)
{
while ( b - a >= e )
{
*pResult = (a + b) / 2;
if ( func(*pResult) * func(a) < 0 )
{
b = *pResult;
}
else if ( func(*pResult) * func(a) > 0 )
{
a = *pResult;
}
else
{
break;
}
}
}
int main()
{
double e = (double)0.00000001;
double a = (double)2;
double b = (double)3;
double Result;
root(a, b, e, &Result);
cout << setiosflags(ios::fixed);
cout << "所求实根为: " << setprecision(9) << Result << endl;
return 0;
}