Решение уравнений методом хорд на C++

Уравнение вида aX^3+bX^2+cX+d=0 решается на C++ так:

#include <iostream>
#include <cmath>
 
double func(double x)
{
    return pow(x, 3) - 2 * pow(x, 2) - 6 * x - 1;
}
 
double find(double infinum, double supremum, double epsilon)
{
    while (fabs(supremum - infinum) > epsilon)
    {
        infinum = supremum - (supremum - infinum) * func(supremum) / (func(
                supremum) - func(infinum));
        supremum = infinum - (infinum - supremum) * func(infinum) / (func(
                infinum) - func(supremum));
    }
 
    return supremum;
}
 
int main()
{
    double a = -5, b = 5;
    std::cout << find(a, b, 0.0001) << std::endl;
    return 0;
}



Просмотров: 4959
13.11.2015, 13:24 -

Категория: Статьи » Программирование » C++