![]() |
|
|
![]()
|
|
| rudolfninja |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
Ребята, приветствую.
Сразу извиняюсь, если тему нужно было создать в "Центре помощи", но, по-моему, тут она более уместна. Проблема вот в чем, нужно написать алгоритм поиска минимума многомерной функции методом Гаусса-Зейделя (или координатного спуска). В качестве метода поиска минимума одномерной функции использовать метод золотого сечения. Я написал функции на Си++, одна функция находит минимум одномерной функции методом золотого сечения, другая - непосредственно метод координатного спуска. Для примера была дана тестовая целевая функция с начальными значениями.
Я старался написать наиболее универсальный код, но вышло как вышло. У меня возникло, пока что, два вопроса: 1) Какие границы отрезка передавать в метод золотого сечения? 2) Зачем нужен шаг, если поиск минимума одномерной функции проводится по методу золотого сечения, а не через частные производные
метод golden_section работает правильно и возвращает значение аргумента при котором значение функции будет минимальным на заданном отрезке. Это я проверял на нескольких различных примерах. В итоге программа выдает результат не такой, который должен быть, но довольно близкий к нему. Это только на этом примере. Переписывал целевые функции для других примеров (с последующей корректировкой функций main и golden_section), вообще ерунда какая-то получается. В общем, если кто видит ошибки/недочеты в моей реализации и(или) может ответить на вопросы, написанные выше, ответьте, пожалуйста. Спасибо. |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Гарантированно охватывающие минимум, не захватывающие точек разрыва, не выходящие за пределы существования.
Где написано, что ВСЕ параметры обязаны быть использованы? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
||||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Ну, например, для контроля можно посмотреть чисельно производную в выбранных краевых точках. Допустим, это универсальный блок данных для нескольких заданий. Для некоторых нужны все данные, для других только часть. Почему нет? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
Akina, а вы знакомы с методом? Шаг вообще должен меняться по ходу изменения координат?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Не понял... какой ещё шаг? В золотом сечении шага нет в принципе, а покоординатный спуск - вообще метод не минимизации, а выбора плоскости минимизации.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
||||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Покоординатный спуск - это не метод минимизации! Это метод выбора порядка перебора координат, метод выбора следующей координаты, по которой мы будем искать очередной частный минимум. И далеко не всегда координаты перебираются тупо по порядку в цикле... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |