MATLAB fminsearch над сферой - PullRequest
       3

MATLAB fminsearch над сферой

1 голос
/ 02 февраля 2020

У меня есть функция, определенная на поверхности сферы, f(theta,phi), которую я хочу минимизировать в MATLAB. Насколько я вижу, использование fminsearch(@(x) f(x), [theta,phi]) имеет неограниченную проблему, которая, я думаю, снижает оптимальность. Любое предложение?

Ответы [ 2 ]

1 голос
/ 02 февраля 2020

То, что вы хотите сделать, - это оптимизировать коллектор, который не является тривиальным, и я не знаю, сможете ли вы привязать fminsearch к хорошему выполнению этого. Библиотека manopt (www.manopt.org) - это библиотека Matlab, которая делает именно это. На самом деле самый первый пример в учебном разделе - это оптимизация сферы.

0 голосов
/ 02 февраля 2020

Ограниченный поиск на самом деле плохо при работе на сфере. Представьте, что если ваша функция - это просто расстояние до Токио, идеальная плавная функция, которую должен решить любой поиск по номеру c. Если вы используете ограниченный поиск и ваша отправная точка находится где-то в США, тогда fminsearch будет следовать градиенту, пока не достигнет анти-меридиана. Невозможно продолжить, потому что граница достигнута. Подобные проблемы могут возникнуть на полюсе.

Вы можете переопределить свою проблему, чтобы оказаться в бесконечном пространстве. Всякий раз, когда ваша долгота превышает [-180,180], вы просто go делаете еще один раунд, нормализуя его до этого диапазона. Немного сложнее широта. Представьте, что вы находитесь на 10 ° восточной долготы и идете к северному полюсу, ваша широта увеличивается, пока не достигнет 90 ° северной широты. Когда вы продолжите дальше, вы внезапно окажетесь на 170 ° W, и ваша широта уменьшится.

Если вы управляете этим преобразованием и позволяете fminsearch искать в бесконечном пространстве, преимущество заключается в том, что ни полюса, ни анти-меридиан не остановят ваш поиск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...