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

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

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

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

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

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

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

  • c числовой массив одного размера с x.

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

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

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

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

КатегорияОперацияПример
АрифметикаДобавьте постоянныйx+c или c+x
Переменная Addx+y
Унарный плюс+x
Вычтите константуx-c
Вычтите переменныеx–y
Унарный минус-x
Умножьтесь постоянным скаляромa*x или a.*x или x*a или x.*a
Разделитесь на постоянный скалярx/a или x./a или a\x или a.\x
Pointwise умножаются массивомc.*x или x.*c
Pointwise делятся на массивx./c или c.\x
Pointwise умножают переменныеx.*y
Умножение матриц переменныеx2D*y2D, или x*y когда x или y isscalar
Умножение матриц переменная и матрица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.'
Конкатенацияcatvertcat, и horzcat
Изменениеreshape(x,[10 1])
Создайте диагональную матрицу или получите диагональные элементы матрицыdiag(x2D), где x2D матрица или вектор, включая синтаксис diag(x2D,k)
Элементарные функцииСтепень квадратной матрицыx2D^a
Степень Pointwisex.^a
Квадратный кореньsqrtX)
(Евклидова) нормаnormX), который вычисляет sqrt(sum(x.^2,'all'))
СинусsinX)
КосинусcosX)
СекансsecX)
КосекансcscX)
ТангенсtanX)
ArcsineasinX)
ArccosineacosX)
ArcsecantasecX)
ArccosecantacscX)
АрктангенсatanX)
ЭкспоненциалexpX)
ЛогарифмlogX)
Гиперболический синусsinhX)
Гиперболический косинусcoshX)
Гиперболический секансsechX)
Гиперболический косекансcschX)
Гиперболический тангенсtanhX)
Обратный гиперболический синусasinhX)
Обратный гиперболический косинусacoshX)
Обратный гиперболический секансasechX)
Обратный гиперболический косекансacschX)
Гиперболический арктангенсatanhX)

Примечание

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

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

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

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

ОперацияПример
Числовая индексация N-D (включает двоеточие и end)x(3,5:end)
N-D логическая индексацияx(ind), где ind логический массив
Индексация строки N-Dx(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 страница ссылки на функцию.

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

| |

Похожие темы