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)
xVN@~DEdc BתvuxBBXz@UPU/h& +tîV&%v33|^Rpw򺿳=7|Ḛ~??;}OU{0L.Nw.NwrK%-X/{ꜚPCK@-]K0F To8R4MD͊4qHNdMؘU|D"`M$q NB4+2glacqBw>l}Mջ&yOBpG Pl>H%F)$1%cI1aGx# (Ybڼ](Ҿ<Wq49O[ 5cYfvېGПq۞Jnp;d@ZWM%Ed5P! ߎYQ짌ɤPK]+?^AӝM%k$YF3q"ovqY A ׮DF]cR孲IsI;:iu#0D11a XbI5(pu{9>glҚūk}!ݚ$IԐ$T&!BjJ9!sJ]%A˭PqMSS &tEZP$Ȳ5f.[unZu*VM7ME>(t#,zmȰ,C.jt-A 0o%{Y<le$

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;
}