Skip to content

Commit 074159a

Browse files
committed
添加gauss对角阵消元模板
1 parent 75533f3 commit 074159a

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

math/gauss.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
gauss消元模板
2+
#gauss_jordan对角消元
3+
```c++
4+
typedef double Matrix[maxn][maxn];
5+
int n;
6+
//消元为对角阵
7+
void gauss_jordan(Matrix A,int n){
8+
//A增广矩阵,第n列是结果列
9+
for(int i=0 ; i<n ; ++i){
10+
int r = i;//元素最大列
11+
for(int j = i+1 ; j<n ; ++j)
12+
if(abs(A[j][i]) > abs(A[r][i]))r = j;
13+
if(abs(A[r][i]) < eps)continue;
14+
if(r!=i)for(int j = 0 ; j<=n; ++j)swap(A[r][j],A[i][j]);//交换
15+
//与i行以外的所有行消元,化为阶梯阵,与gauss消元的不同
16+
for(int k=0 ; k<n ; ++k)
17+
if(k!=i)
18+
for(int j = n ; j>=i ; --j)A[k][j] -=A[k][i]/A[i][i]*A[i][j];//精度.
19+
}
20+
}
21+
```

0 commit comments

Comments
 (0)