2010-07-19 47 views
6

Gibt es eine Möglichkeit, die Determinante einer komplexen Matrix zu berechnen?Determinante einer komplexen Matrix in 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' 

Antwort

3

Wenn Sie wissen, dass das charakteristische Polynom einer Matrix A in lineare Faktoren zerlegt, dann det (A) ist das Produkt der Eigenwerte von A, und Sie können Eigenwert-Funktionen wie this verwenden um zu arbeiten, um Ihre Problem. Ich vermute, du wirst immer noch etwas besseres wollen, aber das könnte ein Anfang sein.

+0

Zur Zeit verwende ich auch prod (Eigen (F4) $ -Werte) –

4

Wenn Sie prod verwenden (Eigen (F4) $ values) würde ich prod(eigen(F4, only.values=TRUE)$values)
stattdessen empfehlen.

Beachten Sie, dass die qr() befürwortet iff Sie nur in der Absolutwert interessiert sind, zu verwenden, oder besser gesagt Mod():

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

die Mod(determinant(x))
{In X gibt = QR, | det (Q) | = 1 und die Diagonale von R ist real (in R mindestens)}

BTW:. Haben beachten Sie die Einschränkung

Oft ist die Berechnung der Determinante nicht was Sie tun sollten , um ein gegebenes Problem zu lösen.

auf der Hilfe (Determinante) Seite?