Sie sind auf Seite 1von 11

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

FACULTAD DE CIENCIAS NATURALES Y FORMALES

Escuela profesional de Fı́sica

Fisica Computacional 1

Ecuaciones algebraicas lineales:Gauus simple,Gauss Seidel,


Gauss - Jordan

Alumno: Jhonathan Alexis Machaca Yancachajlla


Profesor: MSc. Miguel Ángel Vizcardo Cornejo

Arequipa-Perú
(2018)
1 Introducción
La resolución de los sistemas de ecuaciones lineales con más de dos incógnitas
ocupó durante los siglos XVI y XVII a una brillante escuela de algebristas,
principalmente italianos. Sus ingeniosos métodos algebraicos aún siguen pro-
poniéndose como alternativa a la teorı́a de matrices que fue desarrollada y
refinada en los siglos posteriores. Uno de los procedimientos conceptual-
mente más sencillos para resolver sistemas cuadrados (con igual número de
incógnitas y ecuaciones) de más de dos ecuaciones se basa en la llamada
forma escalonada. Esta técnica consiste en transformar sucesivamente, según
cualquiera de los métodos algebraicos comunes (sustitución, igualación o
reducción), el sistema de ecuaciones en otro equivalente que tenga forma
escalona.

2 Marco teórico
2.1 Método de Gauss Seidel
El Método de Gauss-Seidel [Varios autores, 2018] consiste en hacer itera-
ciones, a partir de un vector inicial, para encontrar los valores de las incógnitas
hasta llegar a una tolerancia deseada, la diferencia radica en que cada vez
que se desee encontrar un nuevo valor de una xi, además de usar los valores
anteriores de las x, también utiliza valores actuales de las x encontradas antes
(desde x0 hasta xi−1 ). La ecuación es la siguiente:
Pi−1 Pn
bi − j=1 aij xkj − j=i+1 aij xk−1
j
xki =
aij

El método de Gauss-Seidel surgio como una modificación del método de


Jacobi que acelera la convergencia de éste.
El método de Gauss-Seidel recorta sustancialmente el número de itera-
ciones a realizar para obtener una cierta precisión en la solución. Evidente-
mente los criterios de convergencia son similares a los de Jacobi.
Este criterio no solo se aplica a las ecuaciones lineales que se resuelven
con el método de Gauss-Seidel sino también para el método iterativo del
punto fijo y el método de jacobi. Por tanto, al aplicar este criterio sobre
las ecuaciones de Gauss-Seidel y evaluando con respecto a cada una de las

1
incógnitas, obtenemos la expresión siguiente:
a21 a12
| | < 1; | | < 1
a22 a11
El valor absoluto de las pendientes en la ecuación, deben ser menor que
la unidad para asegurar la convergencia.
|a22 | > |a21 |; |a11 | > |a12 |
Es decir, el elemento diagonal debe ser mayor que el elemento fuera de la di-
agonal para cada reglón de ecuaciones. La generalización del criterio anterior
para un sistema de n ecuaciones es:
n
X
|aii | > |ai,j |
j=1

El método de Gauss-Seidel está basado en el concepto de punto fijo, es de-


cir ( xi = gi (x), i = 1..n), para resolver sistemas de ecuaciones lineales.Para
garantizar la convergencia se debe de cumplir que el sistema tenga una diag-
onal dominante, es decir que se cumpla la desigualdad siguiente, si se cambió
el orden de las ecuaciones esta puede divergir.

2.2 Método de Gauss - Jordan


El Método de Gauss – Jordan o también llamado eliminación de Gauss –
Jordan, es un método por el cual pueden resolverse sistemas de ecuaciones
lineales con n números de variables, encontrar matrices y matrices inversas,
en este caso desarrollaremos la primera aplicación mencionada.
Para resolver sistemas de ecuaciones lineales aplicando este método, se
debe en primer lugar anotar los coeficientes de las variables del sistema de
ecuaciones lineales en su notación matricial:
 
a1 x + b 1 y + c 1 z = d 1
 a2 x + b 2 y + c 2 z = d 2 
a3 x + b 3 y + c 3 z = d 3
Entonces, anotando como matriz (también llamada matriz aumentada):
 
a1 + b 1 + c 1 d1
 a2 + b 2 + c 2 d2 
a3 + b 3 + c 3 d3

2
Una vez hecho esto, a continuación se procede a convertir dicha matriz en
una matriz identidad, es decir una matriz equivalente a la original, la cual es
de la forma:  
1 0 0
 0 1 0 
0 1 0
Esto se logra aplicando a las distintas filas y columnas de las matrices simples
operaciones de suma, resta, multiplicación y división; teniendo en cuenta que
una operación se aplicara a todos los elementos de la fila o de la columna,
sea el caso.

