Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
1

Кубическое уравнение методом половинного деления

24.01.2010, 23:32. Показов 4885. Ответов 3
Метки нет (Все метки)

Дано кубическое уравнение x^3 + a*x^2 + b*x + c = 0 имеющие три действительных корня на отрезке (-10; 10). Найти корни уравнения с точностью до 1/1000 методом половинного деления. Проверить полученное уравнение корней подставив
a = - 2,52 b= - 27,342 c= 25, 952

С графиком

Язык ТУРБО СИ

Добавлено через 21 минуту
Глухо пока
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2010, 23:32
Ответы с готовыми решениями:

Кубическое уравнение (методом Кардано)
Добрый вечер, помогите пожалуйста, требуется написать код для решения кубического уравнения...

Решение уравнения методом половинного деления и методом итераций
Решить уравнение следующими способами: 1) Метод половинного деления 2) Метод итераций Уравнение:...

Нахождение площади методом половинного деления
Народ подскажите как находить площадь фигуры методом половинного деления, Вот фигура напрвте как...

Решение уравнения методом половинного деления
Здравствуйте! Задание прикрепил скриншотом. Никак не могу сообразить как его сделать. Только...

3
Day
1173 / 983 / 83
Регистрация: 29.10.2009
Сообщений: 1,386
24.01.2010, 23:48 2
Сначала надо исходный отрезок разбить на 3 части, в каждой из которых только один корень
Для этого надо решить уравнение 3* x^2 + 2*a*x + b = 0;
Это ур-е решаем просто, как в школе учили. x1 и x2 - точки максимума и минимума исходной функции
(Нарисуй!)
Получаем массив double mm[4] = { -10, x1, x2, 10 };
for (i=0; i<3; i++) {
// решаем уравнение на отрезке mm[i], mm[i+1]
}
на картинке все будет видно
1
-1 / 9 / 2
Регистрация: 22.01.2010
Сообщений: 67
25.01.2010, 13:45  [ТС] 3
Про написание программы можно подробней немного?
0
4 / 3 / 1
Регистрация: 18.09.2009
Сообщений: 10
25.01.2010, 15:51 4
Цитата Сообщение от Abortmaher007 Посмотреть сообщение
Про написание программы можно подробней немного?
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
void CuttingHalfMethod(Data *data)
        {
            double a = data->a;
            double b = data->b;
            double eps = data->eps;
            double c = 0;
            int n = 0;
            int maxN = data->maxN;
 
            if (f(a) * f(b) < 0)
            {
                while (fabs(a - b) > eps && n < maxN)
                {
                    c = (a + b) / 2;
 
                    if (f(a) * f(c) < 0)
                        b = c;
                    else
                        a = c;
                    n++;
                }
                if (n == maxN)
                    data->isMaxIterDone = true;
                else
                    c = (a + b) / 2;
                data->rez = c;
            }
            else
                data->isCansel = true;
        }
struct Data
{
double a;
double b;
double eps;
double maxN;
bool isMaxIterDone;
bool isCansel;
double rez;
};
Здесь a b это границы интервала на котором должен быть корень.
eps это погрешность.
maxN максимально возможное число итераций (на случай бесконечного цикла);
isMaxIterDone флаг было ли достигнуто maxN (т.е. по какому условию был выход из цикла: по погрешности или по итерациям)
isCansel флаг того что на интервале нет корней
rez - результат
Тоесть создаешь структуру Data. Инициализируешь входные данные. После работы функции проверяешь флаги и делаешь вывод был ли найден корень и по какому условию найден.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2010, 15:51

Решение уравнения методом половинного деления
Написать программу, которая решает заданное уравнение численным методом деления пополам. Должен...

Решение уравнения методом половинного деления
sin(ln x) - cos(ln x) + 2ln x интервал значение корня 1.3749

Угадать число методом половинного деления
Загадывается число от 1 до 1000 и компьютер его угадывает согласно подсказкам больше или меньше....

Решение уравнения методом половинного деления
Решение уравнения методом половинного деления. \sqrt{x} - x + 3 = 0 Программа работает...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.