Запуск с задачей оптимизации Live Editor

Этот пример скрипта помогает вам использовать задачу Optimize Live Editor для оптимизации или решения уравнения. Измените скрипт для вашей собственной задачи.

Скрипт решает нелинейную задачу оптимизации с нелинейными ограничениями.

Включите параметры или данные

Как правило, у вас есть данные или значения, которые будут переданы решателю. Поместите эти значения в раздел входа (где вы видите x0) и запустите раздел, выбрав Section > Run Section или нажав Control+Enter.

Установите начальную точку x0 и масштабные a для оптимизации.

x0 = [2;1];
a = 100;

Поместите x0 значение и любые другие данные о проблеме в рабочую область путем запуска этого раздела перед продолжением.

Оптимизация задачи Live Editor

Эта задача имеет целевые и нелинейные функции ограничения включены. Чтобы изменить эти функции, отредактируйте списки функций под задачей.

Чтобы изменить ограничения, выберите соответствующие типы ограничений и введите значения в входы. Возможно, потребуется ввести значения в раздел, содержащий x0 выше и запустите раздел, чтобы поместить значения в рабочую область.

Запустите задачу, щелкнув полосу влево, или выбрав Запуск или Раздел > Запуск Раздел, или нажав Control+Enter.

Результаты

Optimize сохраняет решение переменной рабочей области solution, и сохраняет значение целевой функции в решении переменной рабочей области objectiveValue. Вы можете увидеть и изменить эти имена переменных в верхней части Optimize задача.

Просмотрите эти переменные.

Просмотрите значения нелинейных ограничительных функций в решении.

Вспомогательные функции - локальные функции

Следующий код создает целевую функцию. Измените этот код для вашей проблемы.

function f = objectiveFcn(x,a)
f = a*(x(2) - x(1)^2)^2 + (1 - x(1))^2;
end

Следующий код создает функцию ограничения. Измените этот код для вашей проблемы.

function [c,ceq] = constraintFcn(x)
c(1) = x(1)^2 + x(2)^2 - 5;
c(2) = 3 - x(1)^2 - x(2)^2;
ceq = [];  % No equality constraints
end

См. также

Похожие темы