C++用二分法求根.用二分法设计一个通用函数root(),求方程f(x)=0在[a,b]内的一个实根(设f(a)*f(b)
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 12:27:46
![C++用二分法求根.用二分法设计一个通用函数root(),求方程f(x)=0在[a,b]内的一个实根(设f(a)*f(b)](/uploads/image/z/14572115-35-5.jpg?t=C%2B%2B%E7%94%A8%E4%BA%8C%E5%88%86%E6%B3%95%E6%B1%82%E6%A0%B9.%E7%94%A8%E4%BA%8C%E5%88%86%E6%B3%95%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E9%80%9A%E7%94%A8%E5%87%BD%E6%95%B0root%EF%BC%88%EF%BC%89%2C%E6%B1%82%E6%96%B9%E7%A8%8Bf%EF%BC%88x%EF%BC%89%3D0%E5%9C%A8%5Ba%2Cb%5D%E5%86%85%E7%9A%84%E4%B8%80%E4%B8%AA%E5%AE%9E%E6%A0%B9%EF%BC%88%E8%AE%BEf%EF%BC%88a%EF%BC%89%2Af%28b%29)
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;
}