Переменные и выражения оптимизации являются базовыми элементами Основанного на проблеме Рабочего процесса Оптимизации. Для легальных операций на переменных и выражениях оптимизации:
x
и y
представляйте массивы оптимизации произвольного размера (обычно тот же размер).
x2D
и y2D
представляйте 2D массивы оптимизации.
a
скалярная числовая константа.
M
постоянная числовая матрица.
c
числовой массив одного размера с x
.
Предупреждение
Основанный на проблеме подход не поддерживает комплексные числа в целевой функции, нелинейных равенствах и нелинейных неравенствах. Если при вычислении функции встретится комплексное число, даже как промежуточное значение, конечный результат может оказаться неправильным.
Эти операции на переменных оптимизации или выражения возвращают выражение оптимизации.
Категория | Операция | Пример |
---|---|---|
Арифметика | Добавьте постоянный | x+c или c+x |
Переменная Add | x+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.' |
Конкатенация | cat vertcat , и horzcat | |
Изменение | reshape(x,[10 1]) | |
Создайте диагональную матрицу или получите диагональные элементы матрицы | diag(x2D) , где x2D матрица или вектор, включая синтаксис diag(x2D,k) | |
Элементарные функции | Степень квадратной матрицы | x2D^a |
Степень Pointwise | x.^a | |
Квадратный корень | sqrt X ) | |
(Евклидова) норма | norm X ), который вычисляет sqrt(sum(x.^2,'all')) | |
Синус | sin X ) | |
Косинус | cos X ) | |
Секанс | sec X ) | |
Косеканс | csc X ) | |
Тангенс | tan X ) | |
Arcsine | asin X ) | |
Arccosine | acos X ) | |
Arcsecant | asec X ) | |
Arccosecant | acsc 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
страница ссылки на функцию.
OptimizationExpression
| OptimizationVariable
| fcn2optimexpr