Tuesday, 11 October 2016

matrices - Is there a way to extract the diagonal from a matrix with simple matrix operations




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

real analysis - How to find $lim_{hrightarrow 0}frac{sin(ha)}{h}$

How to find $\lim_{h\rightarrow 0}\frac{\sin(ha)}{h}$ without lhopital rule? I know when I use lhopital I easy get $$ \lim_{h\rightarrow 0}...