Sie sind auf Seite 1von 4

#include <stdio.

h>
#include <stdlib.h>
int main()
{
float m[3][3],mcf[3][3],mtp[3][3],mi[3][3],mt[3][3],mr[2][1],mb[2][1];
int f,c,det,opw,opc;
do{
printf("Ingrese que accion desea realizar:n");
printf("1-Si desea calcular un sistema de ecuaciones en forma matricial n2-S
i desea calcular la inversa de una matriz de 3 x 3n");
scanf("%i",&opw);
printf("n");
switch(opw)
{
case 1:
for(f=0;f<2;f++)
{
for(c=0;c<2;c++)
{printf ("Ingrese el valor %i,%i de la matriz(recuerde que en se empieza
a contar desde 0):n",f,c);
scanf("%f",&m[f][c]);
}
}
printf("La matriz que usted ingreso es:n");
for(f=0;f<2;f++)
{
for(c=0;c<2;c++)
{printf(" %.0f,",m[f][c]);
}
printf("n");
}
/*calculo las determinante*/
det=m[0][0]*m[1][1]-m[1][0]*m[0][1];
printf("el determinante es: %i n",det);
if(det!=0)
{
printf("A continuacion se detalla la matriz cofactorn");
/*Calculo y muestro la matriz cofactor*/
mcf[0][0]=1*m[1][1];
mcf[0][1]=-1*m[1][0];
mcf[1][0]=-1*m[0][1];
mcf[1][1]=1*m[0][0];
for(f=0;f<2;f++)
{
for(c=0;c<2;c++)
{printf(" %.0f,",mcf[f][c]);
}
printf("n");
}
/*Calculo y muestro la matriz transpuesta */
printf("A continuacion se detalla la matriz transpuestan");
for(f=0;f<2;f++)
{
for(c=0;c<2;c++)
{mtp[f][c]=mcf[c][f];
}
}

for(f=0;f<2;f++)
{
for(c=0;c<2;c++)
{printf(" %.0f,",mtp[f][c]);
}
printf("n");
}
/*Calculo la matriz inversa*/
for(f=0;f<2;f++)
{
for(c=0;c<2;c++)
{mt[f][c]=mtp[f][c]/det;
}
}/*corroboro la matriz inversa*/
mi[0][0]=m[0][0]*mt[0][0]+m[0][1]*mt[1][0];
mi[0][1]=m[0][0]*mt[0][1]+m[0][1]*mt[1][1];
mi[1][0]=m[1][0]*mt[0][0]+m[1][1]*mt[1][0];
mi[1][1]=m[1][0]*mt[0][1]+m[1][1]*mt[1][1];
printf("Si la matriz siguiente no es la Matriz Identidad, fijese el correcto ing
reso de datosn");
for(f=0;f<2;f++)
{
for(c=0;c<2;c++)
{printf(" %.0f,",mi[f][c]);
}
printf("n");
}
/*ingreso la matriz b*/
for(f=0;f<2;f++)
{
for(c=0;c<1;c++)
{printf ("Ingrese el valor %i,%i de la matriz(recuerde que en se empieza
a contar desde 0):n",f,c);
scanf("%f",&mb[f][c]);
}
}
/*calculo el valor de x e y*/
mr[0][0]=mt[0][0]*mb[0][0]+mt[0][1]*mb[1][0];
mr[1][0]=mt[1][0]*mb[0][0]+mt[1][1]*mb[1][0];
printf("La matriz resultado es:n");
for(f=0;f<2;f++)
{
for(c=0;c<1;c++)
{printf("%.2f",mr[f][c]);
}
printf("n");
}
}
else
{printf("no tiene inversa");
}break;
case 2:
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{printf ("Ingrese el valor %i,%i de la matriz(recuerde que en se empieza
a contar desde 0):n",f,c);
scanf("%f",&m[f][c]);

}
}
printf("La matriz que usted ingreso es:n");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{printf(" %.0f,",m[f][c]);
}
printf("n");
}
/*Calculo y muestro el Determinante*/
det=(m[0][0]*m[1][1]*m[2][2]+m[1][0]*m[2][1]*m[0][2]+m[0][1]*m[1][2]*m[2][0]
)-(m[0][2]*m[1][1]*m[2][0]+m[2][1]*m[1][2]*m[0][0]+m[1][0]*m[0][1]*m[2][2]);
printf("el determinante es: %i n",det);
if(det!=0)
{printf("La matriz tiene inversa n");
/*Calculo la matriz cofactor*/
mcf[0][0]=1*((m[1][1]*m[2][2])-(m[1][2]*m[2][1]));
mcf[0][1]=-1*((m[1][0]*m[2][2])-(m[1][2]*m[2][0]));
mcf[0][2]=1*((m[1][0]*m[2][1])-(m[1][1]*m[2][0]));
mcf[1][0]=-1*((m[0][1]*m[2][2])-(m[0][2]*m[2][1]));
mcf[1][1]=1*((m[0][0]*m[2][2])-(m[0][2]*m[2][0]));
mcf[1][2]=-1*((m[0][0]*m[2][1])-(m[0][1]*m[2][0]));
mcf[2][0]=1*((m[0][1]*m[1][2])-(m[0][2]*m[1][1]));
mcf[2][1]=-1*((m[0][0]*m[1][2])-(m[0][2]*m[1][0]));
mcf[2][2]=1*((m[0][0]*m[1][1])-(m[0][1]*m[1][0]));
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{printf(" %.0f,",mcf[f][c]);
}
printf("n");
/*Calculo y muestro la matriz transpuesta */
}
printf("A continuacion se detalla la matriz transpuestan");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{mtp[f][c]=mcf[c][f];
}
}
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{printf(" %.0f,",mtp[f][c]);
}
printf("n");
}
/*Calculo la matriz inversa*/
printf("La matriz inversa es: n");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{mt[f][c]=mtp[f][c]/det;
}
}
for(f=0;f<3;f++)

{
for(c=0;c<3;c++)
{printf("%.3f
",mt[f][c]);
}
printf("n");
}
/*Corroboro la matriz inversa*/
mi[0][0]=mt[0][0]*m[0][0]+mt[0][1]*m[1][0]+mt[0][2]*m[2][0];
mi[0][1]=mt[0][0]*m[0][1]+mt[0][1]*m[1][1]+mt[0][2]*m[2][1];
mi[0][2]=mt[0][0]*m[0][2]+mt[0][1]*m[1][2]+mt[0][2]*m[2][2];
mi[1][0]=mt[1][0]*m[0][0]+mt[1][1]*m[1][0]+mt[1][2]*m[2][0];
mi[1][1]=mt[1][0]*m[0][1]+mt[1][1]*m[1][1]+mt[1][2]*m[2][1];
mi[1][2]=mt[1][0]*m[0][2]+mt[1][1]*m[1][2]+mt[1][2]*m[2][2];
mi[2][0]=mt[2][0]*m[0][0]+mt[2][1]*m[1][0]+mt[2][2]*m[2][0];
mi[2][1]=mt[2][0]*m[0][1]+mt[2][1]*m[1][1]+mt[2][2]*m[2][1];
mi[2][2]=mt[2][0]*m[0][2]+mt[2][1]*m[1][2]+mt[2][2]*m[2][2];
printf("A continuacion debe imprimirse la matriz identidad si no es asi fijese e
n el correcto ingreso de datosn");
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{printf("%.0f ",mi[f][c]);
}
printf("n");
}
printf("n");
}
else{printf("La matriz no tiene inversa");}
break;
default:
printf("Usted ha ingresado una opcion incorrectan");
}
printf("Ingresen1-Si desea Calcular algo masn-Cualquiera si desea salir");
scanf("%i",&opc);
}
while(opc==1);
system("PAUSE");
return 0;
}

Das könnte Ihnen auch gefallen