XeBuZer0

Gauss-Seidel Linear Ecuation Solver (using epsilon value)

Oct 2nd, 2020 (edited)
1,880
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. /////////////////////////////////////////////////////
  2. // Hecho por XeBuZer0 y licenciado bajo GNU GPL v3 //
  3. // Este programa calcula las soluciones numéricas  //
  4. // de un sistema de ecuaciones arbitrario mediante //
  5. // el método de Gauss-Seidel dado un valor épsilon //
  6. // a alcanzar                                      //
  7. /////////////////////////////////////////////////////
  8. /* ** // **  F v q _ U k r a N a z i s !  ** // ** */
  9. /////////////////////////////////////////////////////
  10.  
  11. #include <stdio.h>
  12. #define epsilon 0.00000000001
  13.  
  14. long double VAbsol (long double a);
  15.  
  16. void main (void){
  17.  
  18.     int         iter = 0;
  19.     long double     x1=.1, x2=.1, x3=.1;
  20.     register long double    x1t=0, x2t=0, x3t=0;
  21.  
  22.     while ( VAbsol(x3t - x3) > epsilon || VAbsol( x2t - x2 ) > epsilon || VAbsol(x3t - x3) > epsilon){
  23.         x3t = x3; x2t = x2; x1t = x1;
  24.         x1 =  ( ( 5 - (2*x2t) )        / 7 ) ;
  25.         x2 = -( ( (3*x1t) - x3t  - 4 ) / 5 ) ;
  26.         x3 =  ( ( (5*x2t) - 3)         / 6 ) ;
  27.         printf("Los valores son: x1=%.10Lf, x2=%.10Lf, x3=%.10Lf, Iteración %d\n", x1, x2, x3, ++iter);
  28.     }
  29. }
  30.  
  31. long double VAbsol (long double a){
  32.     if (a<0) return (-1)*a;
  33.     else return a;
  34. }
  35.  
Add Comment
Please, Sign In to add comment