线性代数 —— 矩阵的行列式
1.行列式
排成 n 階方陣形式的 n^2 個數所確定的一個數稱為?n 階方陣 A 的行列式,記為:det(A)?或 |A|
一個 2x2 的矩陣的行列式可表示為:
2.余子式與代數余子式
將 n 階行列式中元素??的第 i 行和第 j 列劃去后,留下的 n-1 階行列式稱為??的余子式?,記作:
將??的余子式與?-1 的?i+j 的冪的乘積稱為代數余子式,記作:
一個 n 階方陣的行列式等于任意行/列的元素與對應的代數余子式乘積之和,即:
4.主子式與順序主子式
在 n 階行列式中,選取 k 個行號,再選取與行號相同的 k 個列號,則有行列均為 k 個的行列式即為 n 階行列式的 k 階主子式,簡單來說,即在 n 階行列式中,選取的 k 個行列號相同的行、列的交匯處的元素組成的行列式
在 k 階行列式中,由 1~k 行和 1~k 列組成的子式,即為 n 階行列式的 k 階順序主子式
5.行列式的性質
推論:如果矩陣的某一行(列)中的所有元素都有一個公因子 k,則可以把這個公因子 k 提到行列式求和式的外面
6.主子式的值
對于一個主子式的值,可以根據其定義算出:
其中 P 為 1~n 的一個排列,τ(P) 為排列 P 的逆序對數,求和式的每一項可以看做在矩陣中選出 n 個數,使得他們的行列都不重合,顯然,求和式共 n!項,根據定義求值的時間復雜度是 O(n!) 階的,因此必須根據行列式的性質進行優化。
由于對于任意一個上(下)三角矩陣,其行列式的值為對角線的乘積。
因此可根據性質 5,可采用高斯消元的方法,將矩陣消為一個上三角矩陣后,求出對角線的積,即為該矩陣的行列式的值,時間復雜度為 O(n^3)
如果要求的矩陣不允許出現實數,且需要取模,那么采用輾轉相除的高斯消元法,時間復雜度多出一個 O(logN)
int f[N][N];//n階矩陣 int gauss(int n){//主子式的值int res=1;for(int i=1;i<=n-1;i++){//枚舉主對角線上第i個元素for(j=i+1;j<=n-1;j++){//枚舉剩下的行while(f[j][i]){//輾轉相除t= f[i][i]/f[j][i];for(int k=i;k<=n-1;k++)//轉為倒三角f[i][k]=(f[i][k]-t*f[j][k]+MOD)%MOD;swap(f[i],f[j]);//交換i、j兩行res=-res;}}res=(res*f[i][i])%MOD;}return (res+MOD)%MOD; }總結
以上是生活随笔為你收集整理的线性代数 —— 矩阵的行列式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 活动安排(信息学奥赛一本通-T1422)
- 下一篇: 彩灯(洛谷-P3857)