線性代數 矩陣求逆

2021-09-11 19:08:58 字數 1431 閱讀 9192

//#include "stdafx.h"

#include #include "stdio.h"

void matrixprint(double* arr, const int row, const int col);

double* matrixinverse(double* arr_in, const int n);

void matrixpivotexchange(double* arr, double* arr_inv, const int n, const int row);

int _tmain(int argc, _tchar* ar**)

; //計算逆陣

double *mat_a_inv = matrixinverse(mat_a, row_a);

//列印原始矩陣和逆陣

matrixprint(mat_a, row_a, col_a);

matrixprint(mat_a_inv, row_a, col_a);

system("pause");

return 0;

}double* matrixinverse(double* arr_in, const int n)

//開始計算逆陣

for (row_scan = 0; row_scan < n; row_scan++)

for (col_scan = 0; col_scan < n; col_scan++) //逆陣區全部都要計算

//通過主元行消除其餘行首位元素

for (resi_row_scan = row_scan + 1; resi_row_scan < n; resi_row_scan++)

for (col_scan = 0; col_scan < n; col_scan++) //逆陣區全部都要計算

}} //反三角往上消除

for (row_scan = n - 1; row_scan >= 0; row_scan--)

}} free(arr);

return arr_inv;

}//列主元換位

void matrixpivotexchange(double* arr, double* arr_inv, const int n, const int row) //row為現在處理的行

} //原矩陣與逆陣均需要換行

if (row != max_value_row)

} }

return;

}//矩陣列印方法

void matrixprint(double* arr, const int row, const int col)

} //跳空換行

線性代數 矩陣的逆

關於矩陣的逆有很多性質和定理,例如,可逆矩陣一定是方陣 滿秩矩陣 非奇異矩陣,可逆矩陣的行列式的值不為零等等。在證明乙個矩陣是不可逆矩陣時,strang教授講了一種幾何的思路 根據可逆矩陣的定義,如果方陣a b i mathbf mathbf mathbf a b i,則a mathbf a和b m...

線性代數 矩陣乘法和逆矩陣

逆矩陣 本節是網易公開課上的麻省理工大學線性代數課程第三節 矩陣乘法和逆矩陣 的學習筆記。矩陣相乘,並不一定要求是方陣。如果矩陣a是乙個 mxn 的矩陣 m行,n列 則矩陣b必須是乙個 nxp n行,p列 的矩陣,這樣兩者才能相乘,相乘的結果矩陣c是乙個 mxp m行,p列 的矩陣。假設 ab c ...

luoguP4783 模板 矩陣求逆 線性代數

求 n 2 的矩陣的逆 翻了翻題解,看到了初等矩陣這個東西,突然想起來在看線代的時候看到過.然後又溫習了一遍線性代數的知識 不妨設 pa e 其中 p 是一堆初等矩陣的積 必須同時是行變換 由於 pa e,pe p 因此 p a,e e,p 所以我們只要對矩陣 a,e 來做初等變換 由於我們只做行變...