Начало работы с оптимизируют задачу Live Editor

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

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

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

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

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

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

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

Оптимизируйте задачу Live Editor

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

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

Запустите задачу путем нажатия на чередуемую панель налево, или путем выбора Run или Section> Run Section, или путем нажатия Control+Enter.


Local minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in 
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.

<stopping criteria details>

Результаты

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

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

solution
solution = 2×1

    1.1413
    1.3029

objectiveValue
objectiveValue = 0.0200

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

[ccons,ceqcons] = constraintFcn(solution)
ccons = 1×2

   -2.0000   -0.0000

ceqcons =

     []

Помощник функционирует — локальные функции

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

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

Смотрите также

Похожие темы