計算行列式的值

2022-04-11 05:22:26 字數 825 閱讀 4463

#include #include #define max 9 /*定義最大為9階行列式*/

int fun(int n, int a[max][max] ); /*函式宣告*/

int main()

}; /*定義行列式*/

scanf("%d",&n); /*讀入階數*/

while( n != 0) /*輸入為0時退出程式*/

printf("%d\n", fun( n, a ) );

scanf("%d", &n);

}return 0;

}/*以下為計算行列式值的遞迴函式*/

int fun( int n, int a[max][max] )

}; /*定義陣列b並初始化*/

int i = 0, j = 0, sum = 0; /*i,j為行與列,sum為行列式的值*/

int x = 0,c = 0,p=0; /*用x判斷加與減,c,p為中間變數*/

if(n == 1)

return a[0][0];

for(i = 0; i < n; i++) /*此處大迴圈實現將余子式存入陣列b中*/

else /*否則行列式左移後再上移*/

b[c][j] = a[c+p][j+1];}}

if(i % 2 == 0) /*i+j(此時j=0,故只考慮i)為偶數,加法預算*/

else /*i+j為奇數,減法運算*/

sum += a[i][0] * fun(n - 1, b ) * x; /*計算行列式的值*/

}return sum; /*將值返回*/

}

行列式的計算

很多知識點都生疏了,標記一下。對於任意階行列式的定義一般是由二階 三階行列式的定義引出來的。因為二階和三階恰好是個特例,我們直接引入標準定義。解釋說明 上圖中 7 式中的p1 p2 是元素下標。總結來說。行列式就是 在該數表中找到n組數,且這n組數中每一組中的每乙個元素都不同行不同列,然後每一組各自...

求行列式的值

肯定要用遞迴,肯定要用陣列 用乙個二維陣列來表示這個矩陣,但是引數傳遞的時候我們不能確定這個矩陣的行數列數,所以編譯器會報錯 所以定義乙個一維陣列來模擬這個行列式,而一維陣列作為引數傳遞給函式時又不用指定大小,符合我們的需要。同時我們定義乙個結構體來表示這個余子式 typedef struct yu...

MyMathLib系列 行列式計算

靠人不如靠己,準備做自己得mathlib,在學校的時候,就想過把數學數理的東西都計算機化,但一直沒有時間去做這件事情,現在覺得空餘 時間比較閒,就做做這件事情,先從線性代數開始,畢竟這裡面的很多演算法,實際共走中都有用到。在做這些演算法的過程中,也體會到了 數學中的東西不是沒有用,而是你沒用到。下面...