使⽤ Python 实现 Jacobi 迭代法来求解线性⽅程组 ,其中 为 的对⻆占优矩阵。要求计算 10 次 迭代,并输出每次迭代的解向量。4x1 - x2 = 2 -x1 + 4x2 - x3 = 0 -x2 + 4x3 - x4 = 2 -x3 + 4x4 =4
时间: 2024-10-10 08:03:46 浏览: 46
Jacobi迭代法求解线性方程组以及Gauss-Seidel迭代法求解线性方程组的程序
在Python中,我们可以使用Jacobi迭代法来求解线性方程组,它适用于对角占优矩阵的情况。首先,我们将方程转换成矩阵形式 Ax = b,然后进行迭代计算。这里是一个简单的实现示例:
```python
import numpy as np
# 定义系数矩阵 A 和常数向量 b
A = np.array([[4, -1, 0, 0],
[-1, 4, -1, 0],
[0, -1, 4, -1],
[0, 0, -1, 4]])
b = np.array([2, 0, 2, 4])
# 确定初始猜测值,这里设置为零向量
x_guess = np.zeros_like(A[0])
tolerance = 1e-6
max_iterations = 10
for iteration in range(max_iterations):
x_guess_new = (b - np.diag(np.diag(A))) / np.diag(A)
print(f"Iteration {iteration+1}:")
print(x_guess_new)
# 检查收敛条件(如果两个迭代结果之差小于给定的容忍度)
if np.linalg.norm(x_guess_new - x_guess) < tolerance:
break
x_guess = x_guess_new
# 输出最终解
print("Final solution after", max_iterations, "iterations:")
print(x_guess)
```
运行这段代码后,你会看到每一步迭代的解向量,直到达到预设的最大迭代次数或者满足收敛条件。
阅读全文