Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCIN:
[1]
[2]
[3]
Despus, se sustituye este nuevo valor de X1 junto con los valores previos de
cero para X3 en la ecuacin [2] y calcular el nuevo valor para X2. Este proceso se
repite en la ecuacin [3] para calcular el nuevo estimado de X3.
Despus se regresa a la primera ecuacin y se repite todo el procedimiento
hasta que la solucin converja lo suficientemente cercana a los valores reales. La
convergencia se puede verificar usando el siguiente criterio:
para todas las i, donde j y j-1 son las iteraciones actuales y previas.
Como cada nuevo valor de x se calcula con el mtodo de Gauss-Seidel, este se
usa inmediatamente en la siguiente ecuacin para determinar otro valor de x. De
esta manera, si la solucin es convergente, se empleara la mejor estimacin
posible.
[4]
[5]
[6]
[7]
[8]
Esto es, el elemento diagonal debe ser mayor que el elemento fuera de la
diagonal para cada rengln.
La extensin de lo anterior para n ecuaciones es directa y puede expresarse
como:
[9]
Es decir, el coeficiente diagonal en cada una de las ecuaciones debe ser
mayor que la suma del valor absoluto de los otros coeficientes en la ecuacin. El
criterio es suficiente pero no necesario para la convergencia. De esta forma,
aunque algunas veces el mtodo trabaja aun sin cumplirse la ecuacin [9], la
convergencia se garantiza si la condicin se satisface. Sistemas que cumplen con
la ecuacin [9], son conocidos como diagonalmente dominantes.
2.-
3.-
*) Luego tenemos:
X1 = -123
X2 = -95
DIVERGE
X3 = 773
NO nos da la solucin
X4 = 672
*) Para evitar esta divergencia hay que hacer un reacomodo matricial de
tal manera que los coeficientes mayores se ubiquen en la diagonal
principal:
3
1
2
6
1
1
2
1
2 1 3 1
1 1 1 4
X1
X
2
X3
X4
12
12
14
*) Iteraciones:
X1 =
4
X2 = 1.33333
X3 = X (k+5)
3.44444
i
X
=
1.00019
X 4 = 5.02778
X1 =
X2 =
X3 =
X
X4 =
=
Xi(k+2)
0.90741
2.11265
3.31842
Xi(k+6)
4.02829
1.00301
X2 =
X3 =
X2 =
X3 =
1.99947
3.00247
Xi(k+1)
1.99460
3.00208
X1 =
X2 =
X3 =
X
X4 =
=
Xi(k+3)
1.01217
1.94962
3.00075
Xi(k+7)
4.01583
1.00017
X1 =
X2 =
X3 =
X
X4 =
=
Xi(k+4)
1.02329
1.99863
3.02034
Xi(k+8)
4.01125
1.00016
X2 =
X3 =
1.99981
3.00055
X2 =
X3 =
1.99992
3.00016
X4 =
4.00192
X1 =
X2 =
X3 =
X4 =
X4 =
Xi(k+9)
1.00004
1.99998
3.00005
4.00003
4.00150
X4 =
Xi(k+10)
X1 = 1.00001
X2 = 1.99999
X3 = 3.00001
X4 = 4.00001
4.00023
X4 =
4.00010
Xi(k+11)
X1 = 1.00000
X2 = 2.00000
X3 = 3.00000
X4 = 4.00000
Soluciones:
X1 = 1.0000
X2 = 2.0000
X3 = 3.0000
X4 = 4.0000
4.-
PROGRAMA:
PROGRAM METGS;
{}
{ METODO DE GAUSS-SEIDEL PARA LA RESOLUCION ITERATIVA }
{ DE UN SISTEMA DE ECUACIONES LINEALES
}
{ SI DESEA UN SISTEMA DE MAYOR ORDEN AUMENTAR TOPE
}
{}
USES
CRT;
CONST
TOPE=20;
TYPE
VEC=ARRAY[1..TOPE] OF REAL ;
MAT=ARRAY[1..TOPE,1..TOPE] OF REAL;
PROCEDURE LECTURA(N:INTEGER;VAR A:MAT;VAR B:VEC);
VAR I,J:INTEGER;
BEGIN
FOR I:=1 TO N DO
BEGIN
WRITELN('DAR LA FILA',I:3,'DE LA MATRIZ Y EL SEGUNDO
MIEMBRO DE LA ECUACION');
FOR J:=1 TO N DO
READ(A[I,J]); READ(B[I]);
WRITELN
END
END;
PROCEDURE SALIDA(N:INTEGER;X:VEC);
VAR
I,J,K :INTEGER;
BEGIN
J:=2; K:=1;
FOR I:=1 TO N DO
BEGIN
J:=I+1;
IF J > 20 THEN
BEGIN
J:=2;
K:=K+25
END;
GOTOXY(K,J);
WRITELN('X[',I:2,']=',X[I]:16:10);
END;
WRITELN; WRITELN('PULSE [ENTER]');
READLN
END;
PROCEDURE GS(N:INTEGER;E:REAL;A:MAT;B:VEC;VAR X:VEC);
VAR
I,J,K,M,T,H :INTEGER;
S,L,P
:REAL;
X0,BB
:VEC;
BEGIN
FOR I:=1 TO N DO
X0[I]:=X[I];
M:=N-1; H:=0;
REPEAT
H:=H+1;
FOR I:=1 TO M DO
BEGIN
K:=I+1; S:=B[I];
FOR J:=K TO N DO
S:=S-A[I,J]*X0[J];
BB[I]:=S
END;
BB[N]:=B[N];
X[1]:=BB[1]/A[1,1];
FOR I:=2 TO N DO
BEGIN
S:=BB[I]; T:=I-1;
FOR J:=1 TO T DO
S:=S-A[I,J]*X[J];
X[I]:=S/A[I,I];
END;
L:=0;
FOR I:=1 TO N DO
BEGIN
P:=X[I]-X0[I]; L:=L+P*P;
X0[I]:=X[I]
END;
L:=SQRT(L); CLRSCR;
WRITELN('ITERACION # :',H:5,' PRESICION:',L:10:6);
SALIDA(N,X);
UNTIL L < E ;
END;
VAR
I,J,N,K:INTEGER;
E
:REAL;
A
:MAT;
B,X
:VEC;
SW
:BOOLEAN;
LETRA :CHAR;
BEGIN
CLRSCR;
REPEAT
GOTOXY(20,1);
WRITELN('SOLUCION DE UN SISTEMA DE ECUACIONES LINEALES');
GOTOXY(19,2);
WRITELN('
(Metodo de Gauss_Siedel)
');
GOTOXY(5,10);
WRITELN('DAR ORDEN DE LA MATRIZ <=',TOPE:4,' Y LA
PRESICION');
READLN(N,E);
SW:=(N <= TOPE) AND (0 < E) AND (E <1)
UNTIL SW;
LECTURA(N,A,B);
FOR I:=1 TO N DO
X[I]:=0;
GS(N,E,A,B,X);
REPEAT
CLRSCR;
WRITELN('SOLUCION BUSCADA CON PRESICION',E:16:10);WRITELN;
SALIDA(N,X); GOTOXY(5,22);
WRITELN('SI DESEA VER DE NUEVO LA SOLUCION PULSE [S]');
LETRA:=READKEY;
SW:=NOT((LETRA='S') OR(LETRA='s'))
UNTIL SW;
READLN
END.
5.-
6.-
=
=
=
=
1.00002612
1.99998874
3.00003134
4.00001718
CONCLUSIONES Y RECOMENDACIONES:
Conclusin:
Cuando los valores de las variables resultan muy grandes, nos indica
que el sistema entra en un estado de divergencia; por consiguiente no
podemos obtener la solucin verdadera.
Recomendacin:
Para evitar la divergencia del sistema de ecuaciones, se recomienda
lograr ubicar los coeficientes mayores en la diagonal principal de la matriz
elaborada.
Debemos de comparar los resultados obtenidos manualmente con los
obtenidos por el programa para determinar la precisin en cada caso.