К У Р С О В А / ! / метод хорд
.doc#include <iostream>
#include <cmath>
#include <locale.h>
using namespace std;
double f(double x)
{
return pow(x,3)-0.2*pow(x,2)+0.2*x-1.2;
}
double findRoot(double a, double b, double e)
{
while(fabs(f(b)) > e)
{
a = b - ((b - a) * f(b))/(f(b) - f(a));
b = a - ((a - b) * f(a))/(f(a) - f(b));
}
return b;
}
int main()
{
setlocale(LC_ALL,"Russian");
double a, b, e;
a=0.5; b=1.5; e=0.0001;
cout<<"Корень уравнения x="<<findRoot(a, b, e)<<endl;
}
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;
}