Найти корень уравнения 5cos^2 x = 2/√x на отрезке [0,1; 5,0] с точностью до 5 * 10^-6 методом половинного деления. - вопрос №2494171

У меня корень не вычисляется
изображение из вопросасама формула

изображение из вопросаточность Эпсилон

#include «stdafx.h»
#include <iostream>
#include <math.h>
using namespace std;

double MethodPolDel(double *a, double *b, double *epsilon) // описание функции
{
double *c = new double; // c — середина отрезка, выделение под памяти под переменную типа double
int count = 0; // объявление счетчика
while (abs(*a — *b) >= *epsilon); // до тех пор пока выполняется условие |a — b| >= epsilon
{
count++; // счетчик инкрементируется
*c = (*a + *b) / 2; // расчет середины отрезка [a,b]
// функция расчета новых границ отрезка с помощью указателей
if ((5*pow(cos(*a),2) — (2 / (sqrt(*a))) * ((5*pow(cos(*c),2) — (2 / (sqrt(*c)) <= 0))))) // для a и c
{
*b = *c; // новый отрезок [a, c]
}
else
{
*a = *c; // новый отрезок [c, b]
}
}
return *c;
}

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(0,"");
int count = 0; // объявление счетчика
cout << «Используя метод половинного деления, найти корень уравнения.\n» << endl;

// выделение участков памяти под переменные с помощью указателей
// [a,b] — отрезок поиска корня уравнения; epsilon — заданная точность
double *a = new double;
double *b = new double;
double *epsilon = new double (0.000005);

try
{
повтор:
cout << «Левая граница отрезка, a = »;
cin >> *a;
cout << «Правая граница отрезка, b = »;
cin >> *b;
cout << «Точность расчетов = »;
cin >> *epsilon;
if(!(a > 0))
{
cout << «Ошибка при вводе!» << endl;
cin.clear(); // Очистка потока
cin.ignore(); // Игнорировние последнего введенного знака
goto повтор;
}
}
catch(...)
{
cout << «Ошибка при вводе!» << endl;
}
double x = MethodPolDel(a, b, epsilon); // вызов функции вычисления корня уравнения
count++; // счетчик инкрементируется
cout << «Корень уравнения x = » << x << endl;
cout.precision(5);
cout << «Количество итераций: » << count << endl;

// освобождение выделенной памяти
delete a;
delete b;
delete epsilon;

system(«pause»);
return 0;
}
15.06.17
0 ответов
Ответов пока нет
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store