Sie sind auf Seite 1von 13

Contenido

Introduccin. ................................................................................................................................. 2
DEFINICION: ............................................................................................................................... 2
HISTORIA ................................................................................................................................... 2
CONDICIONES PARA SU APLICACIN .......................................................................................... 2
Ejemplo Ilustrado para que se entienda mejor el procedimiento del Metodo. ................................ 3
Cdigo del Programa. ..................................................................................................................... 5
Pruebas del Programa. ................................................................................................................... 9
Conclusiones: ............................................................................................................................... 13






























Introduccin.

DEFINICION:
Es un algoritmo del lgebra lineal para determinar las soluciones de un sistema de
ecuaciones lineales, encontrar matrices e inversas. Convierte la matriz aumentada en una
matriz reducida por renglones y a partir de sta interpretar directamente la solucin del
sistema.

HISTORIA
El mtodo de eliminacin Gaussiana o eliminacin de Gauss-Jordan, resolver ecuaciones en
varias variables se remonta a nuestros ancestros. El mtodo de eliminacin se conoce hace
varios siglos atrs gracias a Karl Gauss y Camille Jordan en el siglo XIX. Actualmente se
utiliza este mtodo para resolver grandes sistemas en la computadora. La teora de matrices
fue desarrollada en 1857 por Arthur Cayley. Utilizo los aportes de la teora de
determinantes propuesta por Seki Kowa y Leibniz y la regla de Cramer. Los aportes de
Gauss se conocian anteriormente en un importante libro matemtico chino llamado
Jiuzhang suanshuo Nueve captulos del arte matemtico.

CONDICIONES PARA SU APLICACIN
Una matriz est escrita en forma escalonada reducida por renglones si cumple las
condiciones

i) Si hay un rengln que consta completamente de ceros, deber estar en la parte inferior de
la matriz.
ii) Si un rengln no consta completamente de ceros, el primer numero diferente de cero de
cada rengln (Empezando por la izquierda), deber ser 1(Llamado 1 principal).
iii) Si dos renglones consecutivos tienen elementos diferentes de cero, entonces el 1
principal del rengln de inferior est ms a la derecha que el 1 principal del rengln
superior.
iv) Cada columna que contenga un 1 principal, tiene ceros en todas las dems posiciones de
dicha columna.













Ejemplo Ilustrado para que se entienda mejor el procedimiento del
Metodo.

Procedimiento a Mano de una Matriz que despus se verificara con nuestro programa
realizado.

Resolvamos el siguiente conjunto de ecuaciones
3.0 X1 - 0.1 X2 - 0.2 X3 = 7.8500
0.1 X1 + 7.0 X2 - 0.3 X3 = - 19.3
0.3 X1 - 0.2 X2 + 10 X3 = 71.4000
Primero expresemos los coeficientes y el vector de trminos independientes como una
matriz aumentada.

Se normaliza el primer rengln dividiendo entre 3 para obtener:

El trmino X1 se puede eliminar del segundo rengln restando 0.1 veces el primero del
segundo rengln. De una manera similar, restando 0.3 veces el primero del tercer rengln
se elimina el trmino con X1 del tercer rengln.

En seguida, se normaliza el segundo rengln dividiendo entre 7.00333:

Reduciendo los trminos en X2 de la primera y la tercera ecuacin se obtiene:

El tercer rengln se normaliza dividindolo entre 10.010:

Finalmente, los trminos con X3 se pueden reducir de la primera y segunda ecuacin para
obtener:













Cdigo del Programa.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
int suma,n,h,t, opcion, opcion2;
float m;
float matriz[' '][' '];
float vector[' '];

printf("\tMETODO GASUS JORDAN METODOS NUMERICOS \n");


printf("\t1- Ingresar Matriz \n");
printf("\t2- Terminar \n");



do{
printf("\n\tElija una opcion:...\n\n");
scanf("%d",&opcion);
do{
printf("\nLa opcion %d es correcta:\n\n1-Si\t2-No\n\n", opcion);
scanf("%d", &opcion2);
system("cls");
}while(opcion2!=1 && opcion2!=2);
}while(opcion2==2);

