Main Content

Operaciones compatibles con variables y expresiones de optimización

Notación de las operaciones compatibles

Las variables y expresiones de optimización son los elementos básicos del Flujo de trabajo de optimización basada en problemas. Para ver las operaciones legales compatibles con las variables y expresiones de optimización:

  • x e y representan arreglos de optimización de tamaño arbitrario (normalmente del mismo tamaño).

  • x2D e y2D representan arreglos de optimización bidimensionales.

  • a es una constante numérica escalar.

  • M es una matriz numérica constante.

  • c es un arreglo numérico del mismo tamaño que x.

Advertencia

El enfoque basado en problemas no es compatible con valores complejos en una función objetivo, igualdades no lineales o desigualdades no lineales. Si el cálculo de una función tiene un valor complejo, incluso como valor intermedio, el resultado final puede ser incorrecto.

Operaciones que devuelven expresiones de optimización

Estas operaciones en variables o expresiones de optimización devuelven una expresión de optimización.

CategoríaOperaciónEjemplo
Operaciones aritméticasSuma de una constantex+c o c+x
Suma de una variablex+y
Más unario+x
Resta de una constantex-c
Resta de variablesx–y
Menos unario-x
Multiplicación por un escalar constantea*x o a.*x o x*a o x.*a
División entre un escalar constantex/a o x./a o a\x o a.\x
Multiplicación por puntos por un arregloc.*x o x.*c
División por puntos entre un arreglox./c o c.\x
Multiplicación por puntos de variablesx.*y
Multiplicación matricial de variablesx2D*y2D, o x*y cuando x o y es escalar
Multiplicación matricial de variable y matrizM*x2D o x2D*M
Producto punto de variable y arreglodot(x,c) o dot(c,x)
Combinación lineal de variablessum(x), sum(x,dim) donde dim puede ser un escalar o un vector, sum(x,'all'), mean(x), mean(x,dim) donde dim puede ser un escalar o un vector, y mean(x,'all')
Producto de los elementos de un arregloprod(x), prod(x,dim) y prod(x,'all')
Traza de una matriztrace(x2D)
Suma o producto acumuladocumsum(x) o cumprod(x), incluidas las sintaxis cumsum(x,dim), cumsum(_,direction), cumprod(x,dim) y cumprod(_,direction)
Diferenciasdiff(x), incluidas las sintaxis diff(x,n) y diff(x,n,dim)
Concatenación y remodelaciónTraspuestax' o x.'
Concatenacióncat, vertcat y horzcat
Remodelaciónreshape(x,[10 1])
Crear una matriz diagonal u obtener elementos diagonales de una matrizdiag(x2D), donde x2D es una matriz o un vector, incluida la sintaxis diag(x2D,k)
Funciones elementalesPotencia de matrices cuadradasx2D^a
Potencia por puntosx.^a
Raíz cuadradasqrt(x)
Norma (euclidiana)

norm(x) para un escalar o vector x, que calcula sqrt(sum(x.^2)). Para x no vectorial o para otros tipos de norma, norm(x) devuelve la expresión de caja negra

fcn2optimexpr(@norm,x,Analysis="off")
Senosin(x)
Cosenocos(x)
Secantesec(x)
Cosecantecsc(x)
Tangentetan(x)
Arcosenoasin(x)
Arcocosenoacos(x)
Arcosecanteasec(x)
Arcocosecanteacsc(x)
Arcotangenteatan(x)
Exponencialexp(x)
Logaritmolog(x)
Seno hiperbólicosinh(x)
Coseno hiperbólicocosh(x)
Secante hiperbólicasech(x)
Cosecante hiperbólicacsch(x)
Tangente hiperbólicatanh(x)
Seno hiperbólico inversoasinh(x)
Coseno hiperbólico inversoacosh(x)
Secante hiperbólica inversaasech(x)
Cosecante hiperbólica inversaacsch(x)
Tangente hiperbólica inversaatanh(x)

Nota

a^x no es compatible con una variable de optimización x.

Sin embargo, si se limita a para que sea estrictamente positivo, se puede utilizar el equivalente exp(x*log(a)).

Operaciones que devuelven variables de optimización

Estas operaciones en variables de optimización devuelven una variable de optimización.

OperaciónEjemplo
Indexación numérica de N dimensiones (incluye dos puntos y end)x(3,5:end)
Indexación lógica de N dimensionesx(ind), donde ind es un arreglo lógico
Indexación de cadenas de N dimensionesx(str1,str2), donde str1 y str2 son cadenas
Indexación mixta de N dimensiones (combinación de valores numéricos, lógicos, dos puntos, end y cadenas)x(ind,str1,:)
Indexación lineal numérica (incluye dos puntos y end)x(17:end)
Indexación lineal lógicax(ind)
Indexación lineal de cadenasx(str1)

Operaciones en expresiones de optimización

Las expresiones de optimización son compatibles con todas las operaciones que admiten las variables de optimización y devuelven expresiones de optimización. Además, se pueden indexar o asignar expresiones de optimización mediante la indexación numérica, lógica, de cadena o lineal, incluyendo los operadores de dos puntos y end para la indexación numérica o lineal.

Operaciones que devuelven expresiones de restricción

Las restricciones son dos expresiones comparables cualesquiera que incluyen uno de los siguientes operadores de comparación: ==, <= o >=. Las expresiones comparables son del mismo tamaño o una de las expresiones debe ser escalar, es decir, de tamaño 1 por 1. Para obtener ejemplos, consulte Expressions for Constraints and Equations.

Algunas operaciones no documentadas funcionan con variables y expresiones de optimización

Internamente, algunas funciones y operaciones solo llaman a las operaciones compatibles documentadas. En estos casos, puede obtener resultados razonables de las funciones u operaciones. Por ejemplo, en este momento squeeze llama internamente a reshape, que es una operación compatible documentada. Así que si se aplica squeeze a una variable de optimización entonces se puede obtener una expresión razonable.

Las funciones y operaciones no compatibles requieren fcn2optimexpr

Si su función objetivo o sus funciones de restricción no lineales no son compatibles, convierta una función de MATLAB® en una expresión de optimización utilizando fcn2optimexpr. Para ver ejemplos, consulte Convertir una función no lineal en una expresión de optimización o la página de referencia de la función fcn2optimexpr.

Consulte también

| |

Temas relacionados