有没有办法计算复杂矩阵的行列式?
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'
答案 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这样的特征值函数来解决你的问题。问题。我怀疑你还会想要更好的东西,但这可能是一个开始。