免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/a19990412/article/details/90349029
数値解析のトピック
需要方程式
ガウスに基づいて実際に緩和オーバー - ザイデル反復
コントラストは、ガウスの影響で前の反復法と比較することができる
ガウス-ザイデル反復方程式法(Python実装)の溶液
コード
import numpy as np
A = 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, 1000
while times < MT:
tempx = x0.copy()
for i in range(3):
temp = 0
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]
x = w * x + (1-w) * tempx
calTemp = max(abs(x - tempx))
times += 1
if calTemp < 1e-4:
break
print(times)
print(x)
- Xは、算出結果である[-4、3、2]