R语言矩阵的相关计算( 二 )


可以看出两个结果是一致的,但是当我使用逻辑语言时,出来的却是两个不相等,每一个对应的都是false
a%*%D==D%*%a
这是因为,因为什么呢,我也说不清楚
不过当我们对每一个数都保留两位小数的时候,再次判断,这时候就正确了
round(a%*%D,2)==round(D%*%a,2)
在验证 A ? A = ∣ A ∣ E A^{\ast}A=\left| A \right|E A?A=∣A∣E
m <- det(a)*Cround(a%*%D,2)==round(m,2)
同样对结果保留两位小数,这就是正确的了
验证成功
使用 函数
这里自己编写了一个函数,复制下面代码运行一下即可使用此函数
adjoint <- function(x){n <- sqrt(length(x))y <- matrix(0,nc=n,nr=n)for ( i in 1:n)for ( j in 1:n)y[i,j] <- (-1)^(i+j)*det(x[-j,-i])y}
如果想求A的伴随矩阵,只需要(A)即可
例:
【R语言矩阵的相关计算】adjoint(a)