雅克比迭代法求方程組的解(Python實現)

2021-08-20 04:36:13 字數 1055 閱讀 6974

求方程組 ⎧⎩

⎨⎪⎪5

x1+2

x2+x

3=−12

−x1+

4x2+

2x3=

202x1

+−3x

2+10x

3=2 {5x

1+2x

2+x3

=−12−

x1+4

x2+2

x3=20

2x1+

−3x2

+10x3

=2

上面方程當然是非常容易求解的,但是方程規模變大的時候(比如係數矩陣是100w* 100w的時候,這時候,用這個寫就會比較簡單了。。)

# @time    : 2018/5/22 17:23

# @author : sean

# @site :

# @file : 1.py

# @software: pycharm

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([0.0, 0, 0])

x = np.array([0.0, 0, 0])

times = 0

while

true:

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]

caltemp = max(abs(x - x0))

times += 1

if caltemp < 1e-4:

break

else:

x0 = x.copy()

print(times)

print(x)

雅克比迭代法與高斯塞德爾迭代法求解方程組(C語言)

分別用雅可比 迭代法與高斯塞德爾迭代法解下列方程組 雅可比迭代法 include include define eps 1e 6 define max 100 雅可比迭代法 void jacobi float a,int n,float x y i a i n 1 n s a i n 1 i eps...

雅克比和高斯賽德爾迭代求方程組的解

實驗原理 雅克比和高斯的不同之處是,k 1下面那個框框,高斯是a i j y j 雅克比是a i j x j 就是因為高斯用的是更新之後的x,雅克比沒有用更新之後的x。在 編寫過程中,我沒有用到動態陣列,感覺輸入係數矩陣啥的用動態陣列更好些。但是,我寫了轉化對角佔優的部分,這部分也是非常重要的。如下...

python實現迭代法求方程組的根

有方程組如下 迭代法求解x,python 如下 import numpy as np import matplotlib.pyplot as plt a np.array 8,3,2 4,11,1 6,3,12 b np.array 20,33,36 方法一 消元法求解方程組的解 result np...