You are on page 1of 3

Cálculo de la inversa mediante el determinante y la

matriz adjunta con los cofactores y los mínimos


(matriz 3x3)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Matriz_inversa_con_pasos
{
class Program
{
static void Main(string[] args)
{
double determinante;
double M11;
double M12;
double M13;
double M21;
double M22;
double M23;
double M31;
double M32;
double M33;

double c11;
double c12;
double c13;
double c21;
double c22;
double c23;
double c31;
double c32;
double c33;
string respuesta;
double div;

Console.WriteLine("Escriba la primera columna");


double A11 = double.Parse(Console.ReadLine());
double A21 = double.Parse(Console.ReadLine());
double A31 = double.Parse(Console.ReadLine());

Console.WriteLine("Escriba la segunda columna");


double A12 = double.Parse(Console.ReadLine());
double A22 = double.Parse(Console.ReadLine());
double A32 = double.Parse(Console.ReadLine());

Console.WriteLine("Escriba la tercera columna");


double A13 = double.Parse(Console.ReadLine());
double A23 = double.Parse(Console.ReadLine());
double A33 = double.Parse(Console.ReadLine());
Console.WriteLine("La matriz es:");
Console.WriteLine(A11 + " " + A12 + " " + A13);
Console.WriteLine(A21 + " " + A22 + " " + A23);
Console.WriteLine(A31 + " " + A32 + " " + A33);
Console.WriteLine("");

Console.WriteLine("Es esta su matriz? ESCRIBA SI O NO EN


minúscula");
respuesta = Console.ReadLine();
if (respuesta == "si")
{

//Ahora la determinante es:


determinante = (A11 * ((A22 * A33) - (A32 * A23))) - (A12 * ((A21 *
A33) - (A31 * A23))) + (A13 * ((A21 * A32) - (A31 * A22)));
Console.WriteLine("La determinante es: " + determinante);

M11 = A22 * A33 - A32 * A23;


M12 = A21 * A33 - A23 * A31;
M13 = A21 * A32 - A31 * A22;

M21 = A12 * A33 - A32 * A13;


M22 = A11 * A33 - A31 * A13;
M23 = A11 * A32 - A31 * A12;

M31 = A12 * A23 - A22 * A13;


M32 = A11 * A23 - A21 * A13;
M33 = A11 * A22 - A21 * A12;

Console.WriteLine("M11= " + M11);


Console.WriteLine("M12= " + M12);
Console.WriteLine("M13= " + M13);
Console.WriteLine("M21= " + M21);
Console.WriteLine("M22= " + M22);
Console.WriteLine("M23= " + M23);
Console.WriteLine("M31= " + M31);
Console.WriteLine("M32= " + M32);
Console.WriteLine("M33= " + M33);
Console.WriteLine("");
//Ahora los cofactores
c11 = Math.Pow(-1, 2) * M11;
c12 = Math.Pow(-1, 3) * M12;
c13 = Math.Pow(-1, 4) * M13;
c21 = Math.Pow(-1, 3) * M21;
c22 = Math.Pow(-1, 4) * M22;
c23 = Math.Pow(-1, 5) * M23;
c31 = Math.Pow(-1, 4) * M31;
c32 = Math.Pow(-1, 5) * M32;
c33 = Math.Pow(-1, 6) * M33;
Console.WriteLine("");
Console.WriteLine("Los cofactores son:");
Console.WriteLine("c11= " + c11);
Console.WriteLine("c12= " + c12);
Console.WriteLine("c13= " + c13);
Console.WriteLine("c21= " + c21);
Console.WriteLine("c22= " + c22);
Console.WriteLine("c23= " + c23);
Console.WriteLine("c31= " + c31);
Console.WriteLine("c32= " + c32);
Console.WriteLine("c33= " + c33);

Console.WriteLine("");
//Ahora la matriz de cofactores es:
Console.WriteLine("La matriz de cofactores es:");
Console.WriteLine(c11 + " " + c12 + " " + c13);
Console.WriteLine(c21 + " " + c22 + " " + c23);
Console.WriteLine(c31 + " " + c32 + " " + c33);
Console.WriteLine("");
Console.WriteLine("");
//Ahora la matriz de transpuesta de los cofactores es:
Console.WriteLine("La matriz adjunta es:");
Console.WriteLine(c11 + " " + c21 + " " + c31);
Console.WriteLine(c12 + " " + c22 + " " + c32);
Console.WriteLine(c13 + " " + c23 + " " + c33);
Console.WriteLine("");
Console.WriteLine("");
div = 1 / determinante;
Console.WriteLine("La 1/det(A)=" + div);
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("La inversa es:");
Console.WriteLine(c11 * div + " " + c21 * div + " " + c31 *
div);
Console.WriteLine(c12 * div + " " + c22 * div + " " + c32 *
div);
Console.WriteLine(c13 * div + " " + c23 * div + " " + c33 *
div);
}

if(respuesta=="no")
{
Console.WriteLine("Vuelva a escribir");
}

Console.ReadKey();
}
}
}

You might also like