高斯--塞德尔迭代法求方程组的解(Python实现)
生活随笔
收集整理的這篇文章主要介紹了
高斯--塞德尔迭代法求方程组的解(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?=?12?x1?+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实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 雅克比迭代法求方程组的解(Python实
- 下一篇: matplotlib显示中文(显现中文之