2010-07-19 20 views
6

¿Hay alguna manera de calcular el determinante de una matriz compleja?Determinante de una matriz compleja en R

F4<-matrix(c(1,1,1,1,1,1i,-1,-1i,1,-1,1,-1,1,-1i,-1,1i),nrow=4) 
det(F4) 
Error in determinant.matrix(x, logarithm = TRUE, ...) : 
    determinant not currently defined for complex matrices 

library(Matrix) 
determinant(Matrix(F4)) 
Error in Matrix(F4) : 
    complex matrices not yet implemented in Matrix package 
Error in determinant(Matrix(F4)) : 
    error in evaluating the argument 'x' in selecting a method for function 'determinant' 

Respuesta

3

Si sabe que el polinomio característico de una matriz A se divide en factores lineales, entonces det (A) es el producto de los valores propios de A, y se puede utilizar eigen funciones de valor como this a trabajar alrededor de su problema. Sospecho que todavía querrás algo mejor, pero esto podría ser un comienzo.

+0

Por el momento también uso prod (eigen (F4) $ values) –

4

Si utiliza prod (eigen (F4) valores de $) Me gustaría recomendar prod(eigen(F4, only.values=TRUE)$values)
lugar.

Tenga en cuenta que la qr() es defendida a utilizar si y sólo si que sólo están interesados ​​en el valor absoluto o más bien Mod():

prod(abs(Re(diag(qr(x)$qr)))) 

da Mod(determinant(x))
{A X = QR, | det (Q) | = 1 y la diagonal de R es real (en I por lo menos)}

por cierto:. ¿usted tenga en cuenta la advertencia de

A menudo, al calcular el determinante es no lo que debe hacer para resolver un problema determinado.

en la página de ayuda (determinante)?

Cuestiones relacionadas