I have a square matrix A. Is there a way I can apply operations like addition, subtraction, matrix multiplication, matrix inverse and transpose to get the diagonal of the matrix. For example having:
$$\begin{pmatrix}1&2\\3&4\end{pmatrix}$$
I would like to get $(1,4)$.
P.S. based on the conversation with mvw, here is a better description:
I am on board of an alien space ship and the board computer allows only matrix operations but access to the individual matrix elements is blocked. I can only use addition, subtraction, matrix multiplication, matrix inverse and transpose. No access to individual row/column/element. I can only create matrices of any dimension $(1 x n)$, $(n x 1)$, $(n x 2n)$ that have all zeros or all ones. Is there a way for me to get a diagonal vector?
Answer
Note: This solution is not working for the updated question.
$$
D = \text{diag}(a_{11}, \ldots, a_{nn}) = \sum_{i=1}^n P_{(i)} A P_{(i)}
$$
where $P_{(i)}$ is the projection on the $i$-th coordinate:
$$
(P_{(i)})_{jk} = \delta_{ij} \delta_{jk} \quad (i,j,k \in \{1,\ldots,n\})
$$
and $\delta$ is the Kronecker delta ($1$ for same index values, otherwise $0$).
Transforming the diagonal matrix $D$ into a row vector can be done by
$$
d = u^T D
$$
where each of the $n$ components of $u$ is $1$.
$$
u = (1,1,\ldots,1)^T
$$
Combining both gives
$$
d = \sum_i u^T P_{(i)} A P_{(i)} = \sum_i e_i^T A P_{(i)}
$$
where $e_i$ is the $i$-th canonical base vector.
Example:
octave> A, P1, P2, u
A =
1 2
3 4
P1 =
1 0
0 0
P2 =
0 0
0 1
u =
1
1
octave> u'*(P1*A*P1+P2*A*P2)
ans =
1 4
No comments:
Post a Comment