3 Códigos de programación
3.1 Prpgrama de Gauss Seidel en lenguaje C
/*Metodo de Gauss Siedel*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<dos.h>
int i,j,z,y;
float a[10][10],b[10],x[10],er,e,x1;
main()
{
clrscr();
z=0;y=0;
for(i=1;i<=3;i++)
{
y=y+3; z=0;
for(j=1;j<=3;j++)
{
z=z+13;
gotoxy(z,y);
printf("a[%i][%i]=",i,j);scanf("%f",&a[i][j]);
}
}
for(i=1;i<=3;i++)

3
{
printf("ingrese el vector b[%i]=",i);scanf("%f",&b[i]);
}
x[2]=x[3]=0; x1=0; e=0.01;er=1;
while(e<er)
{
x[1]=(b[1]-a[1][2]*x[2]-a[1][3]*x[3])/a[1][1];
x[2]=(b[2]-a[2][1]*x[1]-a[2][3]*x[3])/a[2][2];
x[3]=(b[3]-a[3][1]*x[1]-a[3][2]*x[2])/a[3][3];
er=fabs((x[1]-x1)/x[1])*100;
x1=x[1];
printf("er= %f",er);
}
printf("x[1]= %f x[2]= %f x[3]= %f",x[1],x[2],x[3]);
getch();
}

3.2 Programa de eliminación de Gauss en lenguaje C


//ELIMINACION DE GAUSS//
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int i,j,k,n;
float a[4][4],b[4],x[4],sum,factor;
int main()
{
printf("\n\nIngrese el orden para la matriz\n n = ");
scanf("%i",&n);
printf("\n\nIngrese los valores para A:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
printf("a[%i][%i] = ",i,j);
scanf("%f",&a[i][j]);
}

4
printf("\n\nIngrese los valores para B:\n");
for(i=1;i<=n;i++)

{
printf("b[%i]=",i);
scanf("%f",&b[i]);
}
printf("\n");
//ELIMINACION HACIA ADELANTE
for(k=1;k<=n-1;k++)
for(i=k+1;i<=n;i++)
{
factor=a[i][k]/a[k][k];
for(j=k+1;j<=n;j++)
a[i][j]=a[i][j]-factor*a[k][j];
b[i]=b[i]-factor*b[k];
}

//SUSTITUCION HACIA ATRAZ


x[n]=b[n]/a[n][n];
for(i=n-1;i>=1;i--)
{
sum=0;
for(j=i+1;j<=n;j++)
sum=sum+a[i][j]*x[j];
x[i]=(b[i]-sum)/a[i][i];

}
//printf("\n");
for(i=1;i<=n;i++)
printf("x[%i]=%f\n",i,x[i]);

5
3.3 Programa en lenguaje C de Gauss - Jordan
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
int i,j,k,n;
float a[4][4],sum,b[4],x[4],factor,R,T,A;
int main()
{
printf(" INGRESE EL NUMERO DE ECUACIONES \n");
scanf("%i",& n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
printf(" INGRESE EL ELEMENTO a[%i][%i] \n",i,j);
scanf("%f" ,& a[i][j]);
}
for(i=1;i<=n;i++)
{
printf(" INGRESE EL ELEMENTO b[%i] \n",i);
scanf("%f" ,& b[i]);
}
for(k=1;k<=n-1;k++)
for(i=k+1;i<=n;i++)
{
factor=a[i][k]/a[k][k];
for(j=k+1;j<=n;j++)
a[i][j]=a[i][j]-factor*a[k][j];
b[i]=b[i]-factor*b[k];
}
x[n]=b[n]/a[n][n];
for(i=n-1;i>=1;i--)
{
sum=0;
for(j=i+1;j<=n;j++)
{
sum=sum+a[i][j]*x[j];
}

6
x[i]=(b[i]-sum)/a[i][i];
}
for(i=1;i<=n;i++)
printf(" EL VALOR DE x[i]= %f \n",x[i]);

4 Resultados
Implementando el método de Gauss Seidel en el ejmplo 9.5 de [Chapra and Canale, 2007]
se obtuvo los siquientes resultados

ejemplo 9.11

7
problema 9.13

8
5 Conclusiones
En este método iterativo Se evalúa la aproximación relativa de todas las
incógnitas hasta que la solución converja bastante cerca de la solución real,
según la tolerancia establecida para el método.La iteración de Gauss-Seidel se
define al tomar como la parte triangular inferior de la matriz incluyendo los
elementos de la diagonal, podemos decir que la eliminación de Gauss–Jordan
nos son útiles en la resolución de ecuaciones lineales, para ecuaciones no
lineales no aplica este método.
El método de eliminación de Gauss-Jordan nos brinda un resultado más
preciso y al aplicar las operaciones resultan ser más sencillas a comparación
de otros métodos.

References
[Chapra and Canale, 2007] Chapra, S. C. and Canale, R. P. (2007). Métodos
numéricos para ingenieros. McGraw-Hill,.

9
[Varios autores, 2018] Varios autores (2018).
https://esimecuanalisisnumerico.wordpress.com/2014/05/05/metodo-de-gauss-seidel,
22 de octubre de 2018.

10

Das könnte Ihnen auch gefallen