R中复数矩阵的行列式

时间:2010-07-19 16:56:11

标签: r matrix linear-algebra complex-numbers

有没有办法计算复杂矩阵的行列式?

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'

2 个答案:

答案 0 :(得分:4)

如果你使用prod(特征(F4)$值) 我推荐   prod(eigen(F4, only.values=TRUE)$values)
代替。

请注意,qr()主张使用 iff 您只对 绝对值或更确切地说Mod()

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

给出Mod(determinant(x))
{在X = QR,| det(Q)| = 1,R的对角线是实数(至少在R中)。}

顺便说一句:你有没有注意到警告

  

通常,计算行列式是   你应该做什么        解决特定问题。

在帮助(决定因素)页面上?

答案 1 :(得分:3)

如果你知道矩阵A的特征多项式分裂为线性因子,则det(A)是A的特征值的乘积,你可以使用像this这样的特征值函数来解决你的问题。问题。我怀疑你还会想要更好的东西,但这可能是一个开始。