題目: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...