Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Кубическое уравнение методом биссекции Дано кубическое уравнение x^3 + a*x^2 + b*x + c = 0 имеющие три действительных корня на отрезке (-10; 10). Найти корни уравнения с точностью до 1/1000 методом половинного деления. Проверить... https://www.cyberforum.ru/ cpp-beginners/ thread89276.html C++ Преобразовать символьную запись целого десятичного числа без знака в целое число
Преобразовать символьную запись целого десятичного числа без знака в целое число. В записи исходного числа могут быть пробелы (до и после числа) после числа могут быть и другие записи.
C++ Про возвращение значения 2... если в строке идентификатор,то возвратить ф-ции значение 1=да, 0=нет как индефикатор в общем показать? https://www.cyberforum.ru/ cpp-beginners/ thread89258.html C++ Сортировка последовательности методом поиска максимумов Нужна помощь в решении вот такой задачки : " Сортирование последовательности элементов следующим образом : ищем максимальный элемент последовательности и переносим его в конец последовательности ,... https://www.cyberforum.ru/ cpp-beginners/ thread89242.html
C++ C++ и postgresql под win
Выдает такую вот ошибку build/Debug/MinGW-Windows/main.o: In function `main': C:/Documents and Settings/Dik/Мои документы/NetBeansProjects/test/main.cpp:16: undefined reference to `PQconnectdb'...
C++ Выполнение операций в отдельном потоке https://www.cyberforum.ru/ cpp-beginners/ thread89221.html
Например у меня есть функция. void musik() //Создание потоковой функции { Beep(2000,3000); } Как сделать поток, или подругому, что-бы музыка играла, по ходу программы, а не после.
C++ Сравнение наследников https://www.cyberforum.ru/ cpp-beginners/ thread89215.html
Здравствуйте! А как можно сравнить два наследника, если есть только указатели на базовый класс? У наследников определены ==, !=, >=, <=, >, <, которые в базе также определены, но виртуальны....
C++ среднеарифметическое а1, а2, а3
Привет народ! Очень нужна помощь!!! Даны действительные числа а1, а2, ... , аn. (а1>0). Вычислить до первого отрицательного числа: среднеарифметическое а1, а2, а3. :tender:
C++ Даны целые числа а1, а2, ... , аn Добрый вечер добрые люди. Мне очень нужна ваша помощь. Большое спасибо. Вот задачи: 1. Найти все натуральные числа, не превосходящие N<1000,и делящиеся на каждую из своих цифр. 2. Даны целые... https://www.cyberforum.ru/ cpp-beginners/ thread89208.html C++ Удаление последнего столбца динамической матрицы Здрасти, я все со своими массивами. У меня есть двумерный динамический массив Matrix 6*4. Удаление последнего столбца надо так делать?: delete Matrix; https://www.cyberforum.ru/ cpp-beginners/ thread89194.html
Разложение в ряд. C++
Нужна помощь.Вычисление логарифма по основанию два вещественного числа...дан ряд n(x+1)=x-x^2/2+x^3/3-.....x^n/n - разложение натурального логарифма в ряд....потом из свойства логарифмов...
C++ вывести Наименьшее количество элементов, которое нужно удалить, чтоб осталась возрастающая последовательность https://www.cyberforum.ru/ cpp-beginners/ thread89171.html
Нужно в массиве вывести Наименьшее количество элементов, которое нужно удалить, чтоб осталась возрастающая последовательность
4 / 3 / 1
Регистрация: 18.09.2009
Сообщений: 10
25.01.2010, 15:51 0

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

25.01.2010, 15:51. Показов 4969. Ответов 3
Метки (Все метки)

Ответ

Цитата Сообщение от 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. Инициализируешь входные данные. После работы функции проверяешь флаги и делаешь вывод был ли найден корень и по какому условию найден.

Вернуться к обсуждению:
Кубическое уравнение методом половинного деления C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2010, 15:51
Готовые ответы и решения:

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

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

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

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

3
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 Программа работает...

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