Gauss-Siedel Method 1 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. 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. Gauss-Seidel Method Algorithm A set of n equations and n unknowns: a11x1 a12 x2 a13 x3 ... a1n xn b1 a21x1 a22 x2 a23 x3 ... a2n xn b2 . . . . . . an1x1 an 2 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 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 ann From equation n Gauss-Seidel Method Algorithm General Form of each equation n c1 a1 j x j x1 j 1 j 1 cn 1 xn 1 a11 n a j 1 j n 1 n 1, j an 1,n 1 n c n a nj x j n c2 a2 j x j x2 j 1 j 2 a 22 xj xn j 1 j n a nn 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? 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. 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. Gauss-Seidel Method: Example 1 The upward velocity of a rocket is given at three different times Table 1 Velocity vs. Time data. Time, t s Velocity v m/s 5 106.8 8 177.2 12 279.2 The velocity data is approximated by a polynomial as: vt a1t 2 a2t a3 , 5 t 12. Gauss-Seidel Method: Example 1 Using a Matrix template of the form The system of equations becomes Initial Guess: Assume an initial guess of t12 2 t 2 t32 t1 t2 t3 1 a1 v1 1 a2 v2 1 a3 v3 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 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 a3 a1 25 177.2 64a1 a3 a2 8 279.2 144a1 12a 2 a3 1 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 643.6720 5 a2 7.8510 8 a3 279.2 1443.6720 12 7.8510 155.36 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 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 155.36 5.0000 x100 103.22% 155.36 At the end of the first iteration a1 3.6720 a 7.8510 2 a3 155.36 The maximum absolute relative approximate error is 125.47% Gauss-Seidel Method: Example 1 Using a1 3.6720 a 7.8510 2 a3 155.36 Iteration #2 the values of ai are found: 106.8 5 7.8510 155.36 a1 12.056 25 from iteration #1 a2 a3 177.2 6412.056 155.36 54.882 8 279.2 14412.056 12 54.882 798.34 1 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% 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 decreasing at any significant rate a1 0.29048 Also, the solution is not converging to the true solution of a 19 . 690 2 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. 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 j 1 j i for at least one ‘i’ 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. Gauss-Seidel Method: Example 2 Given the system of equations 12 x1 3x2- 5x3 1 x1 5x2 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? 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 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 3 x3 x2 5 76 3 x1 7 x 2 x3 13 x1 1 x 0 2 x3 1 x1 1 30 51 0.50000 12 28 0.5 31 x2 4.9000 5 76 30.50000 74.9000 x3 3.0923 13 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% 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 1 34.9000 53.0923 x1 0.14679 12 x2 28 0.14679 33.0923 3.7153 5 x3 76 30.14679 74.900 3.8118 13 After Iteration #2 x1 0.14679 x 3.7153 2 x3 3.8118 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? 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 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 12 x1 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. 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? Gauss-Seidel Method Summary -Advantages of the Gauss-Seidel Method -Algorithm for the Gauss-Seidel Method -Pitfalls of the Gauss-Seidel Method Gauss-Seidel Method Questions? THE END