Gauss-Seidel Method

Download Report

Transcript Gauss-Seidel Method

Gauss-Siedel Method
Civil Engineering Majors
Authors: Autar Kaw
http://numericalmethods.eng.usf.edu
Transforming Numerical Methods Education for STEM
Undergraduates
7/18/2015
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?
The Gauss-Seidel Method allows the user to control round-off error.
Elimination methods such as Gaussian Elimination and LU
Decomposition are prone to prone to round-off error.
Also: If the physics of the problem are understood, a close initial
guess can be made, decreasing the number of iterations needed.
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method
Algorithm
A set of n equations and n unknowns:
a11x1  a12 x2  a13 x3  ...  a1n xn  b1
a21 x1  a22 x2  a23 x3  ... a2n xn  b2
.
.
.
.
.
.
an1x1  an2 x2  an3 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 x2  a13 x3   a1n xn
a11
From Equation 1
c2  a21 x1  a23 x3   a2 n xn
a22
From equation 2
x2 
xn 1 
xn 



cn 1  an 1,1 x1  an 1, 2 x2   an 1,n  2 xn  2  an 1,n xn
From equation n-1
an 1,n 1
cn  an1 x1  an 2 x2    an ,n 1 xn 1
From equation n
ann
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 
n
a
j 1
j  n 1
n 1, j
xj
an1,n1
n
c n   a nj x j
n
c2   a2 j x j
x2 
j 1
j 2
a 22
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,, 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
  
 
 xn-1 
 xn 
Use rewritten equations to solve for
each value of xi.
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
xinew  xiold

100
new
xi
So when has the answer been found?
The iterations are stopped when the absolute relative
approximate error is less than a prespecified tolerance for all
unknowns.
http://numericalmethods.eng.usf.edu
Example: Cylinder Stresses
To find the maximum stresses in a compounded cylinder, the following
four simultaneous linear equations need to solved.
4.2857107

7
4
.
2857

10


 6.5

0

 9.2307105
0
 5.4619105
 0.15384
 4.2857107
6.5
0
4.2857107
  c1   7.887103 
  

5.4619105  c2  
0


0.15384  c3   0.007 

 
5 
 3.605710  c4  
0

0
Example: Cylinder Stresses
In the compound cylinder, the inner cylinder has an internal radius of
a = 5”, and outer radius c = 6.5”, while the outer cylinder has an
internal radius of c = 6.5” and outer radius, b=8”. Given E = 30×106
psi, ν = 0.3, and that the hoop stress in outer cylinder is given by
E
 
1  2

 1 


c
1



c
4
 3
2
r





find the stress on the inside radius of the outer cylinder.
Find the values of c1, c2, c3 and c4 using Gauss-Seidel Method.
Assume an initial guess of
iterations.
 c1   0.005
c   0.001 
 2  
 and conduct two
c3   0.0002
  

c
0
.
03

 4 
Example: Cylinder Stresses
Rewriting each equation
4.2857107

7
4.285710

 6.5

0

 9.2307105
0
 5.4619105
 4.2857107
 0.15384
6.5
0
4.2857107
  c1   7.887103 
  

5.4619105  c2  
0


0.15384  c3   0.007 
  

 3.6057105  c4  
0

0




 7.887103   9.2307105 c2  0c3  0c4
c1 
4.2857107
0  4.2857107 c1   4.2857107 c3  5.4619105 c4
c2 
 5.4619105
0.007   6.5c1   0.15384 c2  0.15384 c4
c3 
6.5
0  0c1  0c2  4.2857107 c3
c4 
 3.6057105
Example: Cylinder Stresses
Iteration 1
Substituting initial guesses into the equations
c1 


 7.887103 9.2307105  0.001
4


1
.
6249

10
4.2857107

 
 c1   0.005
c   0.001 
 2  

c3   0.0002
  

c 4   0.03 

0 4.2857107   1.6249104   4.2857107  0.0002 5.4619105  0.03
3
c2 

1
.
5569

10
 5.4619105


0.007  6.5  1.6249104   0.153841.5569103  0.15384 0.03
c3 
 2.4125104
6.5
0  4.2857107  2.4125104
c4 
 2.8675102
5
 3.605710
Example: Cylinder Stresses
Finding the absolute relative approximate error
a i
cinew  ciold

 100
new
ci
At the end of the first
iteration
 1.6249 10 4   0.005
a 1 
 100  2977.1%
4
 1.6249 10
a
2
1.5569 103  0.001

 100  35.770%
1.5569 103
4
a 3
2.4125 10  0.002

 100  17.098%
4
2.4125 10
a
2.8675 10 2  0.03

 100  4.6223%
2
2.8675 10
4
 c1   1.6249 104 
c  
3 
1
.
5569

10
2

 

4
c3   2.4125 10 
  
2 
c
2
.
8675

10


 4 
The maximum absolute
relative approximate error is
2977.1%
Example: Cylinder Stresses
Iteration 2
Using
 c1   1.6249 104 
c  
3 
1
.
5569

10

 2  

4
c3   2.4125 10 
  
2 
c
2
.
8675

10


 4 
 7.887103  (9.2307105 ) 1.559103
c1 
4.2857107
 1.5050104
0  4.2857107  (1.5050104 )  (4.2857107 )  2.4125104  5.4619105  2.8675102
c2 
 5.4619105
 2.0639103
0.007  (6.5)  (1.505010 4 )  (0.15384)  2.0639103  0.15384 2.867510 2
c3 
6.5
 1.989210 4
0  4.2857107 1.989210 4
c4 
 3.6057105
 2.364310 2
Example: Cylinder Stresses
Finding the absolute relative approximate error for the second iteration


 1.5050104   1.6249104
100  7.9702%
a 1 
4
1.505010
a
2
 2.0639103  1.5569103
100  175.44%

3
 2.063910
a 3
1.989210 4  2.412510 4
100  21.281%

4
1.989210
a
2.364310 2  2.867510 2
100  21.281%

2
2.364310
4
Example: Cylinder Stresses
At the end of the
second iteration:
 c1    1.5050 104 
c  
 3  The maximum absolute relative

2
.
0639

10
 approximate error is 175.44%
 2  

4
c3   1.9892 10 
  
2 
c
2
.
3643

10

 4  
At the end of the second iteration the stress on the inside radius of
the outer cylinder is calculated.

 1   


c
1



c
4
 3
2 
r




30106 
4
 2  1  0.3 


1.989210 1  0.3  2.364310 
2 
2 
1  0.3 
 6.5 
 21439 psi
 
E
1  2
Example: Cylinder Stresses
Conducting more iterations, the following values are obtained
Iteration
c1
a 1 %
c2
a 2 %
c3
a 3 %
c4
1
−1.6249×10−4
2977.1
1.5569×10−3
35.770
2.4125×10−4
17.098
2.8675×10−2
4.6223
2
−1.5050×10−4
7.9702
−2.0639×10−3
175.44
1.9892×10−4
21.281
2.3643×10−2
21.281
3
−2.2848×10−4
34.132
−9.8931×10−3
79.138
5.4716×10−5
263.55
6.5035×10−3
263.55
4
−3.9711×10−4
42.464
−2.8949×10−2
65.826
−1.5927×10−4
134.53
−1.8931×10−2
134.35
5
−8.0755×10−4
50.825
−6.9799×10−2
58.524
−9.3454×10−4
82.957
−1.1108×10−1
82.957
6
−1.6874×10−3
52.142
−1.7015×10−1
58.978
−2.0085×10−3
53.472
−2.3873×10−1
53.472
Notice: The absolute relative approximate errors are not
decreasing
a 4 %
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.
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 coefficients 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
Most physical systems do result in simultaneous linear equations that
have diagonally dominant coefficient matrices.
http://numericalmethods.eng.usf.edu
Example: Cylinder Stresses
Examination of the coefficient matrix reveals that it is not
diagonally dominant and cannot be rearranged to become
diagonally dominant
4.2857 107

7
4
.
2857

10


 6.5

0

 9.2307 105
0
 5.4619 105
 0.15384
 4.2857 107
6.5
0
4.2857 107


5.4619 105 
0.15384 

 3.6057 105 
0
This particular problem is an example of a system of linear equations that
cannot be solved using the Gauss-Seidel method.
Other methods that would work:
1. Gaussian elimination
2. LU Decomposition
Gauss-Seidel Method: Example 2
Given the system of equations
12x1  3x2- 5x3  1
x1  5x2  3x3  28
3x1  7 x2  13x3  76
With an initial guess of
 x1  1 
 x   0 
 2  
 x 3  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
a22  5  5  a21  a23  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  3 x 2  5 x3
x1 
12
28  x1  3x3
x2 
5
76  3 x1  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
x2 
28  0.14679   33.0923 
 3.7153
5
x3 
76  30.14679   74.900 
 3.8118
13
After Iteration #2
 x1  0.14679
 x    3.7153 
 2 

 x3   3.8118 
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 first iteration is 240.61%
This is much larger than the maximum absolute relative error obtained 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  
 x 3   4 
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 3
Given the system of equations
3x1  7 x2  13x3  76
Rewriting the equations
x1  5x2  3x3  28
76  7 x2  13 x3
x1 
3
12x1  3x2  5x3  1
With an initial guess of
 x1  1 
 x   0 
 2  
 x3  1 
28  x1  3 x3
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 equations can form a diagonally 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 equations
x1  x2  x3  3
2 x1  3x2  4 x3  9
x1  7 x2  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