Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.69
chuvaq
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 3
#1

Вычисление корня нелинейного уравнения методом Золотого сечения. - C++

20.06.2009, 23:17. Просмотров 4073. Ответов 4
Метки нет (Все метки)

Всем вечер добрый, нужен алгоритм поиска корня нелинейного уравнения методом Золотого сечения. Никто с подобным не сталкивался? У самого ничего не получается, уже незнаю чего "нашаманить" такого что бы корень находился...

Добавлено через 6 минут 13 секунд
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
int g;
            g=0; // количество интераций
            double t, y1, y2, y;
            t = (1.+sqrt(5.))*0.5;
            double a, b, x0, x1, x2, x;
            a = задаётся с клавиатуры
            b = задаётся с клавиатуры
                        E = погрешность вычисления (эпсилон)
            x1 = b-((b-a)/t);
            x2 = a+((b-a)/t);
            y1 = f(x1); 
            y2 = f(x2);
            
            do
                {
                if(abs(y1)<abs(y2))
                {   b = x2;
                    x2 = x1;
                    y2 = y1;
                    x1 = a+(b-x2);
                    y1 = f(x1);
                }
                else
                {   a = x1;
                    x1 = x2;
                    y1 = y2;
                    x2 = b-(x1-a);
                    y2 = f(x2);
                }
                    g++;
            }   
            while( abs((b-a)) < E );
            x = (a+b)/2;
            y=f(x);
Вроде как находит корень для уравнений типа kx + m , x^3, x^2... Но иногда выдает значение минимума
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2009, 23:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление корня нелинейного уравнения методом Золотого сечения. (C++):

Нахождение корня нелинейного уравнения методом итерации - C++
Прошу помочь разобраться в ошибке. Есть рабочий код с++ для нахождения корня методом итерации уравнения (cosh(0.7*x)-9)/3.5. Но при...

Расчёт корня нелинейного уравнения (Методом итераций) - C++
Всем доброго дня очень нужно записать на С++ программу которая находит корень нелинейного уравнения (методом итераций)..Знаю что уже есть...

Поиск корня нелинейного уравнения простой итерацией, половинным делением, методом Ньютона - C++
Найти корень уравнения sin x = x с погрешностью не более 0.000001 и для каждого метода определить количество шагов алгоритма. ...

Поиск методом золотого сечения - C++
Здравствуйте, вот задался целью написать поиск в большом массиве, с помощью метода золотого сечения: вернуть функция должна номер...

найти методом золотого сечения минимум - C++
просто нужно взять любое линейное уравнение и найти методом золотого сечения минимум. и на с++ всё это записать. не плохо было бы с...

Найти минимум функции методом золотого сечения. - C++
Помогите пожалуйста!... Нужно найти минимум функции у=х*х-sinх методом золотого сечения. в СИ. заранее большое спасибо!

4
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
20.06.2009, 23:34 #2
a = sqrt(25); //A = корень числа 25
0
chuvaq
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 3
20.06.2009, 23:46  [ТС] #3
Цитата Сообщение от Search.. Посмотреть сообщение
a = sqrt(25); //A = корень числа 25
к чему это было сказанно?
0
mirso
525 / 343 / 17
Регистрация: 05.04.2009
Сообщений: 709
21.06.2009, 00:00 #4
chuvaq,
Цитата Сообщение от chuvaq Посмотреть сообщение
Но иногда выдает значение минимума
по условию вообще-то b > a
а значит тернарная операция! a < b ? (....) : (....);
у квадратного уравнения всегда два корня.
И решалось оно в незапамятные времена
с помощью окружности и двух перпендикуляров.
Так что и в ответах тоже должна присутсвовать
тернарная.x1 < x2 ? (...) : (...);
0
chuvaq
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 3
21.06.2009, 12:12  [ТС] #5
Цитата Сообщение от mirso Посмотреть сообщение
chuvaq,

по условию вообще-то b > a
а значит тернарная операция! a < b ? (....) : (....);
у квадратного уравнения всегда два корня.
И решалось оно в незапамятные времена
с помощью окружности и двух перпендикуляров.
Так что и в ответах тоже должна присутсвовать
тернарная.x1 < x2 ? (...) : (...);
Спасибо за ответ. То что a > b, это и не обсуждается, только вот исходное уравнение у меня f(x) = (A*x^3 + B*x^2 + C*x + D)^n.
0
21.06.2009, 12:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2009, 12:12
Привет! Вот еще темы с ответами:

Поиск элемента в массиве методом золотого сечения - C++
* Составить блок-схему алгоритма поиска элемента в массиве методом золотого сечения. Массив упорядочен по возрастанию. * Составить таблицы...

Нахождение корня нелинейного уравнения на заданном участке - C++
Доброго времени суток всем! Давно учил С++, уже его подзабыл, но сейчас необходимо решить задание. Буду благодарен любой помощи! ...

Уточнить приближенное значение корня нелинейного уравнения f(x) = 0 на заданном отрезке - C++
Задание вот такое - уточнить приближенное значение корня нелинейного уравнения f(x) = 0 на заданном отрезке методом половинного деления...

Методом деления отрезка пополам и методом итераций найти прибли-женное значение корня уравнения - C++
Методом деления отрезка пополам и методом итераций найти прибли-женное значение корня уравнения x3 + 12x – 2 = 0 на интервале . Абсолютная...


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

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

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