<div dir="ltr"><div class="gmail_quote">On Thu, Mar 31, 2011 at 13:44, Gong Ding <span dir="ltr"><<a href="mailto:gdiso@ustc.edu">gdiso@ustc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>This afternoon, I installed slepc for computing the singualr value (condition number) of the jacobian matrix.<br>However, slepc SVD solver broken for smallest singualr value.<br>Fortunately, superlu gives an approximate condition number, which in the order of 1e22.<br>
If I remove the connection, condition number is in the order of 1e10.<br></div></blockquote><div><br></div><div>A condition number larger than 1e12 or so usually indicates that the matrix is singular. You could compile PETSc (dev) using gcc-4.6 and configuring --with-precision=__float128. External packages won't work this way, but you can use KSP to estimate your singular values more accurately and to solve a nearly singular system.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><br>Is it possible to use Tikhonov regularization (A^TA + sigma I)x = A^Tb with this problem?<br>Of course, I need to do it during the nonlinear iteration. That is a Newton-Tikhonov method.<br>
</div></blockquote><div><br></div><div>Sure, you can regularize the Jacobian however you like when using SNES.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>Or I have to use direct solver without other choice?</div></blockquote></div><br><div>Was the direct solver producing a good solution? With such an ill-conditioned system, the solution could be incorrect in the first digit. I would at least check with __float128.</div>
</div>