La fórmula de Jacobi dice
$$\frac{d}{d t} \operatorname{det} A(t)=\operatorname{tr}\left(\operatorname{adj}(A(t)) \frac{d A(t)}{d t}\right)$$
para una matriz $A$ que depende de un valor escalar $t$ . Sin embargo, en tu caso tienes $f(A)$ que es presumiblemente una función valorada por la matriz que depende de una matriz. Así que no es directamente aplicable aquí. Deberíamos tener $A\in\mathbb R^{n\times n}$ , $f\colon\mathbb R^{n\times n}\to\mathbb R^{n\times n}$ y no $m\times n$ , si no $\det(f(A))$ no tiene necesariamente sentido.
Por la regla de la cadena tenemos
$$ \frac{\partial \det(f(A))}{\partial A} = \frac{\partial \det(f(A))}{\partial f(A)}\circ\frac{\partial f(A)}{\partial A} $$
Tenga en cuenta que escribo " $\circ$ " en lugar de " $\cdot$ "ya que, de hecho, la regla de la cadena dice que la derivada de una composición de funciones es igual a la composición de las derivadas. Como las funciones lineales corresponden a matrices, y la multiplicación de matrices es equivalente a la composición de funciones lineales, se suele escribir " $\cdot$ " en su lugar. Sin embargo, esto se vuelve problemático una vez que queremos hacer derivadas con respecto a las matrices, ya que podemos encontrarnos con tensores de orden superior, como el tensor de orden 4 $\frac{\partial f(A)}{\partial A}$ para lo cual la multiplicación de matrices ya no tiene sentido. En su lugar, tenemos que pensar en contracciones tensoriales más generales. (se puede seguir utilizando " $\cdot$ ", si se sabe que significa contracción del tensor). En este caso concreto tenemos
- $\frac{\partial \det(f(A))}{\partial A}$ es un tensor de segundo orden $ \frac{\partial \det(f(A))}{\partial A} = \Big(\frac{\partial \det(f(A))}{\partial A_{kl}}\Big)_{kl}$
- $\frac{\partial \det(f(A))}{\partial f(A)}$ es un tensor de segundo orden $ \frac{\partial \det(f(A))}{\partial f(A)} = \Big(\frac{\partial \det(f(A))}{\partial f(A)_{ij}}\Big)_{ij}$
- $\frac{\partial f(A)}{\partial A} $ es un tensor de cuarto orden $ \frac{\partial f(A)}{\partial A} = \Big(\frac{\partial f(A)_{ij}}{\partial A_{kl}} \Big)^{ij}_{kl}$
Y se combinan como
$$ \frac{\partial \det(f(A))}{\partial A_{kl}} = \sum_{ij} \frac{\partial \det(f(A))}{\partial f(A)_{ij}} \frac{\partial f(A)_{ij}}{\partial A_{kl}} \qquad(1)$$
Resumiendo, tenemos $\frac{\partial \det(f(A))}{\partial f(A)} =\operatorname{adj}(f(A))^T$ Sin embargo, hay que tener cuidado de cómo se compone con $\frac{\partial f(A)}{\partial A}$ . Si $f(A)=A$ entonces
$$\frac{\partial A}{\partial A} = \Big(\frac{\partial A_{ij}}{\partial A_{kl}}\Big)^{ij}_{kl} = (\delta_{ik}\delta_{jl})^{ij}_{kl} = I\otimes I$$
es el tensor de identidad, como era de esperar.
Ejemplos:
- $f(A)=A$ entonces $\frac{\partial f(A)}{\partial A} = I\otimes I$ y $\frac{\partial \det(f(A))}{\partial A}= \operatorname{adj}(A)^T$
- $f(A)=A^{-1}$ entonces $\frac{\partial f(A)}{\partial A} = - A^{-T}\otimes A^{-1}$ y $\frac{\partial \det(f(A))}{\partial A}= - A^{-T}\operatorname{adj}(A^{-1})^TA^{-T}$
- $f(A) = BA$ entonces $\frac{\partial f(A)}{\partial A} = I \otimes B$ y $\frac{\partial \det(f(A))}{\partial A}= B^T\operatorname{adj}(BA)^T$
- $f(A) = AB$ entonces $\frac{\partial f(A)}{\partial A} = B^T\otimes I$ y $\frac{\partial \det(f(A))}{\partial A}= \operatorname{adj}(AB)^T B^T$
En particular, tenemos como regla general
$$\frac{\partial f(A)}{\partial A} = U\otimes V \implies \frac{\partial \det(f(A))}{\partial A} = V^T\operatorname{adj}(f(A))^T U$$
Porque el enchufe $U\otimes V = (U_{ik}V_{jl})^{ij}_{kl}$ en $(1)$ produce $$ \frac{\partial \det(f(A))}{\partial A_{kl}} = \sum_{ij} C_{ij}U_{ik}V_{jl} \implies \frac{\partial \det(f(A))}{\partial A} = U^T C V$$
EDITAR: En realidad, aquí tengo la versión transpuesta debido a una convención de maquetación diferente, pero se entiende. Un recurso muy útil para comprobar y verificar estos cálculos es el sitio web http://www.matrixcalculus.org/ que, hasta donde yo sé, es el único CAS que puede realizar este tipo de cálculo matricial.
EDITAR 2: Ok, así que el libro que citó a su vez hace referencia el libro de cocina de matrix que a su vez es una colección de fórmulas. La identidad que citas se presenta allí sólo en forma diferencial
$$ \partial(\operatorname{det}(\mathbf{X}))=\operatorname{det}(\mathbf{X}) \operatorname{Tr}\left(\mathbf{X}^{-1} \partial \mathbf{X}\right)$$
Sin embargo, desde el principio, no debe utilizar esta identidad nunca porque sólo funciona cuando $X$ es invertible. En su lugar, hay que utilizar
$$\partial(\operatorname{det}(\mathbf{X}))=\operatorname{tr}(\operatorname{adj}(\mathbf{X}) \partial \mathbf{X}) = \operatorname{adj}(\mathbf{X})^T \cdot \partial \mathbf{X}$$
Ya que el adjunto siempre existe (*). Observando que de nuevo tanto la traza como " $\cdot$ " aquí son en realidad tensor-contracciones más generales y no sólo la multiplicación matricial estándar, esta fórmula es equivalente a (1).
(*) Tenga en cuenta que cuando lo implemente, no querrá calcular realmente las inversas o las adjuntas, sino que las sustituirá por llamadas al solucionador de sistemas lineales.
Obviamente, ambas notaciones no son óptimas, ya que no indican explícitamente sobre qué ejes tenemos que contraer. Si también necesitas esta información, tendrás que ceñirte a la notación del índice de Einstein o utilizar algo más exótico como lo que se sugiere en este artículo: https://arxiv.org/abs/1208.0197 (que en realidad me ayudó mucho a aclarar algunas confusiones aunque yo mismo no uso la notación sugerida)
Observación: Como nota al margen: la razón por la que creo que hay que evitar los rastros es doble. Por un lado, las trazas son contracciones tensoriales, por lo que es una especie de notación duplicada. Además, he visto con demasiada frecuencia que la gente implementa $tr(A^TB)$ que es extremadamente ineficiente, ya que se calcula el producto de toda la matriz, pero sólo se necesitan las entradas diagonales.
Observación 2: Por cierto, el producto de Frobenius no es más que el producto interno inducido sobre $\mathbb R^m\otimes \mathbb R^n$ , cf. https://en.m.wikipedia.org/wiki/Tensor_product_of_Hilbert_spaces (considere una matriz como $A=\sum_{i=1}^m\sum_{j=1}^n A_{ij} e_i \otimes e_j$ )