6

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

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'
4

2 回答 2

4

如果你使用 prod(eigen(F4)$values) 我会推荐 prod(eigen(F4, only.values=TRUE)$values)

请注意,如果qr()您只对绝对值感兴趣,或者更确切地说: Mod()

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

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

顺便说一句:你注意到警告了吗

通常,计算行列式 并不是解决给定问题应该做的事情。

在帮助(行列式)页面上?

于 2010-07-20T08:18:56.990 回答
3

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

于 2010-07-19T17:11:10.110 回答