2010-07-19 21 views
6

Czy istnieje sposób na obliczenie wyznacznika złożonej macierzy?Determinant złożonej macierzy w 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' 

Odpowiedz

3

Jeśli wiesz, że wielomian charakterystyczny macierzy A dzieli się na czynniki liniowe, to det (A) jest iloczynem wartości własnych A, i można użyć drgań własnych funkcji wartości jak this obejść swoje problem. Podejrzewam, że nadal będziesz chciał czegoś lepszego, ale to może być początek.

+0

Na razie używam również wartości prod (eigen (F4) $) –

4

Jeśli używasz prod (Eigen (F4) Wartości $) Polecam prod(eigen(F4, only.values=TRUE)$values)
zamiast.

Zauważ, że qr() jest zalecane, aby użyć IFF jesteś zainteresowany tylko w wartościach bezwzględnych w czy raczej Mod():

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

daje Mod(determinant(x))
{w X = QR, | det (Q) | = 1 i przekątnej R jest prawdziwe (w co najmniej R)}

BTW. Czy można zauważyć zastrzeżeniem

Często obliczanie wyznacznika to nie co powinieneś robić , aby rozwiązać dany problem.

na stronie pomocy (wyznacznika)?