How to reduce the large condition number of matrix

33 views (last 30 days)
Recently, I encounter a problem. I need to solve a equation with the form of Ax=b, where A is a matrix with a large condition number. The calculated value of x deviate from the actual value a lot. Under this condition, how to effectively reduce the condition number of M or how to solve this illed problem well? Thank you very much.

Answers (1)

BhaTTa
BhaTTa on 6 Sep 2024
@Mathis, When dealing with a system of linear equations ( Ax = b ) where ( A ) has a large condition number, the solution can be sensitive to small perturbations in ( A ) or ( b ). This is known as an ill-conditioned problem. Here are some strategies to address this issue:Strategies to Solve Ill-Conditioned Systems
  1. Regularization:
  • Tikhonov Regularization (Ridge Regression): Add a regularization term to the matrix equation to stabilize the solution.
2. Preconditioning:
  • Use a preconditioner matrix ( M ) to transform the system into one with a lower condition number. Solve ( MAx = Mb ) instead, where ( M ) is chosen such that ( MA ) is better conditioned than ( A ).
3. Iterative Refinement:
  • Use an initial solution and refine it iteratively. This technique can improve the accuracy of the solution when using floating-point arithmetic.
4. Scaling:
  • Scale the matrix ( A ) and vector ( b ) to reduce the condition number. This involves normalizing the rows or columns of ( A ) to have similar magnitudes.
5. Use of More Accurate Arithmetic:
  • If possible, use arbitrary precision arithmetic or double precision to reduce numerical errors.

Categories

Find more on Mathematics in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!