I am working on a problem that involves taking fractional powers of particular matrices.
For the matrix A with 2 on the main diagonal and -1 on the sub and super diagonal (the finite difference matrix for the Dirichlet Laplacian in 1D), there was basically no difference between using MATLAB's sqrtm(A)
function and diagonalizing the matrix ([V,D]=eig(A)
, A = V\D*V
) and computing V\D^(1/2)*V
even if the matrix was as large as 1000x1000. This made me think I could compute other fractional powers V\D^(1/n)*V
that MATLAB does not have built in functions for.
However when I consider the matrix A for the Dirichlet Laplacian in 2D, there is a significant difference between MATLAB's sqrtm function and the diagonalization procedure I used above even if the matrix was as small as 100x100. In particular, MATLAB's sqrtm function is better and my results don't make any sense if I do it the other way.
I am wondering if anyone can explain why this happens and if there is a way to fix it so that I can compute fractional powers of a large matrix in MATLAB.
A^(2/3)
. Is there a reason this is undesirable? $\endgroup$