超松弛迭代法求方法组的解(Python实现)
生活随笔
收集整理的這篇文章主要介紹了
超松弛迭代法求方法组的解(Python实现)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
數(shù)值分析題目
求方程組
{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?
超松弛迭代其實(shí)基于高斯-塞德?tīng)柕?/p>
可以對(duì)比著之前的高斯迭代法對(duì)比一下效果
高斯–塞德?tīng)柕ㄇ蠓匠探M的解(Python實(shí)現(xiàn))
代碼
import 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]) w = 1.5 times, MT = 0, 1000while times < MT:tempx = x0.copy()for i in range(3):temp = 0for 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]x = w * x + (1-w) * tempxcalTemp = max(abs(x - tempx))times += 1if calTemp < 1e-4:break print(times) print(x)- 結(jié)果算出來(lái)的X為[-4, 3 , 2]
總結(jié)
以上是生活随笔為你收集整理的超松弛迭代法求方法组的解(Python实现)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 马科维茨的均值方差模型(MPT)粒子群优
- 下一篇: 【解决办法】torch交叉熵使用时遇到