Upload
truongdien
View
228
Download
0
Embed Size (px)
Citation preview
3/25/2010 http://numericalmethods.eng.usf.edu 1
Gauss-Siedel Method
Major: All Engineering Majors
Authors: Autar Kaw(Modified by P. Goel for IDC103)
http://numericalmethods.eng.usf.eduTransforming Numerical Methods Education for STEM
Undergraduates
Gauss-Seidel Method
http://numericalmethods.eng.usf.edu
http://numericalmethods.eng.usf.edu
Gauss-Seidel MethodAn 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 MethodWhy?
Obviously it isn’t possible to obtain better than machine precision fora solution of SLEs (using Gaussian Elimination and LUDecomposition). Actually, the situation is worse for large systems: itisn’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 solutionobtained by direct methods.
http://numericalmethods.eng.usf.edu
Gauss-Seidel MethodAlgorithm
A set of n equations and n unknowns:
11313212111 ... bxaxaxaxa nn =++++
2323222121 ... bxaxaxaxa n2n =++++
nnnnnnn bxaxaxaxa =++++ ...332211
. .
. .
. .
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 MethodAlgorithm
Rewriting each equation
11
131321211 a
xaxaxacx nn−−−=
KK
nn
nnnnnnn
nn
nnnnnnnnnn
nn
axaxaxac
x
axaxaxaxac
x
axaxaxacx
11,2211
1,1
,122,122,111,111
22
232312122
−−
−−
−−−−−−−−
−−−−=
−−−−=
−−−=
KK
KK
MMM
KK
From Equation 1
From equation 2
From equation n-1
From equation n
http://numericalmethods.eng.usf.edu
Gauss-Seidel MethodAlgorithm
General Form of each equation
11
11
11
1 a
xac
x
n
jj
jj∑≠=
−
=
22
21
22
2 a
xac
x
j
n
jj
j∑≠=
−
=
1,1
11
,11
1−−
−≠=
−−
−
∑−
=nn
n
njj
jjnn
n a
xac
x
nn
n
njj
jnjn
n a
xac
x
∑≠=
−
=1
http://numericalmethods.eng.usf.edu
Gauss-Seidel MethodAlgorithm
General Form for any row ‘i’
.,,2,1,1
nia
xac
xii
n
ijj
jiji
i K=
−
=
∑≠=
How or where can this equation be used?
http://numericalmethods.eng.usf.edu
Gauss-Seidel MethodSolve for the unknowns
Assume an initial guess for [X]
n
-n
2
xx
xx
1
1
M
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 MethodCalculate the Absolute Relative Approximate Error
100×−
=∈ newi
oldi
newi
ia xxx
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 equations
=
2.2792.1778.106
11214418641525
3
2
1
aaa
Initial Guess: Assume an initial guess of
=
521
3
2
1
aaa
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
Rewriting each equation
=
2.2792.1778.106
11214418641525
3
2
1
aaa
2558.106 32
1
aaa −−=
8642.177 31
2
aaa −−=
1121442.279 21
3
aaa −−=
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1Applying the initial guess and solving for ai
=
521
3
2
1
aaa 6720.3
25)5()2(58.106a1 =
−−=
( ) ( ) 8510.78
56720.3642.177a 2 −=−−
=
( ) ( ) 36.1551
8510.7126720.31442.279a3 −=−−−
=
Initial Guess
When solving for a2, how many of the initial guess values were used?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
%76.721006720.3
0000.16720.31a =
−=∈ x
%47.1251008510.7
0000.28510.72a =
−−−
=∈ x
%22.10310036.155
0000.536.1553a =
−−−
=∈ x
Finding the absolute relative approximate error
100×−
=∈ newi
oldi
newi
ia xxx At the end of the first iteration
The maximum absolute relative approximate error is 125.47%
−−=
36.1558510.7
6720.3
3
2
1
aaa
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1Iteration #2
Using
−−=
36.1558510.7
6720.3
3
2
1
aaa
( ) 056.1225
36.1558510.758.1061 =
−−−=a
( ) 882.548
36.155056.12642.1772 −=
−−=a
( ) ( ) 34.7981
882.5412056.121442.2793 −=
−−−=a
from iteration #1
the values of ai are found:
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1Finding the absolute relative approximate error
%543.69100056.12
6720.3056.121a =
−=∈ x
( ) %695.85100x882.54
8510.7882.542
=−
−−−=∈a
( ) %540.8010034.798
36.15534.7983a =
−−−−
=∈ x
At the end of the second iteration
−−=
54.798882.54
056.12
3
2
1
aaa
The maximum absolute relative approximate error is 85.695%
Iteration a1 a2 a3
123456
3.672012.05647.182193.33800.533322.6
72.76769.54374.44775.59575.85075.906
−7.8510−54.882−255.51−1093.4−4577.2−19049
125.4785.69578.52176.63276.11275.972
−155.36−798.34−3448.9−14440−60072−249580
103.2280.54076.85276.11675.96375.931
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 1
=
0857.1690.19
29048.0
aaa
3
2
1
Repeating more iterations, the following values are obtained
%1a∈ %
2a∈ %3a∈
Notice – The relative errors are not decreasing at any significant rate
Also, the solution is not converging to the true solution of
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 Gauss-Siedel method: not all systems of equations will converge.
Is there a fix?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Pitfall
Diagonally dominant: [A] in [A] [X] = [C] is diagonally dominant if:
∑≠=
≥n
jj
ijaai1
ii ∑≠=
>n
ijj
ijii aa1
for all ‘i’ and for at least one ‘i’
GAUSS-SEIDEL CONVERGENCE THEOREM: If A isdiagonally dominant, then the Gauss-Seidel methodconverges for any starting vector x. A sufficient, butnot necessary condition.
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Pitfall
[ ]
=
11612314345
3481.52A
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.
=
129349655323
5634124]B[
Which coefficient matrix is diagonally dominant?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2Given the system of equations
15312 321 x- x x =+
2835 321 x x x =++761373 321 =++ x x x
=
101
3
2
1
xxx
With an initial guess of
The coefficient matrix is:
[ ]
−=
13733515312
A
Will the solution converge using the Gauss-Siedel method?
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
[ ]
−=
13733515312
A
Checking if the coefficient matrix is diagonally dominant
43155 232122 =+=+≥== aaa
10731313 323133 =+=+≥== aaa
8531212 131211 =−+=+≥== aaa
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
=
−
76281
13733515312
3
2
1
aaa
Rewriting each equation
12531 32
1
xxx +−=
5328 31
2
xxx −−=
137376 21
3
xxx −−=
With an initial guess of
=
101
3
2
1
xxx
( ) ( ) 50000.012
150311 =
+−=x
( ) ( ) 9000.45
135.0282 =
−−=x
( ) ( ) 0923.313
9000.4750000.03763 =
−−=x
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2The absolute relative approximate error
%00.10010050000.0
0000.150000.01
=×−
=∈a
%00.1001009000.4
09000.42a =×
−=∈
%662.671000923.3
0000.10923.33a =×
−=∈
The maximum absolute relative error after the first iteration is 100%
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2
=
8118.37153.3
14679.0
3
2
1
xxx
After Iteration #1
( ) ( ) 14679.012
0923.359000.4311 =
+−=x
( ) ( ) 7153.35
0923.3314679.0282 =
−−=x
( ) ( ) 8118.313
900.4714679.03763 =
−−=x
Substituting the x values into the equations
After Iteration #2
=
0923.39000.45000.0
3
2
1
xxx
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2Iteration #2 absolute relative approximate error
%61.24010014679.0
50000.014679.01a =×
−=∈
%889.311007153.3
9000.47153.32a =×
−=∈
%874.181008118.3
0923.38118.33a =×
−=∈
The maximum absolute relative error after the fi rst iteration is 240.61%
This is much larger than the maximum absolute relative error obtained in iteration #1. Is this a problem?
Iteration a1 a2 a3
123456
0.500000.146790.742750.946750.991770.99919
100.00240.6180.23621.5464.5391
0.74307
4.90003.71533.16443.02813.00343.0001
100.0031.88917.4084.4996
0.824990.10856
3.09233.81183.97083.99714.00014.0001
67.66218.8764.0042
0.657720.0743830.00101
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 2Repeating more iterations, the following values are obtained
%1a∈ %
2a∈ %3a∈
=
431
3
2
1
xxx
=
0001.40001.3
99919.0
3
2
1
xxx
The solution obtained is close to the exact solution of .
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 3Given the system of equations
761373 321 =++ xxx
2835 321 =++ xxx15312 321 =−+ xxx
With an initial guess of
=
101
3
2
1
xxx
Rewriting the equations
313776 32
1xxx −−
=
5328 31
2xxx −−
=
53121 21
3 −−−
=xxx
Iteration a1 A2 a3
123456
21.000−196.15−1995.0−20149
2.0364×105
−2.0579×105
95.238110.71109.83109.90109.89109.89
0.8000014.421−116.021204.6−12140
1.2272×105
100.0094.453112.43109.63109.92109.89
50.680−462.304718.1−47636
4.8144×105
−4.8653×106
98.027110.96109.80109.90109.89109.89
http://numericalmethods.eng.usf.edu
Gauss-Seidel Method: Example 3Conducting six iterations, the following values are obtained
%1a∈ %
2a∈ %3a∈
The values are not converging.
Does this mean that the Gauss-Seidel method cannot be used?
http://numericalmethods.eng.usf.edu
Gauss-Seidel MethodThe Gauss-Seidel Method can still be used
The coefficient matrix is not diagonally dominant [ ]
−=
5312351
1373A
But this is the same set of equations used in example #2, which did converge. [ ]
−=
13733515312
A
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 MethodNot every system of equations can be rearranged to have a diagonally dominant coefficient matrix.
Observe the set of equations
3321 =++ xxx
9432 321 =++ xxx
97 321 =++ xxx
Which equation(s) prevents this set of equation from having a diagonally dominant coefficient matrix?
http://numericalmethods.eng.usf.edu
Gauss-Seidel MethodSummary
-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?
Additional ResourcesFor 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_seidel.html
THE END
http://numericalmethods.eng.usf.edu