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

Нахождение корня уравнения методом деления отрезка пополам - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.71
AnDrOs96
22 / 22 / 3
Регистрация: 11.09.2013
Сообщений: 186
29.10.2013, 18:50     Нахождение корня уравнения методом деления отрезка пополам #1
Нахождение корня уравнения методом деления отрезка пополам
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2013, 18:50     Нахождение корня уравнения методом деления отрезка пополам
Посмотрите здесь:

Методом деления отрезка пополам и методом итераций найти прибли-женное значение корня уравнения C++
C++ Поиск методом деления пополам.
C++ Описать рекурсивную функцию, которая методом деления отрезка пополам находит корень уравнения
C++ Нахождение корня методом деления отрезка пополам
Нелинейное уравнение: методы деления отрезка пополам и касательных C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
29.10.2013, 19:03     Нахождение корня уравнения методом деления отрезка пополам #2
Цитата Сообщение от AnDrOs96 Посмотреть сообщение
Нахождение корня уравнения методом деления отрезка пополам
Создавайте убывающий цикл, в нем проверяйте корень на нахождение его в половинах отрезка и режьте дальше=)
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
29.10.2013, 19:21     Нахождение корня уравнения методом деления отрезка пополам #3
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
38
39
40
41
// Lab_Rab7_dihotomia.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
double func(double x)
{
    return pow(x,3.0)-0.2*x*x+0.5*x-1;
}
int main()
{
    setlocale(LC_ALL,"Russian");
    const double eps=0.000001;
    double a,b,t,f1,f2,x;
    cout <<"Введите отрезок где предположительно расположен корень уравнения!";
    cout <<"\nВведите a= ";cin >>a;
    cout <<"Введите b= ";cin >>b;
    do
    {
    f1=func(a);
    t=(a+b)/2.0;
    f2=func(t);
    if (f1*f2<=0) b=t;
    else a=t;
    }
    while (fabs(b-a)>eps);
    x=(a+b)/2.0;
    f1=func(x);
    if (fabs(f1)<=0.000001)
    {
       cout <<"\nКорень уравнения с погрешностью ";cout<<fixed<<eps;cout<<", X= ";cout<<x;
       cout <<"\nЗначение функции F(X)= "<< f1;
    }
    else cout <<"На данном отрезке уравнение корней не имеет!";
    getchar();
    getchar();
    return 0;
}
отрезок должен содержать корень! Ну а в остальном думаю разберетесь...
Zig_Stas
8 / 8 / 1
Регистрация: 26.10.2013
Сообщений: 55
29.10.2013, 19:40     Нахождение корня уравнения методом деления отрезка пополам #4
Цитата Сообщение от Alex_Skripa Посмотреть сообщение
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
38
39
40
41
// Lab_Rab7_dihotomia.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
double func(double x)
{
    return pow(x,3.0)-0.2*x*x+0.5*x-1;
}
int main()
{
    setlocale(LC_ALL,"Russian");
    const double eps=0.000001;
    double a,b,t,f1,f2,x;
    cout <<"Введите отрезок где предположительно расположен корень уравнения!";
    cout <<"\nВведите a= ";cin >>a;
    cout <<"Введите b= ";cin >>b;
    do
    {
    f1=func(a);
    t=(a+b)/2.0;
    f2=func(t);
    if (f1*f2<=0) b=t;
    else a=t;
    }
    while (fabs(b-a)>eps);
    x=(a+b)/2.0;
    f1=func(x);
    if (fabs(f1)<=0.000001)
    {
       cout <<"\nКорень уравнения с погрешностью ";cout<<fixed<<eps;cout<<", X= ";cout<<x;
       cout <<"\nЗначение функции F(X)= "<< f1;
    }
    else cout <<"На данном отрезке уравнение корней не имеет!";
    getchar();
    getchar();
    return 0;
}
отрезок должен содержать корень! Ну а в остальном думаю разберетесь...
Прежде чем создавать тему, попробуйте поискать ее на форуме.
Метод деления отрезка пополам

Добавлено через 3 минуты
Цитата Сообщение от Alex_Skripa Посмотреть сообщение
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
38
39
40
41
// Lab_Rab7_dihotomia.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
double func(double x)
{
    return pow(x,3.0)-0.2*x*x+0.5*x-1;
}
int main()
{
    setlocale(LC_ALL,"Russian");
    const double eps=0.000001;
    double a,b,t,f1,f2,x;
    cout <<"Введите отрезок где предположительно расположен корень уравнения!";
    cout <<"\nВведите a= ";cin >>a;
    cout <<"Введите b= ";cin >>b;
    do
    {
    f1=func(a);
    t=(a+b)/2.0;
    f2=func(t);
    if (f1*f2<=0) b=t;
    else a=t;
    }
    while (fabs(b-a)>eps);
    x=(a+b)/2.0;
    f1=func(x);
    if (fabs(f1)<=0.000001)
    {
       cout <<"\nКорень уравнения с погрешностью ";cout<<fixed<<eps;cout<<", X= ";cout<<x;
       cout <<"\nЗначение функции F(X)= "<< f1;
    }
    else cout <<"На данном отрезке уравнение корней не имеет!";
    getchar();
    getchar();
    return 0;
}
отрезок должен содержать корень! Ну а в остальном думаю разберетесь...
А собственно, в чем проблема программы то? Он же вроде выводит все, что нужно. Если нет корня, то выводит, что его нет. Если есть, то его значение.
Alex_Skripa
17 / 17 / 1
Регистрация: 16.09.2013
Сообщений: 126
29.10.2013, 19:42     Нахождение корня уравнения методом деления отрезка пополам #5
собственно ни в чем лишнего написал... а так прога норм пашет сам писал...
и я вкурсе что такая тема есть ну уж человек написал почему бы не поделиться) все таки есть готовая прога скинуть не проблема)
Vityan0790
Сообщений: n/a
10.12.2013, 23:50     Нахождение корня уравнения методом деления отрезка пополам #6
Народ, помогите пожалуйста
Найти корень уравнения Sin (x) = 0,5 методом деления отрезка пополам.
Yandex
Объявления
10.12.2013, 23:50     Нахождение корня уравнения методом деления отрезка пополам
Ответ Создать тему
Опции темы

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