system("cls");

while(opcion!=2)
{

do{
printf("Ingrese el tamano de la matriz cuadrada: ");
scanf("%d", &n);

system("cls");

do
{
printf("\n\nEl tamao %d es correcto: \n\n1-Si\t2-No\n\n",
n);
scanf("%d", &opcion2);
system("cls");
}while(opcion2!=1 && opcion2!=2);
}while(opcion2==2);

//leemos los datos de la primera fila
do
{
printf("Ingrese elementos por FILA: \n\n\n");
for(int i=0;i<n;++i)
{
for(int j=0;j<n+1;++j)
{
printf("Ingrese elemento en la Posicion
[%d][%d]: ",i+1,j+1);
scanf("%f",&matriz[i][j]);
}
}

printf("\n\n");

for(int i=0;i<n;++i)
{
for(int i=0;i<n;++i)
{
if(i<n)
{
printf("X%d\t ",i+1);
}
}

printf(" =R\n");

for(int j=0;j<n+1;++j)
{
printf("%.2f\t",matriz[i][j]);
}
printf("\n");
}

do{
printf("\n\nLa matriz es correcta: \n\n1-Si\t2-No\n\n");
scanf("%d", &opcion);
}while(opcion!=1 & opcion!=2);

system("cls");

}while(opcion==2);

for(int j=0;j<=n-2;++j)
{
//if(a[j][j]==0)//pivotea..hay que intercambiar filas.
//pivotear;
for(int i=j+1;i<n;++i)
{
m = -matriz[i][j]/matriz[j][j];
for(int k=j;k<=n;++k)
{
matriz[i][k] = matriz[i][k]+ m*matriz[j][k];
}
}
}
printf("\n\n");
//imprime
printf("\n\nX1\t X2\t X3\t =R\n\n");
for(int i=0;i<n;++i)
{
for(int j=0;j<n+1;++j)
{
printf("%.2f\t", matriz[i][j]);
}
printf("\n");
}

//solucion del sistema

for(int i=n-1;i>=0;i=i-1)
{
suma=0;
for(int j=i+1;j<n;++j)
{
suma=suma+matriz[i][j]*vector[j];
}
vector[i] = (matriz[i][n] - suma) / matriz[i][i];
}

//imprime
for(int i=0;i<n;++i)
{
printf("\n VECTOR X%d = %.2f ",i+1,vector[i]);
}

printf("\n\n");
system("PAUSE");
system("cls");

//Parte final para ver si se repite o termina el programa
printf("\t1- Ingresar Matriz \n");
printf("\t2- Terminar \n");


do{
printf("\n\tElija una opcion:...\n\n");
scanf("%d",&opcion);

do{
printf("\nLa opcion %d es correcta: \n\n1-Si\t2-No\n\n", opcion);
scanf("%d", &opcion2);
system("cls");
}while(opcion2!=1 && opcion2!=2);
}while(opcion2==2);
}
system("PAUSE");

}




























Pruebas del Programa.
1. Al iniciar se te abrir la siguiente ventana donde podrs ingresar la matriz a
resolver.



2. Despus presionas el 1 para ingresar Matriz y enter y te dir si tu decisin es
correcta, dependiendo de tu respuesta seleccionas.








3. Ahora ya seleccionada la opcin determinas de que tamao quieres que sea tu
matriz cuadrada.


4. Lo siguiente que aparecer es una validacin si es el tamao deseado, si es as
seleccionas la opcin.










5. Ingresamos nuestros valores de la matriz por filas al terminar de llenarla si es
correcta tenemos que proseguir y seleccionas tu opcin.


6. Ya dicho que es la matriz correcta y presionando enter se te hara la solucin de tu
matriz, tal como se muestra a continuacin:



7. Ya para finalizar presionas cualquier tecla y te aparecer de nuevo la pantalla por si
quieres resolver otra matriz o ya finalizar el programa de Gauss Jordan.


























Conclusiones:
Las ventajas de usar este mtodo es que la solucin se obtiene directamente sin la necesidad
de la sustitucin inversa que utiliza el mtodo de Gauss.

Das könnte Ihnen auch gefallen