Chebyshev iteration
In numerical linear algebra, the Chebyshev iteration is an iterative method for determining the solutions of a system of linear equations. The method is named after Russian mathematician Pafnuty Chebyshev.
Chebyshev iteration avoids the computation of inner products as is necessary for the other nonstationary methods. For some distributed-memory architectures these inner products are a bottleneck with respect to efficiency. The price one pays for avoiding inner products is that the method requires enough knowledge about spectrum of the coefficient matrix A, that is an upper estimate for the upper eigenvalue and lower estimate for the lower eigenvalue. There are modifications of the method for nonsymmetric matrices A.
Example code in MATLAB
[edit | edit source]function [x] = SolChebyshev002(A, b, x0, iterNum, lMax, lMin)
d = (lMax + lMin) / 2;
c = (lMax - lMin) / 2;
preCond = eye(size(A)); % Preconditioner
x = x0;
r = b - A * x;
for i = 1:iterNum % size(A, 1)
z = linsolve(preCond, r);
if (i == 1)
p = z;
alpha = 1/d;
else if (i == 2)
beta = (1/2) * (c * alpha)^2
alpha = 1/(d - beta / alpha);
p = z + beta * p;
else
beta = (c * alpha / 2)^2;
alpha = 1/(d - beta / alpha);
p = z + beta * p;
end;
x = x + alpha * p;
r = b - A * x; %(= r - alpha * A * p)
if (norm(r) < 1e-15), break; end; % stop if necessary
end;
end
Code translated from [1] and.[2]
See also
[edit | edit source]- Iterative method. Linear systems
- List of numerical analysis topics. Solving systems of linear equations
- Jacobi iteration
- Gauss–Seidel method
- Modified Richardson iteration
- Successive over-relaxation
- Conjugate gradient method
- Generalized minimal residual method
- Biconjugate gradient method
- Iterative Template Library
- IML++
References
[edit | edit source]- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).