求乙個矩陣的逆矩陣 用伴隨矩陣求

2022-02-20 03:22:24 字數 1344 閱讀 2153

題目:noyj774

用代數余子式求逆矩陣方法:

若現有矩陣a,要求其逆矩陣;

若|a|==0,則其不存在逆矩陣;

若|a|!=0,其逆矩陣a^-1==*a/|a|;其中*a為其伴隨矩陣;

伴隨矩陣的求法:

*a[j][i]==|m[i][j]|,其中m[i][j]為a[i][j]的代數余子式;

即*a1[i][j]==|m[i][j]|,再將*a1轉置得到*a;

**:

1 #include2

#define maxn 10

3#define max 100000000

4#define ll long long

5using

namespace

std;67

int b[maxn][maxn]; //

***儲存伴隨矩陣89

//***遞迴求n*n階行列式的值

10int matrix(int n, int

a1[maxn][maxn])

1124}25

int flag=1;26

if(i&1) flag=-1

;27 sum+=flag*a1[0][i]*matrix(n-1

, b);28}

29return

sum;30}

3132

//***求矩陣a的伴隨矩陣

33void adjoint_matrix(int n, int

a[maxn][maxn])

3449 row++;50}

51 b[j][i]=pow(-1, i+j)*matrix(n-1, a1); //

****b中儲存b[i][j]的算數余子式轉置後的矩陣即求得伴隨矩陣52}

53}54}

5556

void print(int n, int

ans)

5766

else

//******不能整除的話輸出最簡分式形式

6774

else

7578}79

}80 cout <82}

8384

int main(void)85

97}98int ans=matrix(n, a);

99if(!ans) //

*******矩陣值為0即不存在逆矩陣

100104

adjoint_matrix(n, a);

105print(n, ans);

106}

107return0;

108 }

伴隨矩陣求逆矩陣

在之前的文章 線性代數之矩陣 中已經介紹了一些關於矩陣的基本概念,本篇文章主要就求解逆矩陣進行進一步總結。我們先看例子來直觀的理解什麼是余子式 minor,後邊將都用英文minor,中文的翻譯較亂 這個例子 我們假設矩陣為a 中我們看到a 1,1 的minor就是將a 1,1 所在的行和列刪除後剩下...

矩陣的逆矩陣,伴隨矩陣

include include include include include include include include define n 100 using namespace std templateout type convert const in value t struct numb...

矩陣的求逆

最近做乙個加密演算法遇到需要計算矩陣的逆,閒著無聊,記錄一下,以後免得再麻煩。include include include define max 20 define e 0.000000001 計算矩陣src的模 double calculate a double src max int n fo...