Примечание
Оптимизация Toolbox™ обеспечивает два подхода для решения уравнений. В этом разделе описывается подход, основанный на проблемах. Настройка задачи оптимизации на основе решателя описывает подход на основе решателя.
Для решения системы уравнений выполните следующие шаги.
Создание объекта задачи уравнения с помощью eqnproblem. Проблемный объект - это контейнер, в котором определяются уравнения. Объект задачи уравнения определяет задачу и любые границы, существующие в переменных задачи.
Например, создайте задачу уравнения.
prob = eqnproblem;
Создание именованных переменных с помощью optimvar. Переменная оптимизации - это символическая переменная, которая используется для описания уравнений. Включите любые границы в определения переменных.
Например, создайте массив переменных с именем 15 на 3 'x' с нижними границами 0 и верхние границы 1.
x = optimvar('x',15,3,'LowerBound',0,'UpperBound',1);
Определите уравнения в переменных задачи. Например:
sumeq = sum(x,2) == 1; prob.Equations.sumeq = sumeq;
Примечание
Если имеется нелинейная функция, которая не состоит из многочленов, рациональных выражений и элементарных функций, таких как exp, затем преобразовать функцию в выражение оптимизации с помощью fcn2optimexpr. См. раздел Преобразование нелинейной функции в выражение оптимизации и поддерживаемые операции с переменными и выражениями оптимизации.
При необходимости включите дополнительные параметры в уравнения в качестве переменных рабочей области; см. раздел Передача дополнительных параметров в подходе, основанном на проблемах.
Для нелинейных задач задайте начальную точку как структуру, поля которой являются именами переменных оптимизации. Например:
x0.x = randn(size(x));
x0.y = eye(4); % Assumes y is a 4-by-4 variableРешить проблему с помощью solve.
sol = solve(prob);
% Or, for nonlinear problems,
sol = solve(prob,x0)В дополнение к этим основным шагам можно просмотреть определение проблемы перед ее решением с помощью show или write. Задать параметры для solve с помощью optimoptions, как описано в разделе Изменение решателя по умолчанию (Change Default Solver) или Опции (Options).
Предупреждение
Проблемный подход не поддерживает комплексные значения в целевой функции, нелинейные равенства или нелинейные неравенства. Если вычисление функции имеет комплексное значение, даже в качестве промежуточного значения, конечный результат может быть неверным.
Основной пример решения уравнений с многочленами см. в разделе Решение нелинейной системы многочленов на основе задач. Общий нелинейный пример см. в разделе Решение нелинейной системы уравнений на основе задач. Дополнительные примеры см. в разделе Системы нелинейных уравнений.
eqnproblem | fcn2optimexpr | optimoptions | optimvar | show | solve | write