<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, May 21, 2016 at 5:57 PM, Jeff Steward <span dir="ltr"><<a href="mailto:jeffsteward@gmail.com" target="_blank">jeffsteward@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><div>I have a real SPD matrix A, and I would like to find x for<br><br></div>(A + A^{1/2})x = b<br><br></div>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. <br><br>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.</div></div></div></div></blockquote><div><br></div><div>There are iterative methods for the matrix square root (<a href="https://en.wikipedia.org/wiki/Square_root_of_a_matrix">https://en.wikipedia.org/wiki/Square_root_of_a_matrix</a>), but they are</div><div>for dense matrices. I do not know of a method beyond direct factorization that works for sparse matrices.</div><div><br></div><div>If you are getting this fractional power from a continuous problem (like subdiffusion), then you</div><div>should handle it with discretization rather than matrix tools.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Best wishes,<br><br></div>Jeff<br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>