Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Вот так выглядит функция, минимум которой ищется: Посмотрите на неё с большим разрешением в районе минимума. Там, действительно, достаточно искать нуль производной, так как все модули выпуклы вверх. Точнее, вниз. Точнее, не принципиально, но в одну сторону. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 (изменено) · Жалоба Посмотрите на неё с большим разрешением в районе минимума. Там, действительно, достаточно искать нуль производной, так как все модули выпуклы вверх. Точнее, вниз. Точнее, не принципиально, но в одну сторону. :) Про производные не понял. Бывает и так: Искать точку (не ясно как), где производная равна нулю. И эта точка будет искомой, если попадает в отрезок [-1; 1]. Если же точка < -1, то искомая = -1. Если > 1, то искомая = 1. Изменено 23 ноября, 2010 пользователем getch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Про производные не понял. Как ищут минимум непрерывно дифференцируемой функции? У вас она кусочно непрерывно дефференцируемая. Верхний график у вас вводит в заблеждуние. Наклон линий только возрастает. Увеличте ещё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Как ищут минимум непрерывно дифференцируемой функции? У вас она кусочно непрерывно дефференцируемая. Про необходимость поиска нулевой производной написал выше. А вот как ее численно искать пока не знаю. Верхний график у вас вводит в заблеждуние. Наклон линий только возрастает. Увеличте ещё. Вот так выглядит график и его производная в на всем отрезке [0; 1] и вблизи минимума: А так меняется производная при уменьшении Delta: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба А вот как ее численно искать пока не знаю. Из того, что производная кусочно-линейной функции есть кусочно-постоянная функция. Плюс из того, что производная суммы есть сумма производных. И из того, что в данном случае производная не убывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Из того, что производная кусочно-линейной функции есть кусочно-постоянная функция. Плюс из того, что производная суммы есть сумма производных. И из того, что в данном случае производная не убывает. Это все, конечно, понятно. Но чем поиск нулевой производной будет превосходить поиск минимума так, как писали ранее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Это все, конечно, понятно. Но чем поиск нулевой производной будет превосходить поиск минимума так, как писали ранее? Считать меньше. Дифференцировать целевую функцию, разумеется, нужно аналитически, а не численно. Это просто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 (изменено) · Жалоба Считать меньше. Дифференцировать целевую функцию, разумеется, нужно аналитически, а не численно. Это просто. Конечно, производные N+2 линейных функций простые. Но как посчитать производную целевой функции? Изменено 23 ноября, 2010 пользователем getch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Но как посчитать производную целевой функции? Попробуйте для начала подсчитать её в некоторой точке, не совпадающей с изломом ни одного модуля. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Попробуйте для начала подсчитать её в некоторой точке, не совпадающей с изломом ни одного модуля. Для интервала слева - до первого излома, производная будет Sum(a-b) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Для интервала слева - до первого излома, производная будет Sum(a-b) Замечательно. Таперь, если она отрицательная, попробуйте найти для следующего интервала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 (изменено) · Жалоба Замечательно. Таперь, если она отрицательная, попробуйте найти для следующего интервала. Примем, что производная слева равна D[0]. тогда производная после 1-го излома (слагаемые отсортировали по возрастанию точек излома) будет D[1] = D[0] + 2 * (b[1] - a[1]). Ну и вообще итерационная формула такая D[k] = D[k - 1] + 2 * (b[k] - a[k]). В итоге получается, что надо сначала отсортировать слагаемые по возрастанию точек изломов, а потом итерационно дойти до производной, которая меняет знак. После чего взять точку, которая соответствуюет минимальному значению модуля двух соседних D. P.S. Возрастание производной совсем неочевидно. Изменено 23 ноября, 2010 пользователем getch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Примем, что производная слева рана D[0]. тогда производная после 1-го излома (слагаемые отсортировали по возрастанию точек излома) будет D[1] = D[0] + 2 * (b[1] - a[1]). Ну и вообще итерационная формула такая D[k] = D[k - 1] + 2 (b[k] - a[k]). Вот! Правда, у вас в самой первой формуле для самого левого участка есть одна ошибка, В результате и последняя неправильная. Найдете? ;) После чего взять точку, которая соответствуюет минимальному значению модуля двух соседних D. Нет! Нужно юбрать излом, при переходе через который производная меняет знак. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getch 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 (изменено) · Жалоба Вот! Правда, у вас в самой первой формуле для самого левого участка есть одна ошибка, В результате и последняя неправильная. Найдете? ;) Ошибки нет, если считать, что производная убывает. Нет! Нужно юбрать излом, при переходе через который производная меняет знак. Туплю - не понял. Изменено 23 ноября, 2010 пользователем getch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 23 ноября, 2010 Опубликовано 23 ноября, 2010 · Жалоба Ошибки нет, если считать, что производная убывает. Есть. Туплю - не понял. Сорри, читать "нужно брать". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться