Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/511: Рейтинг темы: голосов - 511, средняя оценка - 4.75
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340

Метод половинного деления

21.02.2011, 23:15. Показов 100240. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! значит так господа, помогите реализовать этакий метод вот в таком случае:

вводится число и надо вычислить его корень прибегая только к операторам деления и сравнения и вычитания.

вот что я накалякал:

C++
1
2
3
4
5
6
7
8
9
10
11
double a=0, b, c, EPS;
cout <<"ВВЕДИТЕ ЧИСЛО И СЛЕДОМ ПОГРЕШНОСТЬ: "<<endl;
cin >> b >> EPS;
 
do 
{
c = (a+b)/2;
c*c > b ? b = c : a = c;
 while (c >= EPS)
}
cout <<"OTVET: "<<C;
так вот я уже на столько запутался.. что у меня вообще вычисляет не то.. помогите )
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2011, 23:15
Ответы с готовыми решениями:

Нахождения корней уравнения: метод половинного деления (бисекции) или метод хорд
Разработать программу нахождения корней уравнения f(x) =0 на интервале с точностью e = 0,001 (интервал или подобрать самостоятельно). При...

Метод половинного деления
Скажите почему не выводит &quot;c&quot; #include &lt;stdafx.h&gt; #define _USE_MATH_DEFINES #include &lt;cmath&gt; #include &lt;math.h&gt; #include...

Метод половинного деления
Помогите мне! У меня не вычисляет корень вообще #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace...

6
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
21.02.2011, 23:56
а чему b i с ровно?
0
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
21.02.2011, 23:58  [ТС]
name?,
0
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
22.02.2011, 00:16
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
#include <iostream.h>
#include <math.h>
 
 
double f(double x)
{
   тут твоя функцыя
}
 
int main()
{
    double a, b, c,e;
    a = 0;
cin>>b;
cin>>e;
    while (b - a > e){
        c = (a + b) / 2;
        if(f(b) * f(c) < 0)
            a = c;
        else
            b = c;
    }
    cout << (a + b) / 2 << endl;
    return 0;
}
2
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
22.02.2011, 00:35  [ТС]
name?, дело в том что у меня нет функции. у меня есть число например 8. надо с помощью дихотомии найти корень.

8/2 = 4;
4*4 > 8.
->
a=0;
b=4;
c = 4/2 = 2;
2*2 < 4;

a = 2;
b = 4;
c = 6/2 = 3;
3*3 > 8
->
3+2 / 2 = 2.5
2.5*2.5 < 8 или хз больше..я уже запустался..но суть в этом.. именно число.


а твой пример я видел уже много раз и на паскале и на всех языках других.. и еще. нужно написать так чтоб было без всяких Погрешностей EPS. а просто с помощью цикла FOR т.е. по отпределенному количеству итерации(делений)

Добавлено через 5 минут
все кароче..я сам разобрался.. вот кому то если будет интересно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
 
{
     double a, b, c, a1;
     int i;
     a = 0;
     cin >> b;
     a1 = b;
     cin >> i;
     for(int j=0; j < i; j++)
     {
          c = (a+b)/2;
          c * c > a1 ? b = c : a = c;
     }
     cout << c;
     getch();
     return 0;
:D
}
0
 Аватар для name?
201 / 172 / 52
Регистрация: 01.06.2010
Сообщений: 371
22.02.2011, 01:24
Может так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <math.h>
#include <conio.h>
int main()
{
clrscr();
double c,d=0,e;
int a;
cin>>a;
cin>>e;
c=a/2;
do
{
d=0.5*(a/c+c);
if ((d-c>e)|| (c-d>e))
c=d;
else break;
 
}while (d-c<e);
cout<<d;
}
0
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 2
08.12.2013, 23:24
Запускал в Dev-C++
#include <iostream>
using namespace std;
#include <math.h>
float mpd(float x) // functions mpd - "metod polovinnogo deleniya"
{
return (3*cos(2*x+4));
}
int main()
{
setlocale(0, "");
float a,b,e,x; int k=0;
cout<<"1. y=3*cos(2*x+4)\n";
cout<<"Левая граница a=";
cin>>a;
cout<<"Правая граница b=";
cin>>b;
cout<<"Точность e=";
cin>>e;
x=(a+b)/2;
cout<<"Корень уравнения:"<<x;
while(fabs(b-a)>e)
{
if(mpd(a)*mpd(x)<=0) b=x;
else a=x;
x=(a+b)/2;
k++;
cout<<"\nТочность: "<<fabs(b-a)<<" Итерация №="<<k<<" Корень уравнения: "<<x;
}
cout<<"\nКоличество итераций ="<<k<<"\nКорень уравнения: "<<x;
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.12.2013, 23:24
Помогаю со студенческими работами здесь

Метод половинного деления
Метод половинного деления для функции x^2-3*sin(x)=0; Корнями должны быть -1.7 и 0...на промежутке от -2 до -1 работает и находит -1.7.а...

Метод половинного деления
необходимо было написать программу, которая отделяет корни уравнения методом половинного деления с погрешностью 0,0001. первый корень...

Метод половинного деления
Методом половинного деления найти решение следующего нелинейного уравнения с точностью е=0,01; e=0,001; e=0,0001; e=0,00001; e=0,000001. ...

Метод половинного деления
Нужно написать код для решения заданного уравнения методом половинного деления. Получилось так. В реализации метода, видимо, ошибки, но как...

Метод половинного деления
Привет всем:) Помогите, пожалуйста, с программой для решения нелинейного уравнения методом половинного деления. Я почти сделала, но...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru