Поддерживаемые операции с переменными оптимизации и выражениями

Обозначение для поддерживаемых операций

Переменные и выражения являются базовым элементом рабочего процесса оптимизации на основе задач. Для легальных операций с переменными оптимизации и выражениями:

  • x и y представляют оптимизационные массивы произвольного размера (обычно того же размера).

  • x2D и y2D представляют 2-D оптимизационные массивы.

  • a является скалярной числовой константой.

  • M является постоянной числовой матрицей.

  • c - числовой массив того же размера, что и x.

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

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

Операции, возвращающие выражения оптимизации

Эти использования с переменных оптимизации или выражениями возвращают выражение оптимизации.

КатегорияОперацияПример
АрифметикаДобавьте константуx+c или c+x
Добавить переменнуюx+y
Унарный плюс+x
Вычесть константуx-c
Вычитайте переменныеx–y
Унарный минус-x
Умножьте на постоянный скалярa*x или a.*x или x*a или x.*a
Разделите на постоянный скалярx/a или x./a или a\x или a.\x
Точечное умножение на массивc.*x или x.*c
Точечное деление на массивx./c или c.\x
Точечное умножение переменныхx.*y
Матричные переменные умноженияx2D*y2D, или x*y когда x или y является скаляром
Матричная переменная умножения и матрицаM*x2D или x2D*M
Скалярный продукт переменной и массиваdot(x,c) или dot(c,x)
Линейная комбинация переменныхsum(x), sum(x,dim), sum(x,'all'), mean(x), и mean(x,dim)
Произведение элементов массиваprod(x), prod(x,dim), и prod(x,'all')
Трассировка матрицыtrace(x2D)
Совокупная сумма или продуктcumsum(x) или cumprod(x), включая синтаксисы cumsum(x,dim), cumsum(_,direction), cumprod(x,dim), и cumprod(_,direction)
Различияdiff(x), включая синтаксисы diff(x,n) и diff(x,n,dim)
Конкатенация и изменение формыПереместитьx' или x.'
Конкатенацияcat, vertcat, и horzcat
Изменитьсяreshape(x,[10 1])
Создайте диагональную матрицу или получите диагональные элементы матрицыdiag(x2D), где x2D является матрицей или вектором, включая синтаксис diag(x2D,k)
Элементарные функцииСтепень квадратной матрицыx2D^a
Точечная степеньx.^a
Квадратный кореньsqrt(x)
Норма (евклидова)norm(x), который вычисляет sqrt(sum(x.^2,'all'))
Синусsin(x)
Косинусcos(x)
Секансsec(x)
Косекансcsc(x)
Тангенсtan(x)
Arcsineasin(x)
Arccosineacos(x)
Arcsecantasec(x)
Arccosecantacsc(x)
Арктангенсatan(x)
Экспоненциалexp(x)
Логарифмlog(x)
Гиперболический синусsinh(x)
Гиперболический косинусcosh(x)
Гиперболический секантsech(x)
Гиперболический косекантcsch(x)
Гиперболический тангенсtanh(x)
Обратный гиперболический синусasinh(x)
Обратный гиперболический косинусacosh(x)
Обратный гиперболический секантasech(x)
Обратный гиперболический косекантacsch(x)
Обратный гиперболический тангенсatanh(x)

Примечание

a^x не поддерживается для переменной оптимизации x.

Однако, если вы связались a чтобы быть строго положительным, вы можете использовать эквивалентный exp(x*log(a)).

Операции, возвращающие переменные оптимизации

Эти операции с переменными оптимизации возвращают переменную оптимизации.

ОперацияПример
N-D числовая индексация (включает двоеточие и end)x(3,5:end)
N-D логическая индексацияx(ind), где ind является логическим массивом
Индексирование N-D строкx(str1,str2), где str1 и str2 являются строками
Смешанная индексация N-D (комбинация числа, логики, двоеточия, конца и строки)x(ind,str1,:)
Линейная числовая индексация (включает двоеточие и end)x(17:end)
Линейная логическая индексацияx(ind)
Линейная индексация строкx(str1)

Операции с выражениями оптимизации

Выражения оптимизации поддерживают все операции, которые поддерживают переменные оптимизации, и возвращают выражения оптимизации. Кроме того, можно индексировать в или назначить в выражение оптимизации с помощью числового, логического, строкового или линейного индексирования, включая двоеточие и end операторы для числовой или линейной индексации.

Операции, возвращающие ограничения

Ограничениями являются любые две comparable expressions, которые включают один из следующих операторов сравнения: ==, <=, или >=. Сопоставимые выражения имеют тот же размер, или одно из выражений должно быть скаляр, то есть размер 1 на 1. Для примеров смотрите Выражения для ограничений и уравнений.

Некоторые недокументированные операции работают с переменными оптимизации и выражениями

Внутренне некоторые функции и операции вызывают только документированные поддерживаемые операции. В этих случаях можно получить разумные результаты из функций или операций. Для примера, в настоящее время squeeze внутренние вызовы reshape, которая является документированной поддерживаемой операцией. Так что, если вы squeeze переменная оптимизации, тогда вы можете получить разумное выражение.

Неподдерживаемые функции и операции требуют fcn2optimexpr

Если ваша целевая функция или нелинейные функции ограничений не поддерживаются, преобразуйте MATLAB® функцию в выражение оптимизации при помощи fcn2optimexpr. Для примеров смотрите Преобразование нелинейной функции в выражение оптимизации или fcn2optimexpr страница с описанием функции.

См. также

| |

Похожие темы