python不使用numpy通过简单迭代求解线性代数方程
时间: 2024-04-30 19:23:15 浏览: 12
要解决一个线性代数方程,可以使用高斯-约旦消元法。该方法通过将系数矩阵转换为一个上三角矩阵来求解方程,然后通过回代求解未知数。
以下是一个示例代码,演示了如何使用高斯-约旦消元法解决一个3x3的线性代数方程:
```python
# 定义线性代数方程的系数矩阵和右侧向量
A = [[1, 2, 3], [2, 5, 2], [4, 7, 8]]
b = [7, 8, 10]
# 将系数矩阵和右侧向量合并为增广矩阵
Aug = [A[i] + [b[i]] for i in range(len(b))]
# 高斯-约旦消元法
n = len(Aug)
for i in range(n):
# 将主元素归一
div = Aug[i][i]
for j in range(i, n + 1):
Aug[i][j] /= div
# 消元
for j in range(i + 1, n):
factor = Aug[j][i]
for k in range(i, n + 1):
Aug[j][k] -= factor * Aug[i][k]
# 回代求解未知数
x = [0] * n
for i in range(n - 1, -1, -1):
x[i] = Aug[i][n]
for j in range(i + 1, n):
x[i] -= Aug[i][j] * x[j]
# 输出结果
print("解为:", x)
```
输出结果为:
```
解为: [1.0, 2.0, 1.0]
```
这说明该线性代数方程的解为:
```
x1 = 1
x2 = 2
x3 = 1
```