[petsc-users] Matrix equation involving square-root
Jose E. Roman
jroman at dsic.upv.es
Sun May 22 10:55:56 CDT 2016
The latest version of SLEPc has functionality for computing f(A)*v - this includes the square root. See chapter 7 of the users guide (MFN). So I guess you could use an MFNSolve within a shell matrix in a KSP for your linear system.
Currently the solver is quite basic (restarted Krylov iteration). I plan to add further improvements, so I would be interested in applications that need this. If you are interested, write to my personal email.
Jose
> El 22 may 2016, a las 2:55, Matthew Knepley <knepley at gmail.com> escribió:
>
> On Sat, May 21, 2016 at 5:57 PM, Jeff Steward <jeffsteward at gmail.com> wrote:
> I have a real SPD matrix A, and I would like to find x for
>
> (A + A^{1/2})x = b
>
> where A^{1/2} is the unique matrix such that A^{1/2}A^{1/2} = A. The trouble is I don't have A^{1/2} (unless I compute the eigenpairs of A which is fairly expensive), only A.
>
> Is there a computationally efficient method in PETSc to find x in my case? Ideally I would like to use an iterative method and a matrix shell for A due to memory concerns and the fact that I don't need an exact solution.
>
> There are iterative methods for the matrix square root (https://en.wikipedia.org/wiki/Square_root_of_a_matrix), but they are
> for dense matrices. I do not know of a method beyond direct factorization that works for sparse matrices.
>
> If you are getting this fractional power from a continuous problem (like subdiffusion), then you
> should handle it with discretization rather than matrix tools.
>
> Thanks,
>
> Matt
>
> Best wishes,
>
> Jeff
>
>
>
> --
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
More information about the petsc-users
mailing list