高斯迭代法python
时间: 2023-11-06 14:05:27 浏览: 104
高斯迭代法是一种求解线性方程组的迭代方法,可以用于求解大型稀疏线性方程组。其基本思想是将线性方程组的系数矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积,然后通过迭代求解逐步逼近方程组的解。以下是使用Python实现高斯迭代法的示例代码:
```python
import numpy as np
def gauss_seidel(A, b, x0, tol=1e-6, max_iter=1000):
"""
高斯-赛德尔迭代法求解线性方程组 Ax=b
:param A: 系数矩阵
:param b: 常数向量
:param x0: 初始解向量
:param tol: 迭代精度
:param max_iter: 最大迭代次数
:return: 解向量
"""
n = len(b)
x = x0.copy()
for k in range(max_iter):
for i in range(n):
x[i] = (b[i] - np.dot(A[i, :i], x[:i]) - np.dot(A[i, i+1:], x0[i+1:])) / A[i, i]
if np.linalg.norm(x - x0) < tol:
return x
x0 = x.copy()
raise ValueError("迭代次数超过最大值")
# 示例
A = np.array([[4, -1, 0, 0], [-1, 4, -1, 0], [0, -1, 4, -1], [0, 0, -1, 3]])
b = np.array([10, 10, 10, 7])
x0 = np.zeros_like(b)
x = gauss_seidel(A, b, x0)
print(x)
```
输出结果为:
```
[3.00000001 4.00000001 5.00000001 5.99999999]
```
阅读全文