2010-07-19 3 views
6

Есть ли способ вычислить детерминант комплексной матрицы?Определитель комплексной матрицы в 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' 

ответ

3

Если вы знаете, что характеристический многочлен матрицы А распадается на линейные множители, то опр (A) представляет собой произведение собственных значений А, и вы можете использовать собственные функции значения, как this работать вокруг вашего проблема. Я подозреваю, что вы все еще хотите что-то лучшее, но это может быть началом.

+0

В настоящее время я также использую prod (собственные значения (F4) $) –

4

Если вы используете тычок (собственные (F4) $ значения) Я бы рекомендовал prod(eigen(F4, only.values=TRUE)$values)
вместо этого.

Обратите внимание, что qr() пропагандируется использовать тогда и только тогда вы заинтересованы только в абсолютного значения или, скорее Mod():

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

дает Mod(determinant(x))
{В X = QR, | Det (Q) | = 1, а диагональ R является реальной (в R, по крайней мере)}

КСТАТИ:. вы обратите внимание Оговорке

Часто вычисляемый определитель не Что нужно делать , чтобы решить данную проблему.

на странице с описанием помощи?

Смежные вопросы