On Thu, Mar 31, 2011 at 13:44, Gong Ding <gdiso at ustc.edu> wrote: > This afternoon, I installed slepc for computing the singualr value > (condition number) of the jacobian matrix. > However, slepc SVD solver broken for smallest singualr value. > Fortunately, superlu gives an approximate condition number, which in the > order of 1e22. > If I remove the connection, condition number is in the order of 1e10. >
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. > > Is it possible to use Tikhonov regularization (A^TA + sigma I)x = A^Tb with > this problem? > Of course, I need to do it during the nonlinear iteration. That is a > Newton-Tikhonov method. > Sure, you can regularize the Jacobian however you like when using SNES. > Or I have to use direct solver without other choice? > 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. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110331/69b147a2/attachment.htm>
