rank
Find rank of symbolic matrix
Syntax
Description
Examples
Find Rank of Matrix
syms a b c d A = [a b; c d]; rank(A)
ans = 2
Rank of Symbolic Matrices Is Exact
Symbolic calculations return the exact rank of a matrix while numeric calculations can suffer from round-off errors. This exact calculation is useful for ill-conditioned matrices, such as the Hilbert matrix. The rank of a Hilbert matrix of order n is n.
Find the rank of the Hilbert matrix of order 15
numerically.
Then convert the numeric matrix to a symbolic matrix using sym
and
find the rank symbolically.
H = hilb(15); rank(H) rank(sym(H))
ans = 12 ans = 15
The symbolic calculation returns the correct rank of 15
.
The numeric calculation returns an incorrect rank of 12
due
to round-off errors.
Rank Function Does Not Simplify Symbolic Calculations
Consider this matrix
After simplification of 1-sin(x)^2
to cos(x)^2
,
the matrix has a rank of 1
. However, rank
returns
an incorrect rank of 2
because it does not take
into account identities satisfied by special functions occurring in
the matrix elements. Demonstrate the incorrect result.
syms x A = [1-sin(x) cos(x); cos(x) 1+sin(x)]; rank(A)
ans = 2
rank
returns an incorrect result because
the outputs of intermediate steps are not simplified. While there
is no fail-safe workaround, you can simplify symbolic expressions
by using numeric substitution and evaluating the substitution using vpa
.
Find the correct rank by substituting x
with
a number and evaluating the result using vpa
.
rank(vpa(subs(A,x,1)))
ans = 1
However, even after numeric substitution, rank
can
return incorrect results due to round-off errors.
Input Arguments
Version History
Introduced before R2006a