Estoy tratando de entender cómo aplicar la regla del producto para funciones matriciales o vectoriales.
En concreto, estoy tratando de resolver cómo aplicar la regla del producto a $$x^TAx = f(x)g(x)$$ donde $f(x) = x^T$ , $g(x)=Ax$ , $x\in\mathbb{R}^N$ y $A\in \mathbb{R}^{NxN}$
Sé que $\nabla_x x^TAx = (A + A^T)x$ o $x^T(A + A^T)$ dependiendo de la disposición, sin embargo sólo estoy tratando de usar esto como un ejemplo para ver si puedo obtener el mismo resultado con la regla del producto.
Esta pregunta lo explica para las funciones de valor escalar como $$f(x)\nabla_x g(x)+g(x)\nabla_x f(x).$$
Sin embargo, las cosas no tienen las dimensiones correctas cuando introduzco los valores en lo anterior, es decir. Como Travis escribió en el comentario de abajo, deberíamos tener:
$$ \nabla_x(x^TAx) = (\nabla_x x^T)Ax + x^T\nabla_x(Ax) $$
Sin embargo, eso todavía le deja con al menos un $x$ en la primera expresión y un $x^T$ en el segundo. No veo cómo eso puede conformarse y cómo te deja con $(A + A^T)x$ o $x^T(A + A^T)$
Esta pregunta se pregunta esencialmente lo mismo, pero la respuesta no implica realmente la regla del producto anterior. Me imagino que debe haber alguna fórmula general para aplicar, como con las funciones de valor escalar.
¿Estoy escribiendo correctamente la regla del producto en este caso? ¿Hay algo que me falte o que esté haciendo mal?
EDITAR:
Partiendo de la respuesta de Algabraic Pavel... Creo que el problema es que hay que formular las funciones $f(x)$ y $f(x)$ así que están en el mismo espacio.
Es decir, para $f,g:\mathbb{R}^N\rightarrow \mathbb{R}^M$ la regla del producto es:
$$\nabla_x (f(x)^Tg(x)) = f(x)^T\nabla_x g(x) + g(x)^T \nabla f(x)$$
Así, en el ejemplo anterior, si dejamos que $f(x) = x$ , $g(x)=Ax$ entonces se cumple la fórmula.
Como otro ejemplo, considere $$Axx^T$$ y que $f(x) = x^T A^T$ y $g(x) = x^T$ . Tenemos ambos $f,g:\mathbb{R}^{Nx1} \rightarrow \mathbb{R}^{1xN}$ y
$$\nabla_x (f(x)^Tg(x)) = \nabla_x (Axx^T) = Ax + xA^T$$
que se mantiene, fíjate que si hicimos $f(x) = Ax$ y no $f(x) = (Ax)^T$ la regla se desmorona.
Sin embargo, todavía no sé si esto es válido en todos los casos. ¿Algún otro ejemplo?
0 votos
La regla es formalmente la misma que para las funciones de valor escalar, por lo que $$\nabla_X (x^T A x) = (\nabla_X x^T) A x + x^T \nabla_X(A x) .$$ A continuación, podemos volver a aplicar la regla del producto al segundo término. Nota: si $A$ es simétrica podemos simplemente la expresión final usando $\nabla_X (x^T) = (\nabla_X x)^T$ .
0 votos
¿Pero eso no te deja todavía con una $x^T$ en una expresión y una $x$ ¿en otro? No veo cómo se ajustan... pero sé que claramente me estoy perdiendo algo. Sabemos que la respuesta es $(A + A^T)x$
0 votos
Su notación es bastante engañosa, especialmente al utilizar $X$ en lugar de $x$ como la dirección de la diferenciación. Ahora veo que estás preguntando por otra cantidad en general.
0 votos
Ya debería estar arreglado.
0 votos
Existe una regla muy general para la diferencial de un producto $$d(A\star B)=dA\star B + A\star dB$$ donde $\star$ es cualquier tipo de producto (matricial, Hadamard, Frobenius, Kronecker, diádico, etc} y las cantidades $(A,B)$ pueden ser escalares, vectores, matrices o tensores. No existe una regla general para el gradiente de un producto.
0 votos
Para que tenga sentido una aplicación directa de la regla del producto como la que intentas hacer, primero tienes que definir qué significa aplicar $\nabla$ a un vector. ¿Qué quiere decir en sus ecuaciones?
0 votos
En su edición, ¿cómo se define el gradiente de una matriz?