矩陣求逆 高斯消元拓展

2021-09-28 22:15:16 字數 2847 閱讀 7428

高斯消元

對於兩個矩陣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

11,其餘元素全部為0

00的矩陣。

單位矩陣的性質:a×e

=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...