R中矩阵行列式的计算方法

R中矩阵行列式的计算方法,r,determinants,R,Determinants,这是一个数学事实,如果矩阵的行列式等于零,那么矩阵必须是奇异的(不可逆的)。现在,我遇到的问题是,当我计算矩阵的行列式时,它等于零,然而,当我计算逆矩阵时,它是存在的。我认为这与R计算两个不一致的行列式的方式有关。这是我正在尝试的代码(我不会打印解算的结果,因为矩阵是100 x 100) 对于大型矩阵,行列式可能太大或太小,并溢出双精度。 行列式是特征值的乘积:例如,如果它们都是.0001,则矩阵是可逆的,但行列式是1e-400,太小,只能表示为0 你可以看行列式的对数 determinant(

这是一个数学事实,如果矩阵的行列式等于零,那么矩阵必须是奇异的(不可逆的)。现在,我遇到的问题是,当我计算矩阵的行列式时,它等于零,然而,当我计算逆矩阵时,它是存在的。我认为这与R计算两个不一致的行列式的方式有关。这是我正在尝试的代码(我不会打印解算的结果,因为矩阵是100 x 100)


对于大型矩阵,行列式可能太大或太小,并溢出
双精度。
行列式是特征值的乘积:例如,如果它们都是.0001,则矩阵是可逆的,但行列式是
1e-400
,太小,只能表示为0

你可以看行列式的对数

determinant(R, logarithm=TRUE)
或者,直接地,特征值

eigen(R, only.values=TRUE)

可能是浮点问题(未打印到完整的十进制值)。尝试一下
det(R)==0L
>det(R)==0L[1]TRUE
那么这意味着什么呢?如果可能的话,给你的矩阵R提供一个链接让人们可以检查它是值得的。我肯定可以这样做。有没有简单的方法?
eigen(R, only.values=TRUE)