Skip to content

Instantly share code, notes, and snippets.

@sethaxen
Created January 30, 2024 22:18
Show Gist options
  • Save sethaxen/92e88dc8c04ab0e49d1e6f590d4c458a to your computer and use it in GitHub Desktop.
Save sethaxen/92e88dc8c04ab0e49d1e6f590d4c458a to your computer and use it in GitHub Desktop.
Derivation of pullback of ldiv

Let $A$ be an $n \times m$ matrix, $Y$ be an $m \times k$ matrix, and $B$ be an $n \times k$ matrix such that $$Y = A \ B = A^+ \ B,$$ where $A^+$ is a Moore-Penrose pseudoinverse, given by $$ A^+ = \begin{cases} A^\top (AA^\top)^{-1} & n \le m\ (A^\top A)^{-1} A^\top & n \ge m\ \end{cases}. $$ Let $C = A^+$. Then

$$ \dot{C} = \begin{cases} \dot{A}^\top (AA^\top)^{-1} - A^\top (AA^\top)^{-1} (\dot{A} A^\top + A \dot{A}^\top) (AA^\top)^{-1} & n \le m\\ (A^\top A)^{-1} \dot{A}^\top -(A^\top A)^{-1} (\dot{A}^\top A + A^\top \dot{A}) (A^\top A)^{-1} A^\top & n \ge m\\ \end{cases}\\ = \begin{cases} (I - CA) \dot{A}^\top (AA^\top)^{-1} - C \dot{A} C & n \le m\\ (A^\top A)^{-1} \dot{A}^\top (I - AC) - C \dot{A}C & n \ge m\\ \end{cases}\\ = \begin{cases} (I - CA) \dot{A}^\top C^\top C - C \dot{A} C & n \le m\\ CC^\top \dot{A}^\top (I - AC) - C \dot{A}C & n \ge m\\ \end{cases}\\ = (I - CA) \dot{A}^\top C^\top C + CC^\top \dot{A}^\top (I - AC) - C \dot{A} C. $$

Then, we can work out the pullback: $$ \langle \overline{C}, \dot{C} \rangle = \langle\overline{C}, - C \dot{A} C\rangle + \langle\overline{C},(I - CA) \dot{A}^\top C^\top C\rangle + \langle\overline{C},C C^\top \dot{A}^\top (I - AC)\rangle\ = \langle-C^\top\overline{C}C^\top + C^\top C\overline{C}^\top (I - CA) + (I - AC)\overline{C}^\top C C^\top, \dot{A} \rangle\ \overline{A} = -C^\top\overline{C}C^\top + C^\top C\overline{C}^\top (I - CA) + (I - AC)\overline{C}^\top C C^\top $$

For the next step, we have $Y = C B$, so $\dot{Y} = \dot{C}B + C \dot{B}$ and

$$ \overline{B} = C^\top\overline{Y}\\ \overline{C} = \overline{Y}B^\top $$

Combining, we have $$ \overline{A} = -C^\top\overline{Y}B^\top C^\top + C^\top CB\overline{Y}^\top (I - CA) + (I - AC)B\overline{Y}^\top C C^\top\ =-\overline{B}Y^\top + C^\top Y (\overline{Y}^\top - \overline{B}^\top A) + (B - AY)\overline{B}^\top C^\top\ =-\overline{B}Y^\top + A^\top \backslash Y (\overline{Y}^\top - \overline{B}^\top A) + (B - AY)\overline{B}^\top / A^\top. $$

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment