Está en la página 1de 7

PRCTICA 2: SISTEMAS DE ECUACIONES LINEALES: GAUSS-JORDAN.

I
Universidad de Jan
Departamento de Matemticas
(Area de lgebra)
Curso 2009/10







PRCTICA N 2

Sistemas de ecuaciones lineales: Mtodo de
Gauss-Jordan

La resolucin de sistemas de ecuaciones es uno de los problemas que con ms
frecuencia se encuentra en los distintos campos de la Ciencia. En particular, nosotros
tanto en lgebra I como en lgebra II, y como pasos previo a resolver muchos
problemas, tendremos que resolver sistemas de ecuaciones. Ya en el primer cuatrimestre
se estudiaron los comandos que Mathematica incorpora para resolver sistemas de
ecuaciones (compatibles). Aqu veremos como es posible mediante pequeos programas
resolver sistemas triangulares, transformar un sistema en otro triangular superior o
escalonado (mtodo de Gauss) y transformar un sistema en otro diagonal o escalonado
reducido (mtodo de Gauss-Jordan).

1. RESOLUCIN DE SISTEMAS TRIANGULARES.
Vamos a resolver un sistema de la forma A.x = b, donde A es una matriz regular
y triangular:
|
|
|
|
|

\
|
=
|
|
|
|
|

\
|
|
|
|
|
|

\
|
n
2
1
n
2
1
nn
2n 22
1n 12 11
b
b
b
x
x
x
a 0 0
a a 0
a a a
M M
L
M O M M
L
L

En primer lugar, se introduce la matriz A y el vector b:
A={{a
11
, a
12
,..., a
1n
},{0, a
22
,..., a
2n
},...,{0,0,..., a
nn
}};
b={ b
1
, b
2
,..., b
n
};
Llamamos n al orden de la matriz cuadrada del sistema:
PRCTICA 2: SISTEMAS DE ECUACIONES LINEALES: GAUSS-JORDAN.

II
n=Dimensions[A][[1]];
y definimos el vector x, que al final contendr la solucin y que inicializamos como el
vector cero:
x=Table[0,{i,1,n}];
Utilizando el siguiente bucle hallamos la solucin mediante sustitucin sucesiva:
For[i=n, i>=1, i--,
x[[i]]=(b[[i]]-Sum[A[[i,k]]*x[[k]],{k,i+1,n}]) / A[[i,i]]
];
La solucin es
x
Ejemplo 2.1:
Resolver el sistema de ecuaciones triangular superior dado por:
|
|
|
|
|

\
|
=
|
|
|
|
|

\
|
|
|
|
|
|

\
|
10
3
1
4
x
x
x
x
2 0 0 0
2 - 1 0 0
3 0 2 0
4 3 2 - 1
4
3
2
1

SOLUCIN:
In[1]: = A={{1,-2,3,4},{0,2,0,3},{0,0,1,-2},{0,0,0,2}};
b = {4,1,3,10};
n=Dimensions[A][[1]];
x=Table[0,{i,1,n,1}];
For[i=n, i>=1, i--,
x[[i]]=(b[[i]]-Sum[A[[i,k]]*x[[k]],{k,i+1,n}]) / A[[i,i]]
];
Print[La solucin del sistema es , x]
Out[1]: = La solucin del sistema es {-69,-7,13, 5}

2. TRANSFORMAR UN SISTEMA EN OTRO TRIANGULAR
SUPERIOR: MTODO DE GAUSS.
Ahora queremos reducir un sistema a otro equivalente y triangular superior
mediante el procedimiento de eliminacin gaussiana. Sea A.x = b un sistema de Cramer
(es decir, A es cuadrada y regular):
|
|
|
|
|

\
|
=
|
|
|
|
|

\
|
|
|
|
|
|

\
|
n
2
1
n
2
1
nn n2 n1
2n 22 21
1n 12 11
b
b
b
x
x
x
a a a
a a a
a a a
M M
L
M O M M
L
L

PRCTICA 2: SISTEMAS DE ECUACIONES LINEALES: GAUSS-JORDAN.

III
Introducimos la matriz A y el vector b:
A={{a
11
, a
12
,..., a
1n
},{ a
21
, a
22
,..., a
2n
},...,{ a
n1
, a
n2
,..., a
nn
}};
b={b
1
, b
2
,..., b
n
};
Hallamos el orden de la matriz A y definimos el vector cero de dimensin n:
n=Dimensions[A][[1]];
x=Table[0,{i,n}];
El bucle que nos proporciona la obtencin de la matriz escalonada ser:
For[i=1,in,i++,
For[j=i,jn,j++,
If[A[[i]]!=x,
If[A[[i,j]]==0 ,
For[k=i,kn,k++,
If[A[[k,j]]0,z=A[[i]];A[[i]]=A[[k]];A[[k]]=z;Break[]]
];s=A[[i,j]];If[s0,A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s],
s=A[[i,j]];A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s
],For[k=n,k>=i+1,k--,If[A[[k]]x,A[[i]]=A[[k]];A[[k]]=x;Break[]]]
];
Do[p=A[[l,j]];If[p0, A[[l]]=A[[l]]-p*A[[i]];b[[l]]=b[[l]]-p*b[[i]]],{l,i+1,n,1}
];If[A[[i,j]]0,Break[]]
]
]
La matriz triangular se sigue llamando A y el vector de trminos independientes
se sigue llamando b. Ahora solo quedar resolver el problema usando el bucle de la
seccin anterior.
Ejemplo 2.2:
Resolver el sistema de ecuaciones
|
|
|

