If a symmetric matrix $A$ has SVD $A=U\Sigma U^{\top}$, then $A^k=U\Sigma^kU^{\top}$. What would be the most efficient algorithm to compute $A^k$ such that the worst case time complexity is as low as possible?
I am thinking that :
1. Take SVD of $A$
2. Since we know that $A^k=U\Sigma^kU^{\top}$ we can effectively calculate $A^k$ because U is the matrix of eigen vectors of A, each column of U is the eigen vector of A corresponding to each eigen value.
Would this approach be correct ? Or is there a better way.
Also what would be the time complexity of the above method ?