首页 > 试题广场 >

Gauss-Seidel法求解线性方程组

[编程题]Gauss-Seidel法求解线性方程组
  • 热度指数:268 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
实现Gauss-Seidel迭代法求解线性方程组 Ax = b。Gauss-Seidel法是一种迭代算法,通过使用已经计算出的最新值来更新解向量,从而加快收敛速度。

输入描述:
第一行输入系数矩阵 A,第二行输入常数项向量 b,第三行输入迭代次数 n


输出描述:
返回一个numpy数组,表示经过 n 次迭代后的近似解向量 x
示例1

输入

[[4, 1, 2], [3, 5, 1], [1, 1, 3]]
[4, 7, 3]
100

输出

[0.5, 1.0, 0.5]

备注:
1.对应的输入、输出已给出,您只用实现核心功能函数即可。
2.支持numpy、scipy、pandas、scikit-learn库。
头像 牛客题解官
发表于 2025-02-05 13:53:50
Gauss-Seidel法是一种求解线性方程组的方法,其基本思想是通过迭代法求解。 具体步骤如下: 初始化 选择初始解向量 选择迭代步数 迭代过程 对于第i个方程,使用公式: 其中: 是矩阵A中第i行第j列的元素 是向量b中第i个元素 是第k次迭代时的解向量中第j个元素 迭代终 展开全文
头像 牛客838487852号
发表于 2025-07-28 17:01:25
import numpy as np def gauss_seidel(A, b, n, x_ini=None): x = x_ini or np.zeros_like(b) row, col =np.shape(A) for _ in range(n): 展开全文
头像 yuncongliu
发表于 2025-05-21 09:00:04
import numpy as np def gauss_seidel(A, b, n, x_ini=None): x = x_ini or np.zeros_like(b) D = np.diag(np.diag(A)) #提取对角阵 L = -np.tril(A,k 展开全文