Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Escritura de funciones de objetivo vectorial y matriz

¿Qué son las funciones objetivo vector o Matrix?

Algunos solucionadores, como y, tienen funciones objetivas que son vectores o matrices.fsolvelsqcurvefit La principal diferencia en el uso entre estos tipos de funciones objetivas y es la forma de escribir sus derivados.funciones de objetivo escalar Los derivados parciales de primer orden de una función con valores vectoriales o con valores de matriz se denominan Jacobianos; los derivados parciales de primer orden de una función escalar se denomina degradado.

Para obtener información sobre las funciones objetivas de valor complejo, consulte.Números complejos en SolversOptimization Toolbox

Jacobianos de funciones vectoriales

Si es un vector de variables independientes, y () es una función vectorial, el jacobiano () esxFxJx

Jij(x)=Fi(x)xj.

Si tiene componentes, y tiene componentes, es una-por-matriz.FmxkJmk

Por ejemplo, si

F(x)=[x12+x2x3sin(x1+2x23x3)],

entonces () esJx

J(x)=[2x1x3x2cos(x1+2x23x3)2cos(x1+2x23x3)3cos(x1+2x23x3)].

El archivo de función asociado a este ejemplo es:

function [F jacF] = vectorObjective(x) F = [x(1)^2 + x(2)*x(3);     sin(x(1) + 2*x(2) - 3*x(3))]; if nargout > 1 % need Jacobian     jacF = [2*x(1),x(3),x(2);         cos(x(1)+2*x(2)-3*x(3)),2*cos(x(1)+2*x(2)-3*x(3)), ...         -3*cos(x(1)+2*x(2)-3*x(3))]; end

Para indicar al solucionador que la función objetiva incluye un jacobiano, establezca la opción.SpecifyObjectiveGradienttrue Por ejemplo,

options = optimptions('lsqnonlin','SpecifyObjectiveGradient',true);

Los jacobianos de Matrix Functions

El jacobiano de una Matrix () se define cambiando la matriz a un vector, columna por columna.Fx Por ejemplo, vuelva a escribir la matriz

F=[F11F12F21F22F31F32]

como vector:f

f=[F11F21F31F12F22F32].

El jacobiano de es como el jacobiano de,Ff

Jij=fixj.

Si es un-por-matriz, y es un-vector, el jacobiano es un-por-matriz.Fmnxkmnk

Por ejemplo, si

F(x)=[x1x2x13+3x225x2x14x2/x14x22x13x24],

entonces el jacobiano de esF

J(x)=[x2x14x13502x23x126x2x2/x121/x13x124x23].

Los jacobianos con variables independientes con valores de matriz

Si es una matriz, defina el jacobiano de () cambiando la matriz a un vector, columna por columna.xFxx Por ejemplo, si

X=[x11x12x21x22],

a continuación, el degradado se define en términos del vector

x=[x11x21x12x22].

Con

F=[F11F12F21F22F31F32],

y con la forma vectorial de como arriba, el jacobiano de () se define como el jacobiano de ():fFFXfx

Jij=fixj.

Así, por ejemplo,

J(3,2)=f(3)x(2)=F31X21, and J(5,4)=f(5)x(4)=F22X22.

Si es una-por-matriz y es una-por-matriz, entonces el jacobiano es un-por-matriz.Fmnxjkmnjk

Temas relacionados