![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 09.12.2011
Сообщений: 2
|
![]()
Код:
double f(double x){ return pow(x,5)-x-0.2; } double precide(double a,double b,double e){ double x; while((b-a)>=e){ x=(a+b)/2; if (f(x)*f(a)>0.0) a=x; else if (f(x)==0.0) return x; else b=x; } } int main(int argc, char* argv[]) { double y,x,a(1.0),b(1.1),e(1e-5); while((b-a)>=e){ x=(a+b)/2; if (f(x)*f(a)>0.0) a=x; else if (f(x)==0.0) break; else b=x; } cout<<x; y=precide(1.0,1.1,1e-5); cout<<y; system("pause"); return 0; } У меня есть функция precide которая должна искать корень функции на интервале. Проблема в том что функция зацикливается. Хотя код функции в main работает нормально. Не могу понять почему. За ранее спасибо за помощь. (Извенити за грамматику, в руском не силён =( ) Последний раз редактировалось relyativus; 09.12.2011 в 21:05. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 09.12.2011
Сообщений: 2
|
![]()
Заработало! в строчке else if (f(x)==0.0) return x; вместо return x написал break. а конце функции поставил return x. но все равно не пойму почему не работало
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод деления пополам Си++ | nikozavr | Общие вопросы C/C++ | 10 | 12.02.2011 11:36 |
Метод деления отрезка пополам | Витяака | Помощь студентам | 2 | 23.12.2010 11:42 |
Найти корни заданного уравнения методом Золотого сечения, Фибоначи и деления отрезка пополам. Сравнить эф | Nik0919 | Помощь студентам | 2 | 16.02.2010 19:14 |
Метод деления отрезка пополам Delphi | lordve | Помощь студентам | 0 | 06.12.2009 23:57 |
Вычисление корня уравнения методом деления отрезка пополам | Absent | Помощь студентам | 12 | 25.11.2007 17:54 |