Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

det

Determinante de una matriz

Sintaxis

Descripción

ejemplo

d = det(A) devuelve el determinante de la matriz cuadrada A.

Ejemplos

contraer todo

Cree una matriz cuadrada de 3 por 3 A.

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

     1    -2     4
    -5     2     0
     1     0     3

Calcule el determinante de A.

d = det(A)
d = -32

Examine por qué el determinante no es una medida precisa de singularidad.

Cree una matriz de 10 por 10 multiplicando la matriz identidad eye(10) por un número pequeño.

A = eye(10)*0.0001;

La matriz A tiene entradas muy pequeñas en la diagonal principal. Sin embargo, A no es singular, dado que es un múltiplo de la matriz identidad.

Calcule el determinante de A.

d = det(A)
d = 1.0000e-40

El determinante es extremadamente pequeño. Es probable que una prueba de tolerancia de la forma abs(det(A)) < tol marque esta matriz como singular. Aunque el determinante de la matriz es cercano a cero, A no está, en realidad, mal condicionada. Por tanto, A no está cerca de ser singular. El determinante de una matriz puede ser, de manera arbitraria, cercano a cero sin transmitir información sobre la singularidad.

Para investigar si A es singular, utilice la función cond o la función rcond.

Calcule el número de condición de A.

c = cond(A)
c = 1

El resultado confirma que A no está mal condicionada.

Examine una matriz que sea exactamente singular, pero que tenga un determinante grande distinto de cero. En teoría, el determinante de cualquier matriz singular es cero, pero dada la naturaleza del cálculo de punto flotante, este ideal no siempre se puede alcanzar.

Cree una matriz singular diagonalmente dominante A de 13 por 13 y visualice el patrón de elementos distintos de cero.

A = diag([24 46 64 78 88 94 96 94 88 78 64 46 24]);
S = diag([-13 -24 -33 -40 -45 -48 -49 -48 -45 -40 -33 -24],1);
A = A + S + rot90(S,2);
spy(A)

Figure contains an axes object. The axes object with xlabel nz = 37 contains a line object which displays its values using only markers.

A es singular porque las filas son linealmente dependientes. Por ejemplo, sum(A) produce un vector de ceros.

Calcule el determinante de A.

d = det(A)
d = 0

El determinante de A es bastante grande, pese al hecho de que A es singular. De hecho, el determinante de A debería ser exactamente cero. La imprecisión de d se debe a la suma de errores de redondeo en la implementación de MATLAB® de la descomposición LU, que det utiliza para calcular el determinante. Este resultado demuestra algunos aspectos importantes del cálculo de determinantes numéricos. Para obtener más información, consulte la sección Limitaciones.

Argumentos de entrada

contraer todo

Matriz de entrada, especificada como matriz numérica cuadrada.

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

Limitaciones

Evite utilizar det para examinar si una matriz es singular debido a las siguientes limitaciones. Utilice cond o rcond en su lugar.

LimitaciónResultado

Por lo general, la magnitud del determinante no está relacionada con el número de condición de una matriz.

El determinante de una matriz puede ser, de manera arbitraria, grande o pequeño sin cambiar el número de condición.

det utiliza la descomposición LU para calcular el determinante, que es vulnerable a los errores de redondeo de punto flotante.

El cálculo del determinante es, en ocasiones, numéricamente inestable. Por ejemplo, det puede producir un determinante con una magnitud grande para una matriz singular, incluso aunque debería tener una magnitud de 0.

Algoritmos

det calcula el determinante a partir de los factores triangulares obtenidos por eliminación gaussiana con la función lu.

[L,U] = lu(X)
s =  det(L)      % This is always +1 or -1 
det(X) = s*prod(diag(U))

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | | | |