Gauss-Siedel Method

advertisement
Gauss-Siedel Method
Major: All Engineering Majors
Authors: Autar Kaw
(Modified by P. Goel for IDC103)
http://numericalmethods.eng.usf.edu
Transforming Numerical Methods Education for STEM
Undergraduates
3/25/2010
http://numericalmethods.eng.usf.edu
1
Gauss-Seidel Method
http://numericalmethods.eng.usf.edu
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.
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Why?
Obviously it isn’t possible to obtain better than machine precision for
a solution of SLEs (using Gaussian Elimination and LU
Decomposition). Actually, the situation is worse for large systems: it
isn’t possible to get close to machine precision in direct methods.
The Gauss-Seidel Method allows the user to control round-off error.
In fact, iterative methods can be used to improve the solution
obtained by direct methods.
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Algorithm
A set of n equations and n unknowns:
a11 x1 + a12 x2 + a13 x3 + ... + a1n xn = b1
a21 x1 + a22 x2 + a23 x3 + ... + a2n xn = b2
.
.
.
.
.
.
an1 x1 + an 2 x2 + an 3 x3 + ... + ann xn = bn
If: the diagonal elements are
non-zero
Rewrite each equation solving
for the corresponding unknown
ex:
First equation, solve for x1
Second equation, solve for x2
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Algorithm
Rewriting each equation
x1 =
c1 - a12 x 2 - a13 x3 KK - a1n x n
a11
From Equation 1
c2 - a21 x1 - a23 x3 KK - a2 n xn
a22
From equation 2
x2 =
M
xn -1 =
xn =
M
M
cn -1 - an -1,1 x1 - an -1, 2 x2 KK - an -1,n -2 xn -2 - an -1, n xn
an -1,n -1
cn - an1 x1 - an 2 x2 - KK - an , n -1 xn -1
ann
From equation n-1
From equation n
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Algorithm
General Form of each equation
n
c1 - å a1 j x j
x1 =
j =1
j ¹1
a11
cn -1 xn -1 =
a 22
j =1
j ¹ n -1
n -1, j
xj
an -1,n -1
c n - å a nj x j
c2 - å a2 j x j
x2 =
åa
n
n
j =1
j¹2
n
xn =
j =1
j¹n
a nn
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Algorithm
General Form for any row ‘i’
n
ci - å aij x j
xi =
j =1
j ¹i
aii
, i = 1,2,K , n.
How or where can this equation be used?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Solve for the unknowns
Assume an initial guess for [X]
é x1 ù
êx ú
ê 2ú
ê M ú
ê ú
ê xn -1 ú
êë xn úû
Use rewritten equati ons to solve for
each value of x i.
Important: Remember to use the
most recent value of xi. Which
means to apply values calculated to
the calculations remaining in the
current iteration.
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Calculate the Absolute Relative Approximate Error
Îa i =
-x
new
i
old
i
x
new
i
x
´ 100
So when has the answer been f ound?
The iterations are stopped when the absolute relative
approximate error is less than a prespecified tolerance for all
unknowns.
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
The system of equati ons
Initial Guess: Assume an initial guess of
é 25 5 1ù é a1 ù é106 .8 ù
ê 64 8 1ú êa ú = ê177 .2 ú
ê
ú ê 2ú ê
ú
êë144 12 1úû êë a3 úû êë 279 .2 úû
é a1 ù é1 ù
êa ú = ê2 ú
ê 2ú ê ú
êë a3 úû êë5úû
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
Rewriting each equation
é 25 5 1ù é a1 ù é106 .8 ù
ê 64 8 1ú ê a ú = ê177 .2 ú
ê
ú ê 2ú ê
ú
êë144 12 1úû êë a3 úû êë 279 .2 úû
106.8 - 5a 2 - a 3
a1 =
25
177.2 - 64a1 - a 3
a2 =
8
279.2 - 144a1 - 12a 2
a3 =
1
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
Applying the initial guess and solving for ai
é a1 ù é1ù
êa ú = ê2ú
ê 2ú ê ú
êë a3 úû êë5úû
Initial Guess
a1 =
106.8 - 5(2) - (5)
= 3.6720
25
177.2 - 64(3.6720 ) - (5)
a2 =
= -7.8510
8
a3 =
279.2 - 144(3.6720 ) - 12(- 7.8510 )
= -155.36
1
When solving for a2, how many of the initial guess values were used?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
Finding the absolute relative approximate error
Îa i
xinew - xiold
=
´100
new
xi
Îa 1 =
Îa
2
3.6720 - 1.0000
x100 = 72.76%
3.6720
- 7.8510 - 2.0000
=
x100 = 125.47%
- 7.8510
Îa 3 =
At the end of the first iteration
é a1 ù é 3.6720 ù
ê a ú = ê - 7.8510 ú
ê 2ú ê
ú
êë a 3 úû êë - 155 .36 úû
The maximum absolute
relative approximate error is
125.47%
- 155.36 - 5.0000
x100 = 103.22%
- 155.36
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
Using
é a1 ù é 3.6720 ù
êa ú = ê- 7.8510ú
ê 2ú ê
ú
êë a 3 úû êë - 155.36 úû
Iteration #2
the values of ai are found:
a1 =
106.8 - 5(- 7.8510 ) - 155.36
= 12.056
25
a2 =
177.2 - 64(12.056 ) - 155.36
= -54.882
8
from iteration #1
a3 =
279.2 - 144(12.056 ) - 12(- 54.882 )
= -798.34
1
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
Finding the absolute relative approximate error
12.056 - 3.6720
At the end of the second iteration
Îa 1 =
x100 = 69.543%
12.056
é a ù é 12.056 ù
1
Îa 2 =
Îa 3 =
- 54.882 - (- 7.8510)
x100 = 85.695%
- 54.882
- 798.34 - (- 155.36 )
x100 = 80.540%
- 798.34
êa ú = ê- 54.882ú
ê 2ú ê
ú
êë a3 úû êë- 798.54úû
The maximum absolute
relative approximate error is
85.695%
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
Repeating more iterations, the following values are obtained
Iteration
1
2
3
4
5
6
a1
3.6720
12.056
47.182
193.33
800.53
3322.6
Îa 1 %
72.767
69.543
74.447
75.595
75.850
75.906
a2
Îa 2 %
a3
−7.8510
−54.882
−255.51
−1093.4
−4577.2
−19049
125.47
85.695
78.521
76.632
76.112
75.972
−155.36
−798.34
−3448.9
−14440
−60072
−249580
Îa 3 %
103.22
80.540
76.852
76.116
75.963
75.931
Notice – The relative errors are not dec reasing at any significant rate
é a 1 ù é0.29048ù
Also, the solution is not converging to the true s olution of ê ú ê
ú
a
=
19
.
690
ê 2ú ê
ú
êëa 3 úû êë 1.0857 úû
http://numericalmethods.eng.usf.edu
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 Gaus s-Siedel method: not all
systems of equations will converge.
Is there a fix?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Pitfall
GAUSS-SEIDEL CONVERGENCE THEOREM: If A is
diagonally dominant, then the Gauss-Seidel method
converges for any starting vector x. A sufficient, but
not necessary condition.
Diagonally dominant: [A] in [A] [X] = [C] is diagonally dominant if:
n
n
aii ³ å aij
j =1
j ¹i
for all ‘i’
and
aii > å aij
for at least one ‘i’
j =1
j ¹i
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Pitfall
Diagonally dominant: The coefficient on the diagonal must be at least
equal to the sum of the other c oefficients in that row and at least one row
with a diagonal coefficient greater than the sum of the other coefficients
in that row.
Which coefficient matrix is diagonally dominant?
é 2 5.81 34 ù
[A ] = êê 45 43 1 úú
êë123 16
1 úû
é124 34 56 ù
[ B] = êê 23 53 5 úú
êë 96 34 129 úû
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
Given the system of equations
12 x1 + 3 x2- 5 x3 = 1
x1 + 5 x2 + 3x3 = 28
3x1 + 7 x2 + 13x3 = 76
With an initial guess of
é x1 ù é1ù
ê x ú = ê0 ú
ê 2ú ê ú
êë x3 úû êë1úû
The coefficient matrix is:
é12 3 - 5ù
[A] = êê 1 5 3 úú
êë 3 7 13 úû
Will the solution converge using the
Gauss-Siedel method?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
Checking if the coefficient matrix is diagonally dominant
é12 3 - 5ù
[A] = êê 1 5 3 úú
êë 3 7 13 úû
a11 = 12 = 12 ³ a12 + a13 = 3 + - 5 = 8
a 22 = 5 = 5 ³ a 21 + a 23 = 1 + 3 = 4
a33 = 13 = 13 ³ a31 + a32 = 3 + 7 = 10
The inequalities are all true and at least one row is strictly greater than:
Therefore: The solution should converge using the Gauss-Siedel Method
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
Rewriting each equation
With an initial guess of
é12 3 - 5ù é a1 ù é 1 ù
ê 1 5 3 ú ê a ú = ê 28 ú
ê
ú ê 2ú ê ú
êë 3 7 13 úû êë a3 úû êë76 úû
1 - 3x 2 + 5 x3
x1 =
12
28 - x1 - 3x3
x2 =
5
76 - 3x1 - 7 x 2
x3 =
13
é x1 ù é1 ù
ê x ú = ê0 ú
ê 2ú ê ú
êë x 3 úû êë1 úû
x1 =
1 - 3(0) + 5(1)
= 0.50000
12
28 - (0.5) - 3(1)
x2 =
= 4.9000
5
76 - 3(0.50000 ) - 7(4.9000 )
x3 =
= 3.0923
13
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
The absolute relative approximate error
0.50000 - 1.0000
Îa 1 =
´ 100 = 100.00%
0.50000
Îa
Îa
2
3
4.9000 - 0
=
´ 100 = 100.00%
4.9000
3.0923 - 1.0000
=
´ 100 = 67.662%
3.0923
The maximum absolute relative error after the first iteration is 100%
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
After Iteration #1
é x1 ù é0.5000 ù
ê x ú = ê 4.9000 ú
ê 2ú ê
ú
êë x3 úû êë 3.0923 úû
Substituting the x values into the
equations
x1 =
1 - 3(4.9000 ) + 5(3.0923)
= 0.14679
12
28 - (0.14679 ) - 3(3.0923)
x2 =
= 3.7153
5
x3 =
After Iteration #2
é x1 ù é0.14679 ù
ê x ú = ê 3.7153 ú
ê 2ú ê
ú
êë x3 úû êë 3.8118 úû
76 - 3(0.14679 ) - 7(4.900 )
= 3.8118
13
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
Iteration #2 absolute relative approximate error
Îa 1 =
Îa
Îa
2
3
0.14679 - 0.50000
´ 100 = 240.61%
0.14679
3.7153 - 4.9000
=
´ 100 = 31.889%
3.7153
3.8118 - 3.0923
=
´ 100 = 18.874%
3.8118
The maximum absolute relative error after the fi rst iteration is 240.61%
This is much larger than the maxi mum absolute relative error obtai ned in
iteration #1. Is this a problem?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
Repeating more iterations, the following values are obtained
Iteration
a1
Îa 1 %
a2
Îa 2 %
a3
1
2
3
4
5
6
0.50000
0.14679
0.74275
0.94675
0.99177
0.99919
100.00
240.61
80.236
21.546
4.5391
0.74307
4.9000
3.7153
3.1644
3.0281
3.0034
3.0001
100.00
31.889
17.408
4.4996
0.82499
0.10856
3.0923
3.8118
3.9708
3.9971
4.0001
4.0001
Îa 3 %
67.662
18.876
4.0042
0.65772
0.074383
0.00101
é x1 ù é0.99919ù
The solution obtained ê x ú = ê 3.0001 ú is close to the exact solution of
ê 2ú ê
ú
êë x3 úû êë 4.0001 úû
é x1 ù é1 ù
ê x ú = ê 3ú .
ê 2ú ê ú
êë x3 úû êë4úû
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 3
Given the system of equations
3 x1 + 7 x2 + 13 x3 = 76
Rewriting the equations
x1 + 5 x2 + 3x3 = 28
76 - 7 x2 - 13 x3
x1 =
3
12 x1 + 3x2 - 5 x3 = 1
With an initial guess of
é x1 ù é1 ù
ê x ú = ê0 ú
ê 2ú ê ú
êë x3 úû êë1 úû
28 - x1 - 3x3
x2 =
5
1 - 12 x1 - 3 x 2
x3 =
-5
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 3
Conducting six iterations, the following values are obtained
Iteration
a1
1
2
3
4
5
6
21.000
−196.15
−1995.0
−20149
2.0364×105
−2.0579×105
Îa 1 %
A2
95.238
0.80000
110.71
14.421
109.83
−116.02
109.90
1204.6
109.89
−12140
109.89 1.2272×105
Îa 2 %
a3
Îa 3 %
100.00
94.453
112.43
109.63
109.92
109.89
50.680
−462.30
4718.1
−47636
4.8144×105
−4.8653×106
98.027
110.96
109.80
109.90
109.89
109.89
The values are not converging.
Does this mean that the Gauss-Seidel method cannot be used?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
The Gauss-Seidel Method can still be used
The coefficient matrix is not
diagonally dominant
But this is the same set of
equations used in example #2,
which did converge.
é 3 7 13 ù
[A] = êê 1 5 3 úú
êë12 3 - 5úû
é12 3 - 5ù
[A] = êê 1 5 3 úú
êë 3 7 13 úû
If a system of linear equations is not diagonally dominant, check to see if
rearranging the equati ons can form a di agonally dominant matrix.
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Not every system of equations can be rearranged to have a
diagonally dominant coefficient matrix.
Observe the set of equati ons
x1 + x 2 + x3 = 3
2 x1 + 3 x 2 + 4 x3 = 9
x1 + 7 x 2 + x3 = 9
Which equation(s) prevents this set of equation from having a
diagonally dominant coefficient matrix?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Summary
-Advantages of the Gauss-Seidel Method
-Algorithm for the Gauss-Seidel Method
-Pitfalls of the Gauss -Seidel Method
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Questions?
http://numericalmethods.eng.usf.edu
Additional Resources
For all resources on this topic such as digital audiovisual
lectures, primers, textbook chapters, multiple-choice
tests, worksheets in MATLAB, MATHEMATICA, MathCad
and MAPLE, blogs, related physical problems, please
visit
http://numericalmethods.eng.usf.edu/topics/gauss_seid
el.html
THE END
http://numericalmethods.eng.usf.edu
Download