Детерминант сложной матрицы в 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'
6
задан PeeHaa 5 September 2012 в 14:00
поделиться

2 ответа

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

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

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

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

BTW: Вы обратили внимание на оговорку

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

на справочной (определяющей) странице?

4
ответ дан 17 December 2019 в 00:02
поделиться

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

3
ответ дан 17 December 2019 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: