矩阵的秩,行列式,代数余子式啥的

本文介绍了矩阵的代数余子式及其计算方法,包括rank(A)为n-2、n和n-1的情况。当rank(A)=n时,提供了A*与A的行列式的乘积等于A的逆的性质。通过高斯消元法可求矩阵的秩,矩阵的逆可通过特定变换得到。最后,提到在实际问题中,如[Bzoj 3168],求逆矩阵后解决二分图最小字典序的完美匹配问题,时间复杂度为O(n^3)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:

nealchen
Rose_max

求解A的代数余子式:

(1)rank(A)<=n-2,每个位置均为0
(2)rank(A)=n,有 A ∗ = ∣ A ∣ ∗ A − 1 A^*=|A|*A^{-1} A=AA1,其中A*是代数余子式矩阵的转置矩阵,实现的时候需要注意这点
(3)rank(A)=n-1,则求出非0行向量p,满足pA=0,以及非0列向量q,满足Aq=0
找出一对r,c,满足 p r ≠ 0 , q c ≠ 0 p_r\neq 0,q_c\neq 0 pr=0,qc=0,我们有 A i , j = p i q j p r q c A r , c A_{i,j}=\frac{p_iq_j}{p_rq_c}A_{r,c} Ai,j=prqcpiqjAr,c
实现的时候,为了方便可以设置 p r = 1 , q c = 1 p_r=1,q_c=1 pr=1,qc=1
至于求解一个矩阵的秩,模拟高斯消元,还剩下多少个非0的行向量就是矩阵的秩
至于求解一个矩阵的逆,由于保证了逆是良定义的,所以一定可以用:
1.一行乘上某个数
2.一行乘上某个数加到某行
2.交换两行
变成单位矩阵
注意到,上面3个变换都可以表示成矩阵,意思是你求出了个
E k . . . . E 1 A = I E_k....E_1A=I Ek....E1A=I,那么 E k . . E 1 = A − 1 E_k..E_1=A^{-1} Ek..E1=A1
上面的时间复杂度都是 O ( n 3 ) O(n^3) O(n3)

例题

求出代数余子式后随便做
复杂度: O ( n 3 + m ) O(n^3+m) O(n3+m)
正经人谁考场上写代数余子式啊

#include<bits/stdc++.h>
using namespace std;
const int Mod=1000000007;
int n,m;
#define Maxn 305
#define E 100010
struct Edge{
   
	int s,e,t;
}edge[E
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值