Contenido principal

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

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

expandir todo

Historial de versiones

Introducido antes de R2006a