本文共 1634 字,大约阅读时间需要 5 分钟。
> install.packages("LoopAnalyst")> x <- matrix(1:12,3,4,byrow=TRUE)> x [,1] [,2] [,3] [,4][1,] 1 2 3 4[2,] 5 6 7 8[3,] 9 10 11 12当矩阵不为正方矩阵时, 在求伴随矩阵前会刨去多余的部分再求伴随矩阵.
> LoopAnalyst::make.adjoint(x) [,1] [,2] [,3][1,] -4 8 -4[2,] 8 -16 8[3,] -4 8 -4因为x不是正方矩阵, 所以它的伴随矩阵等于减去第四列后得到的正方矩阵的伴随矩阵.
> x[,-4] [,1] [,2] [,3][1,] 1 2 3[2,] 5 6 7[3,] 9 10 11> LoopAnalyst::make.adjoint(x[,-4]) [,1] [,2] [,3][1,] -4 8 -4[2,] 8 -16 8[3,] -4 8 -4
=====================-1^(行号+列号) 乘以去除对应行列后的行列式=====================因为x不是正方矩阵, 所以先剪掉多余的列, 然后在算余子式
> (-1)^(1+1) * det(x[,-4][-1,-1])[1] -4> (-1)^(2+1) * det(x[,-4][-2,-1])[1] 8> (-1)^(3+1) * det(x[,-4][-3,-1])[1] -4> (-1)^(1+2) * det(x[,-4][-1,-2])[1] 8> (-1)^(2+2) * det(x[,-4][-2,-2])[1] -16> (-1)^(3+2) * det(x[,-4][-3,-2])[1] 8....
> x [,1] [,2] [,3] [,4][1,] 1 2 3 4[2,] 5 6 7 8[3,] 9 10 11 12> x[-1,-2] [,1] [,2] [,3][1,] 5 7 8[2,] 9 11 12如x[-1,]表示减去第1行, 注意不要忘记逗号
> x[-1,] [,1] [,2] [,3] [,4][1,] 5 6 7 8[2,] 9 10 11 12如x[, -2]表示减去第2列, 注意不要忘记逗号
> x[,-2] [,1] [,2] [,3][1,] 1 3 4[2,] 5 7 8[3,] 9 11 12
> x [,1] [,2] [,3] [,4][1,] 1 2 3 4[2,] 5 6 7 8[3,] 9 10 11 12> x[-1, -c(1,3)] [,1] [,2][1,] 6 8[2,] 10 12[参考]
转载地址:http://pnlxx.baihongyu.com/