//#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 來做初等變換 由於我們只做行變...