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

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

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

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

20.06.2009, 23:17. Просмотров 3814. Ответов 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... Но иногда выдает значение минимума
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2009, 23:17     Вычисление корня нелинейного уравнения методом Золотого сечения.
Посмотрите здесь:
Расчёт корня нелинейного уравнения (Методом итераций) C++
C++ Нахождение корня нелинейного уравнения методом итерации
Поиск корня нелинейного уравнения простой итерацией, половинным делением, методом Ньютона C++
Поиск методом золотого сечения C++
найти методом золотого сечения минимум C++
Поиск элемента в массиве методом золотого сечения C++
Найти минимум функции методом золотого сечения. C++
C++ Уточнить приближенное значение корня нелинейного уравнения f(x) = 0 на заданном отрезке
Методом деления отрезка пополам и методом итераций найти прибли-женное значение корня уравнения C++
Решение нелинейного уравнения методом перебора C++
C++ Решение нелинейного уравнения методом итераций
C++ Решение нелинейного уравнения методом итерации

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

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

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