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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
tesler
 Аватар для tesler
3 / 3 / 0
Регистрация: 08.04.2011
Сообщений: 197
#1

Метод деления пополам - C++

01.03.2012, 23:49. Просмотров 2030. Ответов 3
Метки нет (Все метки)

плиз!!!подскажите!!!
нам дана функция х*х-2=0,мы знаем отрезок на котором будем искать иксы[0,3], эпселон=10 в минус шестой степени,будем искать иксы методом деления пополам!получаю ответ, но не такой!точно не знаю ответ, но знаю, что он состоит из единиц и четверок(четверки там точно присутствуют)
посмотрите может, что не так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# include <iostream>
# include <windows.h>
# include <conio.h>
# include <stdlib.h>
# include <stdio.h>
# include <math.h>
# include <cmath>
 
using namespace std;
 
float f(float x)
{
    return  x*x-2;
}
 
 
 
float n(float a, float b)
{   float E;
    E=0,0000001;
    while ((b-a) > E)
    { 
      float x=(a+b)/2;
      if (f(x)*f(a) < 0)
          b=x;
      else a=x;
      return (a+b)/2;
    }
    _getch();
}
 
int main()
{
  SetConsoleOutputCP(1251);
  cout<<n(0,3);
  _getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2012, 23:49     Метод деления пополам
Посмотрите здесь:

метод деления пополам вроде C++
C++ метод деления пополам
C++ метод деления интервала пополам
C++ Поиск методом деления пополам.
C++ Бинарный поиск деления пополам
C++ Поиск максимального елемента массива , используя метод деления пополам
Поиск максимального елемента ,методом деления пополам C++
C++ Визуальное программирование. Метод деления отрезка пополам
C++ Метод деления отрезка пополам
C++ Поиск экстремума методом деления отрезка пополам
C++ Минимум Функции (метод деления отрезка пополам)
Решение нелинейных уравнений методом деления пополам C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Whiteha
Программист
33 / 33 / 4
Регистрация: 08.07.2011
Сообщений: 190
Записей в блоге: 1
02.03.2012, 00:42     Метод деления пополам #2
Вроде так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
long double metdih()
{
    long double a(0), b(0), d(0), x(0);
    int N(1);
    cout << "Метод половинного деления (метод дихотомии):" << endl;
    cout << "a = "; cin >> a;
    cout << "b = "; cin >> b;
    cout << "Точность: "; cin >> d;
    do
    {
        x = (a + b) / 2.;
        if (f(a) * f(x) < 0)
        {
            b = x;
        }
        else if (f(x) * f(b) < 0)
        {
            a = x;
        }
        else if ((f(x) * f(b) == 0) && (f(x) * f(a) == 0))
        {
            cout << "Корень x = " << x << endl;
            break;
        }
        else
        {
            cout << "В указанном интервале корней нет, или больше одного." << endl;
            break;
        }
        cout << "N = " << N << "  x = " << x << endl;
        N++;
    }
    while (fabs(a - b) > d);
    return x;
}
tesler
 Аватар для tesler
3 / 3 / 0
Регистрация: 08.04.2011
Сообщений: 197
15.03.2012, 23:35  [ТС]     Метод деления пополам #3
а почему он до бесконечности работает...что то не так в цикле...
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
15.03.2012, 23:47     Метод деления пополам #4
Для функций вообще используют тернарный поиск, напишите нормально входные данные, из первого поста ничего не понять. (то есть напишите, какие переменные даны, что за функция (возрастающая, спадающая вообще не понятно), что надо найти)
Yandex
Объявления
15.03.2012, 23:47     Метод деления пополам
Ответ Создать тему
Опции темы

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