2015-07-16 8 views
0

Для задачи нелинейной оптимизации в двух переменных, скажем, x и y, как проверить, является ли функция гладкой или нет, и является ли она среднесрочной или крупномасштабной проблемой. Должен ли я использовать решатель «fmincon» (в MATLAB), поскольку существует одно линейное ограничение и ограничения на переменные? Мне нужны глобальные оптимумы, а для выпуклой функции локальные оптимумы такие же, как и глобальные. Но я не уверен, как проверить выпуклость моей функции?Нелинейная оптимизация в MATLAB

Моя проблема Min е (х, у) где х < у и х, у> 0

ответ

1

fmincon решатель, в частности sqp, очень подходит для решения нелинейных задач квадратичного с линейные ограничения. Это лучший решатель, который вы можете выбрать, если знаете, что ваша проблема выпукла. Однако с такой небольшой информацией, которую вы дали, трудно сказать, является ли ваш выпуклый или нет. Вы можете проверить convex optimization book Boyd & Vandenberghe (со страницы 23 на), чтобы увидеть свойства выпуклых множеств и функций.

EDIT

Для выяснения, является ли функция convex или нет, вы можете попробовать использовать this файл. Я не знаю, как вы можете проверить smoothness. Вы можете найти много информации об large-scale, medium-scale проблемах в каждой книге оптимизации. Короче говоря, это зависит от количества параметров, которые необходимо оптимизировать. Построение - совершенно другая проблема. Если вы специально его найдете, вы найдете сотни ресурсов.

+0

Спасибо, T-1000. Я спрашивал, есть ли способ, которым MATLAB может проверить выпуклость? А как насчет гладкости и масштаба проблемы (среднего или крупного масштаба)? Нужно ли рисовать его, чтобы увидеть гладкость функции? Я новичок, пожалуйста, также расскажите, как получить «сюжет прибоя». Я использую MATLAB 2013, графики отображаются неактивными с комментарием «не выбранная переменная». –

+0

@ Dr.NishaArora Я отредактировал ответ –

+0

Еще раз спасибо, я его загрузил, пытался запустить заданный код. Он показал некоторые ошибки. Первоначально я получил ошибку, например, «Неопределенная функция или переменная» x1 Ошибка в convex_checker (строка 2) f = x1^2 + sin (x2) -x1 * x3 & еще много. После борьбы с написанием функции (ссылаясь на http://www.mathworks.com/matlabcentral/answers/14049-question-from-global-optimization-webinar) и другие ошибки И, наконец, когда я бегу, я не получаю вывод. Я пробовал «echo on & echo off» и «stdout» тоже, но не знаю, где я могу получить выход, с помощью plz. Я новичок в этом. Спасибо и простите за подробное объяснение. –

Смежные вопросы