Let $H$ be a symmetric matrix over $\mathbb R^n$. Given some vector $u$, I would like to express $u$ in the eigenbasis for $H$. Can this be done efficiently, perhaps using some kind of iterative method? I know there are iterative methods for computing the eigenbasis itself, but computing the entire eigenbasis would represent quadratically more data than I actually need ($n^2$ reals rather than only $n$), so I was hoping I might be able to get a speed up by using a more targeted method.
I only have implicit access to $H$ - i.e. I can compute matrix-vector products $Hx$. I would like to avoid having to actually compute $H$ if possible, although I would be happy with anything faster than computing $H$ and then diagonalizing it directly.