gauss-jordan列主元消去法python
时间: 2023-05-28 17:01:47 浏览: 136
gauss列主元消去法
以下是用Python实现的Gauss-Jordan列主元消去法:
```python
def gauss_jordan(matrix):
n = len(matrix)
# 前进消元
for i in range(n):
# 列主元
max_row = i
for j in range(i+1, n):
if abs(matrix[j][i]) > abs(matrix[max_row][i]):
max_row = j
matrix[i], matrix[max_row] = matrix[max_row], matrix[i]
# 消元
for j in range(i+1, n):
ratio = matrix[j][i] / matrix[i][i]
for k in range(i, n+1):
matrix[j][k] -= ratio * matrix[i][k]
# 回代
for i in range(n-1, -1, -1):
for j in range(i-1, -1, -1):
ratio = matrix[j][i] / matrix[i][i]
for k in range(n, i-1, -1):
matrix[j][k] -= ratio * matrix[i][k]
matrix[i][n] /= matrix[i][i]
matrix[i][i] = 1
return [row[-1] for row in matrix]
```
它接受一个N x (N+1)的矩阵作为参数,其中最后一列是增广列(即包含解向量)。返回一个长度为N的列表,包含解向量。如果无解或有无数解,则返回None。
阅读全文