Этот пример скрипта помогает вам использовать задачу Optimize Live Editor для оптимизации или решения уравнения. Измените скрипт для вашей собственной задачи.
Скрипт решает нелинейную задачу оптимизации с нелинейными ограничениями.
Как правило, у вас есть данные или значения, которые будут переданы решателю. Поместите эти значения в раздел входа (где вы видите x0
) и запустите раздел, выбрав Section > Run Section или нажав Control+Enter
.
Установите начальную точку x0
и масштабные a
для оптимизации.
x0 = [2;1]; a = 100;
Поместите x0
значение и любые другие данные о проблеме в рабочую область путем запуска этого раздела перед продолжением.
Эта задача имеет целевые и нелинейные функции ограничения включены. Чтобы изменить эти функции, отредактируйте списки функций под задачей.
Чтобы изменить ограничения, выберите соответствующие типы ограничений и введите значения в входы. Возможно, потребуется ввести значения в раздел, содержащий 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