Main Content

rank

Rango de una matriz

Descripción

k = rank(A) devuelve el rango de la matriz A.

Utilice sprank para determinar el rango estructural de una matriz dispersa.

ejemplo

k = rank(A,tol) especifica una tolerancia diferente para su uso en el cálculo del rango. El rango se calcula como el número de valores singulares de A que sean mayores que tol.

ejemplo

Ejemplos

contraer todo

Determine si una matriz es de rango completo.

Cree una matriz de 3 por 3. Los valores en la tercera columna son el doble de grandes que los de la segunda columna.

A = [3 2 4; -1 1 2; 9 5 10]
A = 3×3

     3     2     4
    -1     1     2
     9     5    10

Calcule el rango de la matriz. Si la matriz es de rango completo, el rango es igual al número de columnas, size(A,2).

rank(A)
ans = 
2
size(A,2)
ans = 
3

Dado que las columnas son linealmente dependientes, la matriz es de rango deficiente.

Calcule el rango de una matriz utilizando una tolerancia.

Cree una matriz diagonal de 4 por 4. La diagonal tiene un valor pequeño igual a 1e-15.

A = [10 0 0 0; 0 25 0 0; 0 0 34 0; 0 0 0 1e-15]
A = 4×4

   10.0000         0         0         0
         0   25.0000         0         0
         0         0   34.0000         0
         0         0         0    0.0000

Calcule el rango de la matriz.

rank(A)
ans = 
3

La matriz no se considera de rango completo, dado que el algoritmo predeterminado calcula el número de valores singulares superiores a max(size(A))*eps(norm(A)). Para esta matriz se excluye el valor pequeño en la diagonal, dado que es menor que la tolerancia.

Calcule el rango de la matriz de nuevo, pero especifique una tolerancia de 1e-16.

rank(A,1e-16)
ans = 
4

Argumentos de entrada

contraer todo

Matriz de entrada.

Tipos de datos: single | double
Soporte de números complejos:

Tolerancia, especificada como escalar. Para obtener más información, consulte la sección Algoritmos.

Ejemplo: rank(A,1e-5)

Más acerca de

contraer todo

Rango

El número de columnas linealmente independientes en una matriz es el rango de la matriz. El rango de fila y columna de una matriz siempre son iguales.

Una matriz es de rango completo si su rango es el mayor posible para una matriz del mismo tamaño, y de rango deficiente si no tiene el rango completo. El rango ofrece una medida de la dimensión del rango o el espacio de columna de la matriz, que es la colección de todas las combinaciones lineales de las columnas.

Algoritmos

rank utiliza un método basado en la descomposición en valores singulares o SVD. El algoritmo SVD requiere más tiempo que algunas alternativas, pero también es el más fiable.

El rango de una matriz A se calcula como el número de valores singulares que sean mayores que una tolerancia. De forma predeterminada, la tolerancia es max(size(A))*eps(norm(A)). Sin embargo, puede especificar una tolerancia diferente con el comando rank(A,tol).

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a