Given a diagonal matrix $D$, with diagonal elements given by vector $\mathbf{d}$. Representing this in Einstein notation gives

$$ D_{ij} = \delta_{ijk} d_k $$


$$ \delta_{ijk} = \begin{cases} 1 & \text{if } i = j = k \\ 0 & \text{ otherwise} \end{cases} $$

If I now apply this in a matrix multiplication, e.g.

$$ (AD)_{lj} = A_{li} D_{ij} = A_{li} \delta_{ijk} d_k = A_{li} d_i $$ or $$ (ADA)_{ml} = A_{mi} D_{ij} A_{jl} = A_{mi} \delta_{ijk} d_k A_{jl} = A_{mi} d_i A_{il} $$

The first example makes sense entry-wise, but only if there is no summation over $i$. Also, the indices on the LHS and RHS do not match anymore. The same is true for the second example, but only if there is summation over all three $i$'s.

This obviously violates Einstein notation, but I don't see in which step a false assumption is made. My questions are therefore:

  1. Where do I go wrong in my reasoning?
  2. Is there some other way to exploit the fact that $D$ is diagonal (in index notation)?
  • $\begingroup$ This is going against the whole point of Einstein notation. Einstein notation is a way of performing tensor contractions using indices, without having to deal with explicit components. Writing $D_{ij} = \delta_{ijk} d_k$ with $\delta_{ijk}$ as you defined it is highly artificial and can only hold in very special coordinate systems. $\endgroup$
    – knzhou
    Nov 21, 2018 at 14:26
  • $\begingroup$ You should not exploit the fact that $D$ is a diagonal matrix, because $D$ isn't a matrix. It's a tensor, whose components in some particular coordinate system are a matrix, which could be diagonal if the coordinate system is special. You can force Einstein notation to work for this, but it's designed to be independent of coordinate system. $\endgroup$
    – knzhou
    Nov 21, 2018 at 14:27
  • $\begingroup$ Thanks for your responses. In what sense is the 'generalized' Kronecker delta in this case invalid whereas the rank 2 version is widely used in index notation? To provide a bit of context, in my derivation the second example occurs as $ADA^T$ where the matrix A is orthonormal. Writing the diagonal matrix in this way allows me to eliminate the orthonormal matrices. Is there a way I could do this without abusing notation this much? $\endgroup$
    – user495268
    Nov 21, 2018 at 15:01
  • $\begingroup$ The Kronecker delta $\delta^i_j$ represents a $(1, 1)$ tensor. This is a linear map, namely the identity map. The crucial difference is that its components are $1$ if $i = j$ in all coordinate systems. That isn't true for your rank $3$ tensor. $\endgroup$
    – knzhou
    Nov 21, 2018 at 15:10
  • $\begingroup$ If you just want to do matrix manipulations, Einstein notation isn't going to be helpful, because it will try to stop you from doing things that don't work in all coordinate systems. Just treat the matrices as you normally would and don't worry about indices matching up! $\endgroup$
    – knzhou
    Nov 21, 2018 at 15:12

1 Answer 1


Your main error is that $\mathbf d$ is not a vector! You are to understand that vectors are not unidimensional arrays of numbers, as tensors are not 2D arrays, i.e. matrices. Those arrays are just representations of vectors, tensors, and so on.

Einsteins's summation rule works for contraction between covariant and contravariant indices. I can't give here the full treatment. You should refer to a tensor algebra source for a more complete explanation of the subject.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.