Форум программистов, компьютерный форум CyberForum.ru

метод половинного деления - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
wanowin
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 27
02.06.2011, 15:18     метод половинного деления #1
дана f(x).
дан отрезок [a,b] на котором расположены положительные корни
дана точность E
могу написать функцию, для нахождения одного корня на этом отрезке, а надо найти все.
использовать нужно метод половинного деления.

вот как выглядит эта функция
C++
1
2
3
4
5
6
7
8
9
10
int g(int a, int b, double E){
int c;
for(b-a>E){
c=(a+b)/2;
if(f(c)*f(a)>0)
a=c;
else b=c;
}
return a;
}


вотс. скажите пожалуйста, как выглядит функция для нахождения всех корней на указанном отрезке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 15:18     метод половинного деления
Посмотрите здесь:

Метод половинного деления. C++
Метод половинного деления C++
Метод половинного деления C++
C++ Метод половинного деления
C++ Метод половинного деления
Нахождения корней уравнения: метод половинного деления (бисекции) или метод хорд C++
C++ Метод половинного деления
C++ Метод половинного деления

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
02.06.2011, 15:58     метод половинного деления #2
Может тебе тут рекурсию использовать. Делишь пополам отрезок находишь корень, потом в зависимости от условия либо продолжаешь в левую часть, либо в правую.

Добавлено через 23 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void g(int a, int b, double E)
{
    int c;
    if(b-a>E)
    {
        c=(a+b)/2;
        if(f(c)*f(a)>0)
        {
            a=c;
            g(a, b, E);
        }
        else 
        {
            b=c;
            g(a, b, E);
        }
        cout << a << " ";
    }
}
wanowin
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 27
02.06.2011, 18:51  [ТС]     метод половинного деления #3
g(a, b, E);


а как вот делать такие рекурсии???
можно не по теме. просто пример плиз.
Yandex
Объявления
02.06.2011, 18:51     метод половинного деления
Ответ Создать тему
Опции темы

Текущее время: 04:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru