Поместите задачу Optimize Live Editor в live скрипт с разделом выше и двумя или несколькими разделами ниже задачи. Чтобы открыть задачу Оптимизации в Live Editor, перейдите на вкладку Insert и выберите Task > Optimize. Для вставки нового раздела используйте кнопку Section Break на вкладке Insert.
По умолчанию кнопка Output on right выбирается справа от окна задачи.
Этот выбор помещает выход справа от задачи. Чтобы поместить выход под задачу, нажмите кнопку Output inline.
Над задачей включите раздел для данных, которые вам нужны для оптимизации. Для примера начальная точка x0
, любые матрицы ограничений, такие как Aeq
или beq
, и дополнительные параметры для целевых или нелинейных ограничительных функций принадлежат в разделе над задачей. Данные должны быть включены в раздел над задачей, чтобы можно было успешно запустить весь скрипт, например, после его сохранения и перезагрузки. Данные загружаются в рабочую область, прежде чем скрипт должен будет получить к нему доступ.
Поместите выходы задачи в раздел под задачей. Для примера отобразите solution
и objectiveValue
выходов в этом разделе после записи задачи в рабочую область. Можно включать несколько разделов ниже задачи для просмотра и работы с результатами задачи.
Заключительный раздел содержит любые локальные функции для задачи. Локальные функции должны быть включены в конец live скрипта. Однако, если у вас есть функции, к которым вы получаете доступ из нескольких скриптов, включая их как отдельные файлы на MATLAB® путь может быть более удобным.
Оптимизируйте является фронтальным концом для основанных на решателе оптимизации и решения уравнений. Как таковой, он требует, чтобы все переменные были помещены в один вектор, как задокументировано в Writing Scalar Object Functions. Например, предположим, что ваша целевая функция
В этом примере переменные x и z являются переменными оптимизации, а переменные y и w являются фиксированными данными. Вы можете представить свою функцию в разделе под задачей Оптимизации следующим образом.
function f = myfun(vars,y,w) x = vars(1); z = vars(2); f = (x^2 + y^4)*exp(-z/(1 + x^2))*w*exp(-z); end
Задайте значения переменных y и w в разделе над задачей.
y = log(pi); w = 2/3;
Запустите раздел над задачей, нажав Ctrl+Enter, чтобы поместить y и w в рабочую область. Затем выберите соответствующие входы в Select problem data разделе задачи.
В Specify problem type разделе задачи предусмотрены кнопки для выбора типа целевой функции и типов ограничений. После выбора этих элементов Optimize уменьшает количество доступных решателей и показывает один решатель в соответствии с рекомендациями. Для примера, для задачи с объективом методом наименьших квадратов и верхними и нижними границами, Optimize показов, что lsqnonlin
Рекомендуется использовать решатель.
Чтобы использовать решатель, который недоступен с текущими вариантами выбора, отмените выбор всех кнопок типа задачи, нажав каждую выбранную кнопку.
Задачу Optimize Live Editor можно запустить различными способами:
Нажмите кнопку options ⁝ в верхней части окна задачи и выберите Run Section.
Щелкните в задаче и нажмите Ctrl+Enter.
Установите задачу на автозапуск после любого изменения нажатием кнопки autorun (рядом с кнопкой options в верхней части окна задачи). Если ваша задача занимает много времени, не выбирайте эту настройку.
Запустите раздел, содержащий задачу, нажав на полосу слева от задачи.
Запустите весь live скрипт с вкладки Live Editor нажатием кнопки Run или нажатием F5.
Задача Live Editor позволяет легко контролировать прогресс решателя. Чтобы убедиться, что решатель работает правильно, просмотрите, по крайней мере, график значения целевой функции. Кроме того, при помощи функции построения графика можно остановить решатель, не теряя никаких данных.
Optimize внутренне создает код, соответствующий визуальным выбранным параметрам. Вы можете просмотреть код, нажав кнопку options ⁝ и выбрав Controls and Code или Code Only.
Код появляется под задачей.
Можно выбрать и скопировать этот код, чтобы изменить его для использования в других контекстах.
Чтобы преобразовать задачу из визуального интерфейса в полезный код, выберите Convert Task to Editable Code. Этот выбор удаляет визуальный интерфейс Optimize и позволяет продолжить использование кода.