Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

почему не работает??

76K
14 апреля 2012 года
eihmann
6 / / 13.04.2012
Методом деления отрезка пополам и методом итераций найти прибли-женное значение корня уравнения 2x3 + 4x – 1 = 0 на интервале [0, 0.5]. Абсолютная погрешность не превышает . Сравнить методы вычисле-ния.



#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;

int main()
{ int n = 0;
float x, a = 0, b = 0,5, y1, y2, eps = 0.0001, e, r, l;
l = a; r = b;
y1 = 2*a*a*a – 4*a – 1;
y2 = 2*b*b*b – 4*b – 1;
if (y1*y2>0) { cout << "Корней нет" <<endl;
getch();
exit(1) ;
}
do { ++n;
x = (a+b)/2;
y1 = 2*a*a*a – 4*a – 1;
y2 = 2*b*b*b – 4*b – 1;
if (y1*y2>0) a = x;
else b = x;
} while ((b – a)>eps);
x = (a + b)/2;
cout << "Корень уравнения на отрезке "<< l << ", " << r << "равен " << x << " и получен за " << n <<"шагов";
cout << endl;
return 0; }
446
15 апреля 2012 года
Meander
487 / / 04.09.2011
b = 0,5 надо заменить на b = 0.5


 
Код:
if (y1*y2<0)
 {
 cout << "No roots" <<endl;
 getch();
 exit(1) ;
 }
лучше заменить на

 
Код:
if (y1*y2<0)
 {
 cout << "No roots" <<endl;
 getch();
 exit(1) ;
 }
и в конце написать

 
Код:
getch();
 return 0;
446
15 апреля 2012 года
Meander
487 / / 04.09.2011
ошибочка

 
Код:
if (y1*y2>0)
 {
 cout << "No roots" <<endl;
 getch();
 exit(1) ;
 }
заменить на

 
Код:
if (y1*y2<0)
 {
 cout << "No roots" <<endl;
 getch();
 exit(1) ;
 }
извиняюсь.
а что ваш компилятор не сообщает характер ошибки?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог