exponenta event banner

Рабочий процесс на основе задач для решения уравнений

Примечание

Оптимизация 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).

Предупреждение

Проблемный подход не поддерживает комплексные значения в целевой функции, нелинейные равенства или нелинейные неравенства. Если вычисление функции имеет комплексное значение, даже в качестве промежуточного значения, конечный результат может быть неверным.

Основной пример решения уравнений с многочленами см. в разделе Решение нелинейной системы многочленов на основе задач. Общий нелинейный пример см. в разделе Решение нелинейной системы уравнений на основе задач. Дополнительные примеры см. в разделе Системы нелинейных уравнений.

См. также

| | | | | |

Связанные темы