伴随矩阵 和 余子式, 行列式的关系
程序员文章站
2022-07-12 14:09:29
...
矩阵的伴随矩阵, 实际是由每个点位的余子式构成.
当矩阵不为正方矩阵时, 在求伴随矩阵前会刨去多余的部分再求伴随矩阵.
余子式和行列式请参考 :
http://blog.163.com/[email protected]/blog/static/163877040201531043037899/
当矩阵不为正方矩阵时, 在求伴随矩阵前会刨去多余的部分再求伴随矩阵.
因为x不是正方矩阵, 所以它的伴随矩阵等于减去第四列后得到的正方矩阵的伴随矩阵.
因为x不是正方矩阵, 所以先剪掉多余的列, 然后在算余子式
以上用到矩阵去除某行或某列的方法
如x[-1,]表示减去第1行, 注意不要忘记逗号
如x[, -2]表示减去第2列, 注意不要忘记逗号
如果要减去多行或多列怎么减呢? 传入向量即可
[参考]
> 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]表示减去第1行和第2列
> 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
如果要减去多行或多列怎么减呢? 传入向量即可
如减去第一行, 第1列和第3列
> 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
[参考]
上一篇: 数组根据某个条件筛选出符合的数据,生成一个新的数组
下一篇: 分子式