求方程組
5x_1+2x_2 + x_3 = -12 \\ -x_1 + 4x_2+2x_3 = 20 \\ 2x_1+-3x_2+10x_3=2 \end \right.
⎩⎨⎧5x
1+2
x2+
x3=
−12−
x1+
4x2
+2x3
=20
2x1
+−3x
2+1
0x3
=2
超鬆弛迭代其實基於高斯-塞德爾迭代的
可以對比著之前的高斯迭代法對比一下效果
高斯–塞德爾迭代法求方程組的解(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 =
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)* tempx
caltemp =
max(
abs(x - tempx)
) times +=
1if caltemp <1e-
4:break
print
(times)
print
(x)
逐次超鬆弛迭代法SOR
sor 逐次超鬆弛迭代法 本函式只能求解當a為n n的矩陣 2010 10 21 function x sor a,b,w tic if nargin 2 w 1.23 預設鬆弛因子w 1.23 endif w 0 error matlab sor argument w should be larg...
牛頓迭代法求方程解
牛頓迭代法 newton s method 又稱為牛頓 拉夫遜方法 newton raphson method 它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。多數方程不存在求根公式,因此求精確根非常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。方法使用函式f x 的泰勒級...
雅克比迭代法求方程組的解(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的時候,這時候,...