遞迴求解行列式

2021-09-27 12:42:50 字數 674 閱讀 8230

晚上朋友說寫個行列式程式,就興致勃勃地寫了下來,給大家參考。

行列式:

行列式在數學中,是乙個函式,其定義域為det的矩陣a,取值為乙個標量,寫作det(a)或 | a | 。

行列式的計算參見《線性代數》教材。

這裡要強調的是:行列式所組成的矩陣必定是個方陣,也就是說其所成矩陣的行數等於列數。

除去化簡行列式為上下三角行列式的方法之外,由行列式的手工樸素解法(模擬),易得求解行列式可以使用遞迴的方法來求解,將大矩陣不斷分解為小矩陣來縮小其規模,最後逐層返回答案。

#include using namespace std;

int determinant(int s,int a[11])

int tmp[11][11],ans=0; //tmp用於儲存代數余子式所成矩陣,ans就是最後要返回的結果

int row=1,col=1;

for(int k=1;k<=s;k++) }}

}ans += ((k+1)%2==0? 1: -1)* a[1][k]*determinant(s-1,tmp); //控制正負,遞迴求解

row=col=1; //遞迴過程決定接下來要構造新矩陣,所以這裡一定一定要記得置1

}return ans; //最後把答案返回

}int main()

}cout《執行例項:

行列式 一 基本定義性質及高斯消元求解行列式

目錄性質 高斯消元求解 d left begin a a a a a a a a a end right 上圖是乙個三階行列式,行列式是形如上圖的乙個東西,簡記為 det a 其中 a 是行列式的第 ij 元。乙個n階行列式的值為 sum 1 t a a a 其中 t 是 1 n 的排列 p 1,p...

行列式求值

行列式求值法則 傳送門 行列式求值,說白了就是用高斯消元把行列式消成上三角或者下三角 這裡選擇消成上三角,其實都一樣 用到的就是行列式求值的幾條性質,我這裡是用了乙個變數reo來記錄行列式的值 1 include2 include3 include4 include5 include6 includ...

矩陣行列式

對於乙個 n 行 n 列的矩陣 a 有矩陣的行列式 常用 det a a 表示 如果將矩陣的每一行視為乙個 n 維向量,則 n 階行列式的意義可以看做是 有向長度 面積 體積在 n 為空間下的擴充套件 具體的例子 n 1 時,a a 即有向長度 n 2 時,a a a a a vec times v...