CH 2 Iterative Methods PDF
CH 2 Iterative Methods PDF
Observe that the procedure has triangularized the system stiffness matrix without formally assembling
that matrix. If we take out the constraint equation, the remaining equations are easily solved by back
substitution. Here, forces are known.
a) Gauss-Seidel Method
An iterative method.
Basic Procedure:
-Algebraically solve each linear equation for xi
-Assume an initial guess solution array
-Solve for each xi and repeat
-Use absolute relative approximate error after each iteration
to check if error is within a pre-specified tolerance.
Gauss-Seidel Method
Why?
The Gauss-Seidel Method allows the user to control round-off error.
c2 a21x1 a23 x3 a2 n xn
x2 From equation 2
a22
cn 1 an 1,1 x1 an 1, 2 x2 an 1,n 2 xn 2 an 1,n xn From equation n-1
xn 1
an 1,n 1
cn an1 x1 an 2 x2 an ,n 1 xn 1
xn From equation n
ann
Gauss-Seidel Method
Algorithm
General Form of each equation
n
a
n
c1 a1 j x j cn 1 n 1, j xj
j 1 j 1
j n 1
x1
j 1 xn 1
a11 an 1,n 1
n
c n a nj x j
n
c2 a2 j x j
j 1 j 1
j n
x2
j2
xn
a 22 a nn
Gauss-Seidel Method
Algorithm
General Form for any row ‘i’
n
ci aij x j
j 1
j i
xi , i 1,2,, n.
aii
a1 1
a 2
Initial Guess: Assume an initial guess of
2
a3 5
Gauss-Seidel Method: Example 1
When solving for a2, how many of the initial guess values were used?
Gauss-Seidel Method: Example 1
Finding the absolute relative approximate error
xinew xiold At the end of the first iteration
a i new
100
xi
a1 3.6720
a 7.8510
3.6720 1.0000 2
a 1 x100 72.76%
3.6720 a3 155.36
155.36 5.0000
a 3 x100 103.22%
155.36
Gauss-Seidel Method: Example 1
Iteration #2
Using
a1 3.6720 the values of ai are found:
a 7.8510 106.8 5 7.8510 155.36
2 a1 12.056
a3 155.36 25
from iteration #1
177.2 6412.056 155.36
a2 54.882
8
Iteration a1 a 1 % a2 a 2 % a3 a 3 %
1 3.6720 72.767 −7.8510 125.47 −155.36 103.22
2 12.056 69.543 −54.882 85.695 −798.34 80.540
3 47.182 74.447 −255.51 78.521 −3448.9 76.852
4 193.33 75.595 −1093.4 76.632 −14440 76.116
5 800.53 75.850 −4577.2 76.112 −60072 75.963
6 3322.6 75.906 −19049 75.972 −249580 75.931
Notice – The relative errors are not decreasing at any significant rate
a1 0.29048
Also, the solution is not converging to the true solution of
a
2 19 .690
a 3 1.0857
Gauss-Seidel Method: Pitfall
What went wrong?
Even though done correctly, the answer is not converging to the
correct answer
This example illustrates a pitfall of the Gauss-Siedel method: not all
systems of equations will converge.
Is there a fix?
One class of system of equations always converges: One with a diagonally
dominant coefficient matrix.
The inequalities are all true and at least one row is strictly greater than:
Therefore: The solution should converge using the Gauss-Siedel Method
Gauss-Seidel Method: Example 2
Rewriting each equation With an initial guess of
12 3 5 a1 1 x1 1
1 5 3 a 28 x 0
2 2
3 7 13 a3 76 x3 1
1 3 x 2 5 x3 1 30 51
x1 x1 0.50000
12 12
4.9000 0
a 2
100 100.00%
4.9000
3.0923 1.0000
a 3
100 67.662%
3.0923
The maximum absolute relative error after the first iteration is 100%
Gauss-Seidel Method: Example 2
After Iteration #1
x1 0.5000
x 4.9000
2
x3 3.0923
76 30.14679 74.900
x3 3.8118
13
Gauss-Seidel Method: Example 2
This is much larger than the maximum absolute relative error obtained in
iteration #1. Is this a problem?
Gauss-Seidel Method: Example 2
Repeating more iterations, the following values are obtained
Iteration a1 a 1 % a2 a 2 % a3 a 3 %
x1 0.99919 x1 1
The solution obtained x 3.0001 is close to the exact solution of x 3 .
2 2
x3 4.0001 x3 4
Gauss-Seidel Method: Example 3
Given the system of equations
Iteration a1 a 1 % A2 a 2 % a3 a 3 %
1 21.000 95.238 0.80000 100.00 50.680 98.027
2 −196.15 110.71 14.421 94.453 −462.30 110.96
3 −1995.0 109.83 −116.02 112.43 4718.1 109.80
4 −20149 109.90 1204.6 109.63 −47636 109.90
5 2.0364×105 109.89 −12140 109.92 4.8144×105 109.89
6 −2.0579×105 109.89 1.2272×105 109.89 −4.8653×106 109.89
x1 x2 x3 3
2 x1 3x2 4 x3 9
x1 7 x2 x3 9
Questions?
2 b) Conjugate Gradient Method
The conjugate gradient method
is an iterative method that is
used to solve large symmetric
linear systems Ax=b.
x0∈RN,r0=b−x0,p0=r0
u T Av u , v A : Au , v u , AT v u , Av
Two vectors are conjugate if and only if they are orthogonal with respect to this inner product. Being
conjugate is a symmetric relation: if u is conjugate to v, then v is conjugate to u. Suppose that
P p1 ,..., pn
n
is a set of n mutually conjugate vectors (with respect to A). Then P forms a basis for , and we may
express the solution x* of Ax b in this basis:
n
x* i pi
i 1
Taking the first basis vector p0 (residual) to be the negative of the gradient of f at x = x0.
The gradient of f equals Ax − b. Starting with an initial guess x0, this means we take p0 = b − Ax0.
The other vectors in the basis will be conjugate to the gradient, hence the name conjugate gradient method.
Let rk be the residual at the kth step:
rk b Axk
rk is the negative gradient of f at x = xk, so the gradient descent method would require to move in the direction rk.
However, we insist that the directions pk be conjugate to each other. A practical way to enforce this, is by requiring
that the next search direction be built out of the current residual and all previous search directions. This gives the
following expression: piT Ark
pk rk T
pi
ik
pi pi
Next optimal location is given by:
xk 1 xk k pk
pkT (b Axk ) pkT rk
and, k T
T
pk Apk pk Apk
The expression for 𝜶k is derived by minimizing the expression for f(xk+1) and minimizing it wrt 𝜶k:
The algorithm requires storage of all previous searching directions and residue vectors, as well as many
matrix-vector multiplications, and thus can be computationally expensive. However, a closer analysis of
the algorithm shows that ri is orthogonal to rj , i.e., riT rj 0 (i j ) . Also, pi is A-orthogonal pj, i.e.,
piT Ap j 0 (i j ). This can be regarded that as the algorithm progresses, p and r span the same Krylov subspace.
i i
Here, ri form the orthogonal basis with respect to standard inner product, and pi form the orthogonal
basis with respect to inner product induced by A. Therefore, xk can be regarded as the projection of x on
the Krylov subspace.
Solution:
Problem: