Escolar Documentos
Profissional Documentos
Cultura Documentos
GaussJordan Blog
GaussJordan Blog
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
#include <stdio.h>
int c;
c=0;
cin.get();
return c;
}
if(op[c] != '1' && op[c] != '2' && op[c] != '3' && op[c]
!= '4' && op[c] != '5' && op[c] != '6' && op[c]!='7' && op[c] !
= '8' && op[c]!='9' && op[c]!='0' && op[c]!= ' ')
{
r=1 ;
}
else
{
r=0;
}
o=o+r;
}
return o;
}
if(op[c] != '-' && op[c] != '.' && op[c] != '1' && op[c]
!= '2' && op[c] != '3' && op[c] != '4' && op[c] != '5' && op[c]
!= '6' && op[c]!='7' && op[c] != '8' && op[c]!='9' && op[c]!='0'
&& op[c]!= ' ')
{
r=1 ;
}
else
{
r=0;
}
o=o+r;
}
if(o>1)
{
cout<<"\n No es un numero , x favor de teclear un numero ";
cin.get();
}
return o;
}
if(op[c] != '1' && op[c] != '2' && op[c] != '3' && op[c]
!= '4' && op[c] != '5' && op[c] != '6' && op[c]!='7' && op[c] !
= '8' && op[c]!='9' && op[c]!='0' && op[c]!= ' ')
{
r=1 ;
}
else
{
r=0;
}
o=o+r;
}
if(o>1)
{
cout<<"\n No es un numero entero , x favor de teclear un numero
entero";
cin.get();
}
return o;
}
}
}
m=n*n;
for(c=0;c<n;c++)
{
for(f=0;f<n;f++)
{
d =a[c][f];
if ( d != e)
{
r=r+0;
}
else
{
r=r+1;
}
}
}
if(r!=m)
{
cout<<"Matriz Con solucion :";
cout<<"\n\n\n Matriz de "<<n<<" x "<<n<<"\n\n\n ";
for(c=0;c<n;c++)
{
for(f=0;f<n+1;f++)
{
if(f<n)
{
cout<<" "<<a[c][f];
}
else
{
cout<<" = "<<a[c][f];
}
}
cout<<"\n ";
}
}
else
{
for(c=0;c<n;c++)
{
b=a[c][c];
if(b != 0 )
{
for(f=0;f<n+1;f++)
{
a[c][f]=(a[c][f])/b;
r[c][f]=a[c][f];
}
cout<<" "<<a[ee][ff];
}
cout<<"\n";
}
for(ff=0;ff<n+1;ff++)
{
r[cc+1][ff]=((-1*d)*(a[c][ff]))+
(a[cc+1][ff]);
a[cc][ff]=r[cc][ff];
}
}
e=e+1;
if(c>0 )
{
for(cc=0;cc<c;cc++)
{
g=r[cc][c];
for(ff=0;ff<n+1;ff++)
{
r[cc][ff]=((-1*g)*(a[c][ff]))+(a[cc]
[ff]);
a[cc][ff]=r[cc][ff];
}
}
}
if(c<n)
{
for(cc=0;cc<n;cc++)
{
for(ff=0;ff<n+1;ff++)
{
cout<<" "<<r[cc][ff];
cout<<"\n";
}
}
cout<<"\n";
}
else
{
for(cc=c;cc<n;cc++)
{
s=a[cc][c];
if(s != 0)
{
h=cc;
}
}
cout<<"\n Sumamos R"<<h+1<<" a R"<<c+1<<"\n";
for(f=c;f<n+1;f++)
{
a[c][f]=a[c][f]+a[h][f];
}
imprimir(a,n);
b=a[c][c];
for(f=0;f<n+1;f++)
{
a[c][f]=(a[c][f])/b;
r[c][f]=a[c][f];
}
cout<<" "<<a[ee][ff];
}
cout<<"\n";
}
for(ff=0;ff<n+1;ff++)
{
r[cc+1][ff]=((-1*d)*(a[c][ff]))+
(a[cc+1][ff]);
a[cc][ff]=r[cc][ff];
}
}
e=e+1;
if(c>0 )
{
for(cc=0;cc<c;cc++)
{
g=r[cc][c];
for(ff=0;ff<n+1;ff++)
{
r[cc][ff]=((-1*g)*(a[c][ff]))+(a[cc]
[ff]);
a[cc][ff]=r[cc][ff];
}
}
}
if(c<n)
{
for(cc=0;cc<n;cc++)
{
for(ff=0;ff<n+1;ff++)
{
cout<<" "<<r[cc][ff];
cout<<"\n";
}}
cout<<"\n";
}
}
}
a[c][f]=(a[c][f])/b;
r[c][f]=a[c][f];
}
for(ee=0;ee<n;ee++)
{
for(ff=0;ff<n;ff++)
{
for(cc=e;cc<n;cc++)
{
d=a[cc+1][c];
for(ff=0;ff<n;ff++)
{
r[cc+1][ff]=((-1*d)*(a[c][ff]))+
(a[cc+1][ff]);
a[cc][ff]=r[cc][ff];
}
}
e=e+1;
if(c>0 )
{
for(cc=0;cc<c;cc++)
{
g=r[cc][c];
for(ff=0;ff<n;ff++)
{
r[cc][ff]=((-1*g)*(a[c][ff]))+(a[cc]
[ff]);
a[cc][ff]=r[cc][ff];
}
}
}
if(c<n)
{
for(cc=0;cc<n;cc++)
{
for(ff=0;ff<n;ff++)
{
}}
}
else
{
for(cc=c;cc<n;cc++)
{
s=a[cc][c];
if(s != 0)
{
h=cc;
}
}
cout<<"\n Sumamos R"<<h+1<<" a R"<<c+1<<"\n";
for(f=c;f<n;f++)
{
a[c][f]=a[c][f]+a[h][f];
}
b=a[c][c];
for(f=0;f<n;f++)
{
a[c][f]=(a[c][f])/b;
r[c][f]=a[c][f];
}
for(ee=0;ee<n;ee++)
{
for(ff=0;ff<n;ff++)
{
cout<<"\n\n \n\n";
for(cc=e;cc<n;cc++)
{
d=a[cc+1][c];
for(ff=0;ff<n;ff++)
{
r[cc+1][ff]=((-1*d)*(a[c][ff]))+
(a[cc+1][ff]);
a[cc][ff]=r[cc][ff];
}
}
e=e+1;
if(c>0 )
{
for(cc=0;cc<c;cc++)
{
g=r[cc][c];
for(ff=0;ff<n;ff++)
{
r[cc][ff]=((-1*g)*(a[c][ff]))+(a[cc]
[ff]);
a[cc][ff]=r[cc][ff];
}
}
}
if(c<n)
{
for(cc=0;cc<n;cc++)
{
for(ff=0;ff<n;ff++)
{
}}
}
}
R=0;
for(c=0;c<n;c++)
{
for(f=0;f<n;f++)
{
d =a[c][f];
if ( d != 0)
{
R=R+0;
}
else
{
R=R+1;
}
}
}
re=n*(n-1);
if(re>R)
{
re=0;
cout<<"\n\n Matriz Con solucion.";
}
else
{
re=1;
cout<<"\n\n Matriz sin solucion . Determinante igual a 0 , por lo
tanto la matriz no tendra solucion como se muestra a
continuacion.";
}
getch();
return re;
}
int main ()
{
char N[50000],SN[50000],S[50000],C[50000],F[50000];
int s,n,c,sn,v,f,d;
double a[50][50],b[50][50];
do{do{system("cls");
inicia(N);
inicia(SN);
cout<<"\n GAUSS JORDAN de una Matriz \n\n\n";
cout<<"\n Por favor teclee el tamaño de la matriz menor a 50: ";
cin>>N;
v=mcvalidacion(N);
}while(v<1);
n=atoi(N);
if(n>1)
{
captura(a,n);
do{do{do{system("cls");
inicia(S);
imprimir(a,n);
cout<<"\n\n Deseas Corregir algun dato ?\n";
cout<<" 1.-Si.\n 2.-No (coninuar).\n\n OPC. : ";
cin>>S;
v=mcvalidacion(S);
}while(v<1);
s=atoi(S);
if(s<2)
{
do{system("cls");
inicia(C);
cout<<"\n\n Teclee numero de columna : ";
cin>>C;
v=mcvalidacion(C);
}while(v<1);
c=atoi(C);
do{system("cls");
inicia(F);
cout<<"\n\n Teclee numero de fila : ";
cin>>F;
v=mcvalidacion(F);
}while(v<1);
f=atoi(F);
do{system("cls");
inicia(SN);
cout<<"\n\n Teclee el valor correcto : ";
cin>>SN;
v=validacion(SN);
}while(v<1);
a[f-1][c-1]=atof(SN);
}
else
{
cout<<"\n\n Generando preceso ....";
}
}while(s<1 || s>2);
}while(s<2);
cout<<"\n\n\n\n";
copiar(a,n,b);
d=determinante(b,n);
metodogaussjordan(a,n);
cout<<"\n\n";
cout.precision(20);
for(c=0;c<n; c++)
{
cout<<"\n\n X"<<c+1<<" = "<<a[c][n];
}
getch();
}
else
{
cout<<"\n\n No es una matriz , eso es solo una igualdad , el valor
de tu incognita es el siguiente :";
getch();
captura(a,n);
imprimir(a,n);
cout<<"\n\n\n\n";
metodogaussjordan(a,n);
cout<<"\n\n";
cout.precision(20);
for(c=0;c<n; c++)
{
cout<<"\n\n X"<<c+1<<" = "<<a[c][n];
}
getch();
}
do{do{system("cls");
inicia(SN);
cout<<"\n\n\n ¿ DESEA RESOLVER OTRO SISTEMA DE
ECUACIONES ?\n\n\n\n 1.- Si \n\n 2.- NO(salir)\n\n OPC. : ";
cin>>SN;
v=mcvalidacion(SN);
}while(v<1);
sn=atoi(SN);
}while(sn<1 || sn>2);
}while(sn<2);
return 0;
}
Conclusiones:
Este programa fue realizado para matrices menores a 50, fue
realizado con palabras reservadas y también diferencia si se
llegase a teclear alguna letra. El programa hace comparaciones de
los datos hasta poder poner nuestra diagonal en 1 e ir realizando
las operaciones en la filas y columnas hasta llegar a los
resultados.
Nos da la opción al inicio del programa después de haber
introducido nuestros datos de poder ver los datos introducidos y
poder cambiarlos o bien proceder a la realización de los cálculos
en el programa.
INSTITUTO POLITECNICO NACIONAL
MECANICA Y ELECTRICA “
UNIDAD CULHUACAN
ANALISIS NUMERICO
TAREA:
DIFERENCIACION NUMERICA
ALUMNO:
PROFESOR: