Let’s understand the Gauss-seidel method in numerical analysis and learn how to implement Gauss Seidel method in C programming with an explanation, output, advantages, disadvantages and much more.
What is Gauss Seidel Method?
The Gauss Seidel method is an iterative process to solve a square system of multiple linear equations. It also is popularly known as Liebmann method.
In an iterative method in numerical analysis, every solution attempt is started with an approximate solution of an equation and iteration is performed until the desired accuracy is obtained.
In Gauss-Seidel method, the most recent values are used in successive iterations. The Gauss-Seidel Method allows the user to control round-off error.
The Gauss Seidel method is very similar to Jacobi method and is called as the method of successive displacement.
The Gauss Seidel convergence criteria depend upon the following two properties:
- The matrix is diagonally dominant.
- The matrix is symmetrical and positive – definite.
Gauss Seidel Method Algorithm
1 2 3 4 5 | Step 1: Compute value for all the linear equations for Xi Step 2: Initial Array must be available Step 3: Compute each Xi and repeat the above steps Step 4: Make use of the absolute relative approximate error after every step to check if the error occurs within a pre-specified tolerance. |
Advantages
- Faster iteration process.
- Simple and easy to implement.
- Low on memory requirements.
Disadvantages
- Slower rate of convergence.
- Requires a large number of iterations to reach the convergence point.
Note: This Gauss Seidel method C Program is compiled with GNU GCC compiler using CodeLite IDE on Microsoft Windows 10 operating system.
Method 1: Implement Gauss Seidel Method in C Programming
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include<stdio.h> #include<math.h> int main() { int count, t, limit; float temp, error, a, sum = 0; float matrix[10][10], y[10], allowed_error; printf("\nEnter the Total Number of Equations:\t"); scanf("%d", &limit); printf("Enter Allowed Error:\t"); scanf("%f", &allowed_error); printf("\nEnter the Co-Efficients\n"); for(count = 1; count <= limit; count++) { for(t = 1; t <= limit + 1; t++) { printf("Matrix[%d][%d] = ", count, t); scanf("%f", &matrix[count][t]); } } for(count = 1; count <= limit; count++) { y[count] = 0; } do { a = 0; for(count = 1; count <= limit; count++) { sum = 0; for(t = 1; t <= limit; t++) { if(t != count) { sum = sum + matrix[count][t] * y[t]; } } temp = (matrix[count][limit + 1] - sum) / matrix[count][count]; error = fabs(y[count] - temp); if(error > a) { a = error; } y[count] = temp; printf("\nY[%d]=\t%f", count, y[count]); } printf("\n"); } while(a >= allowed_error); printf("\n\nSolution\n\n"); for(count = 1; count <= limit; count++) { printf("\nY[%d]:\t%f", count, y[count]); } return 0; } |
Output

Method 2: C Program For Gauss Seidel Iterative Method
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include<stdio.h> #define X3(x1, x2) ((7 - 3 * (x1) + (x2)) / 10) #define X1(x2, x3) ((6 - 5 * (x2) + 4 * (x3)) / 10) #define X2(x1, x3) ((9 - 4 * (x1) + (x3)) / 10) int main() { double allowed_error; double x1 = 0, x2 = 0, x3 = 0, y1 = 0, y2 = 0, y3 = 0; int count = 0; printf("Enter value for Allowed Error:\t"); scanf("%lf", &allowed_error); printf("\nx1\t\tx2\t\tx3"); printf("\n%f\t%f\t%f", x1, x2, x3); do { y1 = X1(x2, x3); y2 = X2(y1, x3); y3 = X3(y1, y2); if(fabs(y1 - x1) < allowed_error && fabs(y2 - x2) < allowed_error && fabs(y3 - x3) < allowed_error) { printf("\n\nx1 = %.lf", y1); printf("\nx2 = %.2lf", y2); printf("\nx3 = %.2lf", y3); count = 1; } else { x1 = y1; x2 = y2; x3 = y3; printf("\n%f\t%f\t%f", x1, x2, x3); } }while(count != 1); return 0; } |
Output

If you have any doubts about the implementation of Gauss Seidel method in C programming, let us know about it in the comment section. Find more about it on Wikipedia.
This is too good. Thanks for all the numerical methods c codes.
well can I get algo regarding gauss seidel methid
its very much helpful to me.