How to reduce the large condition number of matrix

33 visualizaciones (últimos 30 días)
Mathis
Mathis el 17 de Jul. de 2018
Respondida: BhaTTa el 6 de Sept. de 2024
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.

Respuestas (1)

BhaTTa
BhaTTa el 6 de Sept. de 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.

Categorías

Más información sobre Mathematics en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by