exponenta event banner

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

Нотация для поддерживаемых операций

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

  • 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-Dx(ind), где ind является логическим массивом
Индексирование строки N-Dx(str1,str2), где str1 и str2 являются строками
N-D смешанное индексирование (комбинация числового, логического, двоеточия, конца и строки)x(ind,str1,:)
Линейное числовое индексирование (включая двоеточие и end)x(17:end)
Линейная логическая индексацияx(ind)
Линейное индексирование строкx(str1)

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

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

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

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

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

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

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

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

См. также

| |

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