高斯消元
對於兩個矩陣a,b
a,ba,
b,如果a×b
=e
a\times b=e
a×b=
e(其中e
ee)為單位矩陣,那麼我們稱b
bb是a
aa的逆矩陣,a
aa為可逆矩陣。
前置:單位矩陣(eee)
單位矩陣的定義:
乙個從左上角到右下角的對角線(主對角線)的元素全部為1單位矩陣的性質:a×e11,其餘元素全部為0
00的矩陣。
=e×a
=a
a\times e=e\times a=a
a×e=e×
a=a(常用於矩陣快速冪)
前置:矩陣的初等變換
定義矩陣的初等變換:
1. 交換
矩陣中兩
行/
列1.交換矩陣中兩行/列
1.交換矩陣
中兩行/
列 2. 將矩
陣的一行
/列同時
乘乙個非
零數
k2.將矩陣的一行/列同時乘乙個非零數k
2.將矩陣的
一行/列
同時乘一
個非零數
k 3. 將矩
陣的一行
/列乘非
零數k後
加到另一
行/列(
注意是加
到)
3.將矩陣的一行/列乘非零數k後加到另一行/列(注意是加到)
3.將矩陣的
一行/列
乘非零數
k後加到
另一行/
列(注意
是加到)
容易看出,矩陣的初等變換是可逆的,並且其逆運算是同一種型別的初等變換。
前置:初等矩陣
初等矩陣的定義:
初等矩陣是指由單位矩陣經過一次初等變換得到的矩陣。初等矩陣的模樣可以寫乙個3階或者4階的單位矩陣。初等矩陣的性質:設a
aa是乙個m×n
m\times n
m×n的矩陣,那麼對a
aa施行一次初等行變換,就等價於在a
aa的左邊乘上乙個相應的m
mm階(即m×m
m\times m
m×m)的初等矩陣m
mm(即m×a
m\times a
m×a)。對a
aa施行一次初等列變換,其結果等價於在a
aa的右邊乘以相應的n
nn階初等矩陣n
nn(即a×n
a\times n
a×n)。反之亦然。
對於相應矩陣的解釋:如果單位矩陣e
ee做出一種初等變換得到的矩陣為e′e'
e′,矩陣b
bb做出同樣的變換得到的矩陣為b′b'
b′,那麼b′=
e′×b
b'=e'\times b
b′=e′×
b。初等矩陣一定存在逆矩陣。
矩陣求逆
首先,由矩陣的初等變換可逆得:
如果a
aa存在逆矩陣,那麼a
aa可以通過一些初等變換,化為單位矩陣e
ee,即:
p 1×
p2×.
..×p
n×a=
ep_1\times p_2\times ...\times p_n \times a=e
p1×p2
×..
.×pn
×a=
e證明需要用到行列式的相關知識,此處不予提及。
我們在等式兩邊同時乘上a
aa的逆矩陣a−1
a^a−
1,那麼我們有:
p 1×
p2×.
..×p
n=a−
1p_1\times p_2\times ...\times p_n=a^
p1×p2
×..
.×pn
=a−
1所以我們可以構造乙個單位矩陣,在使用高斯消元將a
aa轉化成單位矩陣是我們同時對該單位矩陣進行同樣的操作,最後輸出單位矩陣即可。
例題:傳送門
解析:用剛才的方法操作就好,分數取模時要求出逆元。
code
#include
#define int long long
#define mod 1000000007
using
namespace std;
int f[
405]
[805];
intksm
(int a,
int b)
return res;
}signed
main()
f[i]
[i+n]=1
;}for(
int i=
1;i<=n;i++
)break;}
}if(!f[i]
[i])
int r=
ksm(f[i]
[i],mod-2)
;for
(int j=i;j<=n*
2;j++
)for
(int j=
1;j<=n;j++)}
}}for(
int i=
1;i<=n;i++
)printf
("\n");
}}
高斯消元法求逆矩陣
僅供自己學習記錄。沒有處理主對角線有0得情況與沒有逆矩陣的情況,但也基本夠用了。const int row 4 int res row row void gauss float mat row row else 2.化為行階梯形式 特殊處理第一行 for int i 1 i row i 對角線元素歸...
高斯消元法求矩陣的逆
逆矩陣 設a是數域上的乙個n階方陣,若在相同數域上存在另乙個n階矩陣b,使得 ab ba e。則我們稱b是a的逆矩陣,而a則被稱為可逆矩陣。矩陣求逆一般有兩種方法,乙個是伴隨矩陣法,乙個是初等變換法,也就是高斯消元法。這裡主要講高斯消元法的程式設計方法。由條件ab ba以及矩陣乘法的定義可知,矩陣a...
高斯消元入門 矩陣求逆 P4783
題目大意 給n n n times n n n的方陣g gg,求它的逆.題目思路 在n n n times n n n的方陣g gg後接乙個單位矩陣e ee.形成n n n n times n n n n n 的新矩陣。跑高斯 約旦消元使得g gg變成e ee.那麼原單位矩陣e ee即變為g 1 g...