\
|
=
|
|
|

\
|
|
|
|

\
|
1
0
8
x
x
x
6 4 3
4 3 2
3 2 1
3
2
1

SOLUCIN:
En primer lugar reducimos el sistema a un sistema escalonado superior:
In[2]:= A={{1,2,3},{2,3,4},{3,4,6}};
b={-8,0,1};
n=Dimensions[A][[1]];
x=Table[0,{i,n}];
For[i=1,in,i++,
For[j=i,jn,j++,
If[A[[i]]!=x,
If[A[[i,j]]==0 ,
For[k=i,kn,k++,If[A[[k,j]]0,z=A[[i]];A[[i]]=A[[k]];
PRCTICA 2: SISTEMAS DE ECUACIONES LINEALES: GAUSS-JORDAN.

IV
A[[k]]=z;Break[]]
];s=A[[i,j]];If[s0,A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s],
s=A[[i,j]];A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s
],For[k=n,k>=i+1,k--,If[A[[k]]x,A[[i]]=A[[k]];A[[k]]=x;Break[]]]
];
Do[p=A[[l,j]];If[p0, A[[l]]=A[[l]]-p*A[[i]];b[[l]]=b[[l]]-p*b[[i]]],{l,i+1,n,1}
];If[A[[i,j]]0,Break[]]
]
]
MatrixForm[A]
MatrixForm[b]
Out[2]:=
|
|
|

\
|

|
|
|

\
|
7
16
8
1 0 0
2 1 0
3 2 1

Ahora resolvemos usando la siguiente rutina que completa la vista en el primer apartado
para sistemas compatibles y determinados:
In[3]:= Incompatible=False;
For[i=1,i<=n,i++,
If[A[[i]]==x && b[[i]] 0,Incompatible=True]]
If[Incompatible,Print["El sistema es incompatible"],
If[n==MatrixRank[A],For[i=n,i>=1,i--,x[[i]]=(b[[i]]-
Sum[A[[i,k]]*x[[k]],{k,i+1,n}])/A[[i,i]]];
Print["El sistema es compatible y determinado"];Print["La solucin del
sistema es ", x],
Print["El sistema es compatible e indeterminado"];
Reduce[A.{x1,x2,x3}==b,{x1,x2,x3}]]]
Out[3]:= El sistema es compatible y determinado
La solucin del sistema es {17,-2,-7}

3. MTODO DE GAUSS-JORDAN.
Ahora al triangular por Gauss vamos a hacer ceros encima de la diagonal al
mismo tiempo que lo hacemos ceros debajo de sta y una vez hechos todos los ceros, si
el sistema es compatible determinado, tendremos resuelto el sistema, pues cada
incgnita corresponder a un valor del vector b. Esto es lo que se conoce con el nombre
de mtodo de Gauss-Jordan.
Introducimos de nuevo la matriz A y el vector b:
PRCTICA 2: SISTEMAS DE ECUACIONES LINEALES: GAUSS-JORDAN.

V
A={{a
11
, a
12
,..., a
1n
},{ a
21
, a
22
,..., a
2n
},...,{ a
n1
, a
n2
,..., a
nn
}};
b={b
1
, b
2
,..., b
n
};
Hallamos el orden de la matriz cuadrada A:
n=Dimensions[A][[1]];
El bucle que hace ceros al mismo tiempo encima y debajo de la diagonal viene
dado por:
For[i=1,in,i++,
For[j=i,jn,j++,
If[A[[i]]!=x,
If[A[[i,j]]==0 ,
For[k=i+1,kn,k++,
If[A[[k,j]]0,z=A[[i]];A[[i]]=A[[k]];A[[k]]=z;Break[]]
];s=A[[i,j]];If[s0,A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s],
s=A[[i,j]];A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s
],For[k=n,k>=i+1,k--
,If[A[[k]]x,A[[i]]=A[[k]];A[[k]]=x;Break[]]]
];
Do[p=A[[l,j]];If[p0, A[[l]]=A[[l]]-p*A[[i]];b[[l]]=b[[l]]-
p*b[[i]]],{l,i+1,n,1}
];Do[p=A[[l,j]];If[p0, A[[l]]=A[[l]]-p*A[[i]];b[[l]]=b[[l]]-
p*b[[i]]],{l,1,i-1,1}
];If[A[[i,j]]0,Break[]]
]
]
Cuando el sistema sea compatible determinado, la matriz que se obtiene es la
matriz identidad que sigue llamndose A y el vector de trminos independientes se sigue
llamando b. Ahora solo quedar resolver el nuevo sistema equivalente con el primero lo
que conseguimos solo igualando la variable correspondiente con la correspondiente
coordenada del vector resultante b:
For[i=1,i<=n,i++,x[[i]]=b[[i]]]
Print[La solucin del sistema es , x]
Ejemplo 2.3:
Aplicar el mtodo de Gauss-Jordan para resolver el sistema del ejemplo anterior.

SOLUCIN:
In[4]:= A = {{1,2,3},{2,3,4},{3,4,6}};
b ={-8,0,1};
n =Dimensions[A][[1]];
x=Table[0,{i,1,n,1}];
For[i=1,in,i++,
For[j=i,jn,j++,
PRCTICA 2: SISTEMAS DE ECUACIONES LINEALES: GAUSS-JORDAN.

VI
If[A[[i]]!=x,
If[A[[i,j]]==0 ,
For[k=i+1,kn,k++,
If[A[[k,j]]0,z=A[[i]];A[[i]]=A[[k]];A[[k]]=z;Break[]]
];s=A[[i,j]];If[s0,A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s],
s=A[[i,j]];A[[i]]=A[[i]]/s;b[[i]]=b[[i]]/s
],For[k=n,k>=i+1,k--
,If[A[[k]]x,A[[i]]=A[[k]];A[[k]]=x;Break[]]]
];
Do[p=A[[l,j]];If[p0, A[[l]]=A[[l]]-p*A[[i]];b[[l]]=b[[l]]-
p*b[[i]]],{l,i+1,n,1}
];Do[p=A[[l,j]];If[p0, A[[l]]=A[[l]]-p*A[[i]];b[[l]]=b[[l]]-
p*b[[i]]],{l,1,i-1,1}
];If[A[[i,j]]0,Break[]]
]
]
MatrixForm[A]
MatrixForm[b]
Out[4]:=
|
|
|

\
|

|
|
|

\
|
7
2
17
1 0 0
0 1 0
0 0 1

Ahora resolvemos usando la rutina del apartado anterior, aunque como hemos visto
antes para sistemas compatibles determinado no sera necesario su uso:
In[5]:= Incompatible=False;
For[i=1,i<=n,i++,
If[A[[i]]==x && b[[i]] 0,Incompatible=True]]
If[Incompatible,Print["El sistema es incompatible"],
If[n==MatrixRank[A],For[i=n,i>=1,i--,x[[i]]=(b[[i]]-
Sum[A[[i,k]]*x[[k]],{k,i+1,n}])/A[[i,i]]];
Print["El sistema es compatible y determinado"];Print["La solucin del
sistema es ", x],
Print["El sistema es compatible e indeterminado"];
Reduce[A.{x1,x2,x3}==b,{x1,x2,x3}]]]
Out[5]:= El sistema es compatible y determinado
La solucin del sistema es {17,-2,-7}


PRCTICA 2: SISTEMAS DE ECUACIONES LINEALES: GAUSS-JORDAN.

VII
4. EJERCICIOS PROPUESTOS
Ejercicio 1:
Resolver mediante el mtodo de Gauss-Jordan los sistemas:

= +
= +
= +
= + + +
= +
= +
= +

= + +
= + +
= + +
-a ct - bz cy - bx
c t - 3z y - 3x
-b t - z y - x
a t z y x

c z 7y 4x
4 z by 3x
9 az y - 2x

0 cz y 2x
0 z by 2x
0 z 2y ax

Tngase en cuenta que estamos denotando por a el da de tu nacimiento, por b el mes en
el que naciste y por c el ltimo dgito de tu DNI.
Ejercicio 2:
Programar el mtodo de Gauss-Jordan para la resolucin de sistemas de
ecuaciones utilizando para ello operaciones con matrices elementales. (Indicacin: ver
programa de Gauss-Jordan del ejemplo 2.3).
Ejercicio 3:
Se ha realizado una encuesta a 300 alumnos para conocer cuntos salen de
marcha los jueves, los viernes o los sbados. De ellos, 150 salen los jueves, 100 los
viernes y 170 los sbados; 50 salen jueves y sbados, 50 salen jueves y viernes y 60
salen viernes y sbados. Cuntos salen los tres das, sabiendo que todos salen al menos
un da a la semana? Qu porcentaje sale slo los jueves?
Plantear el problema anterior y resolverlo usando el mtodo de Gauss.