Вы находитесь на странице: 1из 4

1

Unidad No.3

SOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES


LINEALES
Los procedimientos de resolucin de sistemas de
ecuaciones lineales se dividen fundamentalmente
En dos grupos:
(1) procedimientos exactos o tcnicas directas, que
son algoritmos finitos para clculo de las races de un
sistema (tales como la regla de Cramer, el mtodo de
Gauss, etc.);
(2) procedimientos iterativos, los cuales permiten
obtener las races de un sistema con una exactitud
dada mediante procesos infinitos convergentes
(estos incluyen el mtodo de iteracin, el de Seidel,
el de relajacin, etc.).
Mtodo de gauss Jordn
El Mtodo de Gauss Jordan o tambin llamado eliminacin de Gauss
Jordan, es un mtodo por el cual pueden resolverse sistemas de
ecuaciones lineales con n nmeros de variables, encontrar matrices y
matrices inversas, en este caso desarrollaremos la primera aplicacin
mencionada.
Para resolver sistemas de ecuaciones lineales aplicando este mtodo, se
debe en primer lugar anotar los coeficientes de las variables del sistema
de ecuaciones lineales en su notacin matricial

C++
#include <stdio.h>
#include <math.h>
#include <conio.h>
2

int Imprime_Matriz(float A[100][100], int Nf, int Nc){


int f,c;
printf("\n");
for (f=0; f<Nf; f++){
for (c=0; c<Nc; c++)
printf("%8.3f", A[f][c]);
printf("\n");
}
return (0);
}
int Lee_Matriz(float A[100][100], int Nf, int Nc)
{
int f,c;
printf("\n");
for (f=0; f<Nf; f++)
{ printf("Fila %d: ", f+1);
for (c=0; c<Nc; c++)
{ scanf("%f", &A[f][c]);
}
printf("\n");
}
return (0);

}
int Gauss_Jordan(float M[100][100], int N, float *x)
{ int fila,k,r;
float tmp;
for(fila=0;fila<N;fila++)
3

{ for(k=0;k<N;k++)
{ if(k!=fila)
{ tmp = M[k][fila];
for(r=0; r<=N; r++)
{ M[k][r]= M[k][r]-(tmp/M[fila][fila])*M[fila][r];
}
}
}
}
for(fila=0; fila<N; fila++)
x[fila]=M[fila][N]/M[fila][fila];

return 0;
}
int main(int argc, char *argv[])
{
float M[100][100], x[100];
int i, N;
printf("\n\nGUASS JORDAN\n");
printf("Tamao del sistema: ");
scanf("%d", &N);
printf("Escribe los valores de la matriz aumentada, ingresa %d tanto
valores para cada fila presione <enter>\n",N+1);
Lee_Matriz(M, N, N+1);
Imprime_Matriz(M, N, N+1);
Gauss_Jordan(M, N, x);
Imprime_Matriz(M, N, N+1);
printf("SOLUCION AL SISTEMA\n");
for(i=0; i<N; i++)
4

{ printf("%8.3f\n", x[i]);
}
getch();
return 0;
}

Matlab
function y=Gaussjordan(M,b)
[n n]=size(M);
M=[M' ;b']';
x=zeros(n,1);
for p=1:n
for k=[1:p-1,p+1:n];
m=-M(k,p)/M(p,p);
M(k, :)=M(k, :)+m*M(p, :)
end
end
x=M(:,n+1)./diag(M)
c.

Вам также может понравиться