7
7
# TT-GMRES
8
8
9
9
10
- def GMRES (A , x , b , eps = 1e-6 , maxit = 100 , m = 20 , _iteration = 0 , callback = None , verbose = 0 ):
10
+ def GMRES (A , u_0 , b , eps = 1e-6 , maxit = 100 , m = 20 , _iteration = 0 , callback = None , verbose = 0 ):
11
11
"""
12
12
Flexible TT GMRES
13
13
:param A: matvec(x[, eps])
14
- :param x : initial vector
15
- :param b: ansert
16
- :param maxit: max numbr of iterations
14
+ :param u_0 : initial vector
15
+ :param b: answer
16
+ :param maxit: max number of iterations
17
17
:param eps: required accuracy
18
18
:param m: number of iteration without restart
19
19
:param _iteration: iteration counter
@@ -24,7 +24,7 @@ def GMRES(A, x, b, eps=1e-6, maxit=100, m=20, _iteration=0, callback=None, verbo
24
24
>>> from tt import GMRES
25
25
>>> def matvec(x, eps):
26
26
>>> return tt.matvec(S, x).round(eps)
27
- >>> answer, res = GMRES(matvec, x_0 , b, eps=1e-8)
27
+ >>> answer, res = GMRES(matvec, u_0 , b, eps=1e-8)
28
28
"""
29
29
maxitexceeded = False
30
30
converged = False
@@ -36,7 +36,7 @@ def GMRES(A, x, b, eps=1e-6, maxit=100, m=20, _iteration=0, callback=None, verbo
36
36
g = np .zeros (m )
37
37
s = np .ones (m ) * np .nan
38
38
c = np .ones (m ) * np .nan
39
- v [0 ] = b - A (x , eps = eps )
39
+ v [0 ] = b - A (u_0 , eps = eps )
40
40
v [0 ] = v [0 ].round (eps )
41
41
resnorm = v [0 ].norm ()
42
42
curr_beta = resnorm
@@ -83,13 +83,13 @@ def GMRES(A, x, b, eps=1e-6, maxit=100, m=20, _iteration=0, callback=None, verbo
83
83
84
84
y = la .solve_triangular (R [:q , :q ], g [:q ], check_finite = False )
85
85
for idx in range (q ):
86
- x += v [idx ] * y [idx ]
86
+ u_0 += v [idx ] * y [idx ]
87
87
88
- x = x .round (eps )
88
+ u_0 = u_0 .round (eps )
89
89
90
90
if callback is not None :
91
- callback (x )
91
+ callback (u_0 )
92
92
93
93
if converged or maxitexceeded :
94
- return x , resnorm / bnorm
95
- return GMRES (A , x , b , eps , maxit , m , _iteration , callback = callback , verbose = verbose )
94
+ return u_0 , resnorm / bnorm
95
+ return GMRES (A , u_0 , b , eps , maxit , m , _iteration , callback = callback , verbose = verbose )
0 commit comments