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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Simply me
 Аватар для Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 293
Завершенные тесты: 1
#1

Метод ломаных - C++

01.12.2012, 15:21. Просмотров 1954. Ответов 1
Метки нет (Все метки)

Здравствуйте! Помогите, пожалуйста, реализовать метод ломаных нахождения минимума многоэкстремальной функции f(x) на отрезке [a, b].
Алгоритм:
x1=a
x2=b
yi=f(xi)

1 итерация
t1(x)=max {yi-180*fabs(x-xi)}, i=1,2
x3=arg min t1(x), a<=x<=b

2 итерация
t2(x)= max {yi-180*fabs(x-xi)}, i=1,2,3
x4=arg min t2(x), a<=x<=b

k итерация
tk(x)= max {yi-180*fabs(x-xi)}, i=1,2,3,...,k+1
x(k+2)=arg min tk(x), a<=x<=b

N-1 итерация
t(N-1)(x)=max {yi-180*fabs(x-xi)}, i=1,2,3,...,N
x(N+1)=arg min t(N-1)(x), a<=x<=b


fmin=min f(xi), i=1,...,N
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 15:21     Метод ломаных
Посмотрите здесь:

метод деления отрезка пополам и метод итерации C++
Метод Эйлера, и Метод Лагранжа, в долгу не останусь C++
Метод деления отрезка пополам для решения нелинейных уравнений (метод дихотомии) C++
C++ Метод медиан из трех элементов VS улучшенный быстрый метод сортировки(метод Бентли-Макилроя)
C++ Производный класс: метод возведения в произвольную степень, и метод для вычисления логарифма числа
Класс vector (поля: координаты, 2 конструктора, метод нахождения длины вектора и метод вывода координат на экран) C++
C++ СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
Нахождения корней уравнения: метод половинного деления (бисекции) или метод хорд C++
C++ Решение уравнения методом ломаных
C++ Мой код - метод бисекции, метод секущих (метод хорд)
C++ Не сходится теория и практика метод Шелла и метод простого выбора
C++ Исследовать итерационный метод- метод касательных для решения нелинейных уравнений

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Simply me
 Аватар для Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 293
Завершенные тесты: 1
02.12.2012, 09:52  [ТС]     Метод ломаных #2
Может, кто-нибудь посмотрит? Я попыталась проиллюстрировать метод.
Сам метод хорошо понимаю, x[3] нашла.
x[3]=(y[2] - y[1] + 180*(x[2] + x[1])) / (2*180);
В частном случае (конкретно по графику моей функции) можно дальше выбрать x[4].
x41=(y[1]-y[3]+M*(x[1]+x[3]))/(2*M);
x42=(y[3]-y[2]+M*(x[2]+x[3]))/(2*M);
if ((y[3]-M*fabs(x41-x[3])) <(y[3]-M*fabs(x42-x[3])))
x[4]=x41;
else
x[4]=x42;
А в общем случае непонятно, как выбирать следующие точки.
Миниатюры
Метод ломаных   Метод ломаных   Метод ломаных  

Метод ломаных   Метод ломаных  
Yandex
Объявления
02.12.2012, 09:52     Метод ломаных
Ответ Создать тему
Опции темы

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