Reciprocal condition number
C = rcond(A)
Examine the sensitivity of a badly conditioned matrix.
A notable matrix that is symmetric and positive definite, but badly conditioned, is the Hilbert matrix. The elements of the Hilbert matrix are H(i,j) = 1/(i + j -1).
Create a 10-by-10 Hilbert matrix.
A = hilb(10);
Find the reciprocal condition number of the matrix.
C = rcond(A)
C = 2.8286e-14
The reciprocal condition number is small, so
The condition of
A has an effect on
the solutions of similar linear systems of equations. To see this,
compare the solution of Ax = b to
that of the perturbed system, Ax = b
Create a column vector of ones and solve Ax = b.
b = ones(10,1); x = A\b;
Now change b by
solve the perturbed system.
b1 = b + 0.01; x1 = A\b1;
Compare the solutions,
ans = 1.1250e+05
A is badly conditioned, a small change
b produces a very large change (on the order
of 1e5) in the solution to x = A\b. The system
is sensitive to perturbations.
Examine why the reciprocal condition number is a more accurate measure of singularity than the determinant.
Create a 5-by-5 multiple of the identity matrix.
A = eye(5)*0.01;
This matrix is full rank and has five equal singular values,
which you can confirm by calculating
Calculate the determinant of
ans = 1.0000e-10
Although the determinant of the matrix is close to zero,
actually very well conditioned and not close
to being singular.
Calculate the reciprocal condition number of
ans = 1
The matrix has a reciprocal condition number of
is, therefore, very well conditioned. Use
det(A) to confirm singularity of a matrix.
Reciprocal condition number, returned as a scalar. The data
C is the same as
The reciprocal condition number is a scale-invariant measure of how close a given matrix is to the set of singular matrices.
C is near 0, the matrix is nearly
singular and badly conditioned.
C is near 1.0, the matrix is