SingularValueDecomposition.Solve Method |
Namespace: Meta.Numerics.Matrices
Exception | Condition |
---|---|
ArgumentNullException | rhs is null. |
DimensionMismatchException | rhs does not have the same dimension as the original matrix. |
InvalidOperationException | The original matrix is not square. |
For singular and nearly-singular matrices, this method operates differently than other solution methods like Solve(IReadOnlyList<Double> ) and Solve(IReadOnlyList<Double>). For singular and nearly-singular matrices, those methods tend to produce very large or even infinite solution components that delicately cancel to produce the required right-hand-side, but have little significance to the problem being modeled because they arise from inverting very small singular values of the original matrix that are dominated by floating point rounding errors. The SVD solution discards those singular values to obtain a solution vector driven by the dominant, non-singular parts of A. While this solution does not have the minimum achievable |Ax - b|, it is often more representative of the desired solution to the problem being modeled.
For original matrices that are not singular or nearly-singular, this method will compute the same solution as other methods.
This method is only available for square original matrices.