欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

高斯--塞德尔迭代法求方程组的解(Python实现)

发布时间:2025/4/16 python 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 高斯--塞德尔迭代法求方程组的解(Python实现) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

数值分析题目

求方程组
{5x1+2x2+x3=−12−x1+4x2+2x3=202x1+−3x2+10x3=2\left\{ \begin{array}{c} 5x_1+2x_2 + x_3 = -12 \\ -x_1 + 4x_2+2x_3 = 20 \\ 2x_1+-3x_2+10x_3=2 \end{array} \right. 5x1+2x2+x3=12x1+4x2+2x3=202x1+3x2+10x3=2

上面方程当然是非常容易求解的,但是方程规模变大的时候(比如系数矩阵是100w* 100w的时候,这时候,用这个写就会比较简单了。。)

可以对比着之前的雅各比迭代法对比一下效果
雅克比迭代法求方程组的解(Python实现)

代码

# @Time : 2018/5/22 17:23 # @Author : Sean # @Site : # @File : 1.py # @Software: PyCharmimport numpy as npA = np.array([[5.0, 2, 1], [-1, 4, 2], [2, -3, 10]]) B = np.array([-12.0, 20, 3]) x0 = np.array([1.0, 1, 1]) x = np.array([0.0, 0, 0]) times = 0while True:for i in range(3):temp = 0tempx = x0.copy()for j in range(3):if i != j:temp += x0[j] * A[i][j]x[i] = (B[i] - temp) / A[i][i]x0[i] = x[i].copy()calTemp = max(abs(x - tempx))times += 1if calTemp < 1e-4:breakelse:x0 = x.copy()print(times) print(x)

总结

以上是生活随笔为你收集整理的高斯--塞德尔迭代法求方程组的解(Python实现)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。