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

2022-06-12 13:45:11 字數 1160 閱讀 7812

有方程組如下:

迭代法求解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.linalg.solve(a, b.t)

# print('result:\n', result)

# 方法二:迭代法求解方程組的解

b = np.array([[0, 3/8, -2/8], [-4/11, 0, 1/11], [-6/12, -3/12, 0]])

f = np.array([[20/8, 33/11, 36/12]])

error = 1.0e-6

steps = 100

xk = np.zeros((3, 1)) # initialize parameter setting

errorlist =

for k in range(steps):

xk_1 = xk

xk = np.matmul(b, xk) + f.t

print('xk:\n', xk)

if errorlist[-1] < error:

print('iteration: ', k+1)

break

# 把誤差畫出來

x_axis = [i for i in range(len(errorlist))]

plt.figure()

plt.plot(x_axis, errorlist)

結果如下:

【參考文獻】

《機器學習演算法原理與程式設計實踐》鄭捷,第五章第一節

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

求方程組 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的時候,這時候,...

數值計算(迭代法解方程組)

ax b經過一定的變換成x bx f 然後從初始向量出發,計算xk 1 b xk f 經過一定的次數後得到xk 1會收斂於真正的值。問題來了?如何得到x bx f這種形式?如何證明收斂?接下來的幾個演算法都是圍繞這個問題。coding utf 8 import numpy as np a packa...

C 解方程組之Jacobi迭代法

迭代過程 首先將 方程組中的 係數矩陣 a分解成三部分,即 a l d u,如圖1所示,其中 d為對角陣,l為下三角矩陣,u為上三角矩陣。之後確定迭代格式,x k 1 b x k f 這裡 表示的是上標,括號內數字即迭代次數 如圖2所示,其中 b稱為迭代矩陣,雅克比迭代法中一般記為 j。k 0,1,...