• Martes 16 de Abril de 2024, 16:49

Autor Tema:  Codigo de Matriz Inversa y Método de Gauss  (Leído 46752 veces)

AugustZamo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Codigo de Matriz Inversa y Método de Gauss
« en: Lunes 12 de Abril de 2010, 22:52 »
0
Hola  a Todos es mi primer Tema qe publico y espero puedan ayudarme, he hecho el siguiente código, sin embargo sólo funciona para una matriz de 2*2 y el otro para dos ecuaciones... y necesito que funcione para el número de ecuaciones que el usuario quiera así como para el tamaño de la matriz que desee...

Para la Matriz inversa:
#include <iostream>
using namespace std;

int i,j;
float m1[1000][1000], coef, aux[1000], pivote;

int main()
{
cout << "ntBienvenido al Generador de Matrices Inversasn";
for (i=0;i<2;i++)
{
for (j=0;j<2;j++)
{
cout << "Ingrese el valor de [" <<i<< "]["<< j <<"]";
cin >> m1 [j];
}
}

for (i=0;i<2;i++)
for(j=2;j<4;j++)
{
if(i==(j-2))
m1[j]=1;
else
m1[j]=0;
}
//Iteracion 1

/*Pivote*/
pivote=m1[0][0];
for (j=0;j<4;j++)
m1[0][j]=m1[0][j]/pivote;

/*Para
el otro renglón*/

coef=m1[1][0];
for (j=0;j<4;j++)
aux[j]=m1[0][j]*(coef*-1);
for (j=0;j<4;j++)
m1[1][j]=m1[1][j]+aux[j];

/*Para la
iteración 2*/

/*Pivote 2*/
pivote=m1[1][1];
for (j=0;j<4;j++)
m1[1][j]=m1[1][j]/pivote;

/*Para
el otro renglón*/

coef=m1[0][1];
for (j=0;j<4;j++)
aux[j]=m1[1][j]*(coef*-1);
for (j=0;j<4;j++)
m1[0][j]=m1[0][j]+aux[j];

//Imprimir la matriz inversa
for (i=0;i<2;i++)
{
for(j=2;j<4;j++)
cout << "t"<<m1[j];
if (j==4)
cout <<"n";
}

}


Este es el de Gauss (soluciona ecuaciones)
#include <iostream>
using namespace std;

int i,j;
float m1[1000][1000], coef, aux[1000], pivote;

int main()
{
cout << "ntBienvenido al Solucionador de ecuaciones 2010n";
for (i=0;i<2;i++)
for (j=0;j<3;j++)
cin >> m1 [j];

//Iteracion 1

/*Pivote*/
pivote=m1[0][0];
for (j=0;j<3;j++)
m1[0][j]=m1[0][j]/pivote;

/*Para
el otro renglón*/

coef=m1[1][0];
for (j=0;j<3;j++)
aux[j]=m1[0][j]*(coef*-1);
for (j=0;j<3;j++)
m1[1][j]=m1[1][j]+aux[j];

/*Para la
iteración 2*/

/*Pivote 2*/
pivote=m1[1][1];
for (j=0;j<3;j++)
m1[1][j]=m1[1][j]/pivote;

/*Para
el otro renglón*/

coef=m1[0][1];
for (j=0;j<3;j++)
aux[j]=m1[1][j]*(coef*-1);
for (j=0;j<3;j++)
m1[0][j]=m1[0][j]+aux[j];

//Imprimir la solución
for (i=0;i<2;i++)
{
cout << "t x ["<<i<<"] "<<m1[2] <<"n";
}

}


GRracias de antemano

AugustZamo

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Codigo de Matriz Inversa y Método de Gauss
« Respuesta #1 en: Jueves 15 de Abril de 2010, 18:21 »
0
Ya lo resolvi:
Inversa de una Matriz
#include <iostream>
using namespace std;

int i,j, k, s;
float m1[1000][1000], coef, aux[1000], elemento;
     
int main()
{
   cout << "ntBienvenido al Generador de Matrices Inversasn";
   cout << "Por favor introduzca el tamaño de la matrizn";
   cin >> k;
   
   for (i=0;i<k;i++)
      {
         for (j=0;j<k;j++)
         {
            cout << "Ingrese el valor de [" <<i<<"]["<<j<<"]";
            cin >> m1 [j];
         }
      }

   for (i=0;i<k;i++)
      for(j=k;j<2*k;j++)
      {
         if(i==(j-k))
            m1[j]=1;
         else
            m1[j]=0;
      }
      //Iteraciones
      for (s=0;s<k;s++)
      {
         elemento=m1;
         for (j=0;j<2*k;j++)
            m1[j]=m1[j]/elemento;

         for(i=0;i<k;i++)
         {
            if (i==s)
               ;
            else
            {
               coef= m1;
               for (j=0;j<2*k;j++)
                  aux[j]=m1[j]*(coef*-1);
               for (j=0;j<2*k;j++)
                  m1[j]=m1[j]+aux[j];
            }
         }
      }
      //Imprimir la matriz inversa
      
      for (i=0;i<k;i++)
      {
         for(j=k;j<2*k;j++)
            cout << "t"<<m1[j];
         if (j==k)
            cout <<"n";
      }
      
}


Método de Gauss
#include <iostream>
using namespace std;

int i,j,k,l,s;
float m1[1000][1000], coef, aux[1000], elemento;
     
int main()
{
   cout << "ntBienvenido al Solucionador de ecuaciones 2010n";
   cout << "Por favor determine el numero de incognitas a resolver: ";
   cin >> k;
   l=k+1;
   
   for (i=0;i<k;i++)
      {
         for (j=0;j<l;j++)
         {
   cout<<"nAhora introduzca los coeficientes de ["<<i<<"]["<<j<<"]";
            cin >> m1 [j];
         }
      }
      
      for (s=0;s<k;s++)
      {
         elemento=m1;
         for (j=0;j<l;j++)
         m1[j]=m1[j]/elemento;
         for (i=0;i<k;i++)
         {
            if (i==s)
               ;
            else
            {
               coef=m1;
               for (j=0;j<l;j++)
                  aux[j]=m1[j]*(coef*-1);
               for (j=0;j<l;j++)
                  m1[j]=m1[j]+aux[j];
            }
         }
      }

      //Imprimir las soluciones
      for (i=0;i<k;i++)
      {
         cout << "t x ["<<i<<"] "<<m1[k] <<"n";
      }
      
}
Código: C++
  1. [b][/b]
  2.  

mauricioplaza

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Codigo de Matriz Inversa y Método de Gauss
« Respuesta #2 en: Sábado 24 de Septiembre de 2011, 07:08 »
0
no rayes el código
, hay partes que no se entienden

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Codigo de Matriz Inversa y Método de Gauss
« Respuesta #3 en: Sábado 24 de Septiembre de 2011, 16:30 »
0
Citar
no rayes el código
, hay partes que no se entienden
En realidad el no lo rayo a proposito, si te fijas tambien aparece con letra inclinada en algunas partes, simplemente olvido encerrar el codigo, si no lo encierras, entonces los [ s] y los [ i] se convierten a subrayados e inclinados respectivamente.

Si te interesa el codigo, te lo dejo a continuacion correctamente encerrado.

Inversa de una Matriz
Código: [Seleccionar]
#include <iostream>
using namespace std;

int i,j, k, s;
float m1[1000][1000], coef, aux[1000], elemento;
     
int main()
{
cout << "ntBienvenido al Generador de Matrices Inversasn";
cout << "Por favor introduzca el tamaño de la matrizn";
cin >> k;

for (i=0;i<k;i++)
{
for (j=0;j<k;j++)
{
cout << "Ingrese el valor de [" <<i<<"]["<<j<<"]";
cin >> m1 [i][j];
}
}

for (i=0;i<k;i++)
for(j=k;j<2*k;j++)
{
if(i==(j-k))
m1[i][j]=1;
else
m1[i][j]=0;
}
//Iteraciones
for (s=0;s<k;s++)
{
elemento=m1[s][s];
for (j=0;j<2*k;j++)
m1[s][j]=m1[s][j]/elemento;

for(i=0;i<k;i++)
{
if (i==s)
;
else
{
coef= m1[i][s];
for (j=0;j<2*k;j++)
aux[j]=m1[s][j]*(coef*-1);
for (j=0;j<2*k;j++)
m1[i][j]=m1[i][j]+aux[j];
}
}
}
//Imprimir la matriz inversa

for (i=0;i<k;i++)
{
for(j=k;j<2*k;j++)
cout << "t"<<m1[i][j];
if (j==k)
cout <<"n";
}

}

Método de Gauss
Código: [Seleccionar]
#include <iostream>
using namespace std;

int i,j,k,l,s;
float m1[1000][1000], coef, aux[1000], elemento;
     
int main()
{
cout << "ntBienvenido al Solucionador de ecuaciones 2010n";
cout << "Por favor determine el numero de incognitas a resolver: ";
cin >> k;
l=k+1;

for (i=0;i<k;i++)
{
for (j=0;j<l;j++)
{
cout<<"nAhora introduzca los coeficientes de ["<<i<<"]["<<j<<"]";
cin >> m1 [i][j];
}
}

for (s=0;s<k;s++)
{
elemento=m1[s][s];
for (j=0;j<l;j++)
m1[s][j]=m1[s][j]/elemento;
for (i=0;i<k;i++)
{
if (i==s)
;
else
{
coef=m1[i][s];
for (j=0;j<l;j++)
aux[j]=m1[s][j]*(coef*-1);
for (j=0;j<l;j++)
m1[i][j]=m1[i][j]+aux[j];
}
}
}

//Imprimir las soluciones
for (i=0;i<k;i++)
{
cout << "t x ["<<i<<"] "<<m1[i][k] <<"n";
}

}

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Zsasz

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Codigo de Matriz Inversa y Método de Gauss
« Respuesta #4 en: Lunes 6 de Mayo de 2013, 01:22 »
0
 :think:
Hola disculpa necesito ayuda con el código del método de gauss jordan...lo estoy haciendo en Visual Basic 2010...y no se que sucede que no resuelve los sistemas como se debe. Que puedo hacer o en que parte del código fallé?

'Definición de variables y matrices
        Dim k, l As Integer
        Dim matriz1(1000, 1000) As Single
        Dim coef As Single
        Dim aux(1000, 1000) As Single
        Dim elemento As Single

        'Encabezado para el programa
        Console.WriteLine("Bienvenido al Solucionador de Ecuaciones")
        Console.WriteLine()
        'Se pide ingresar las incógnitas que posee el sistema
        Console.WriteLine("Determine el numero de incognitas a resolver: ")
        k = Console.ReadLine()
        l = k + 1
        Console.WriteLine()

        'Llenamos la matriz ampliada con los coeficientes
        Console.WriteLine("Introduzca los Coeficientes de:")
        For i As Integer = 0 To k - 1 Step 1
            For j As Integer = 0 To l - 1 Step 1
                Console.WriteLine("Fila {0} y Columna {1}", i, j)
                matriz1(i, j) = Console.ReadLine()
            Next j
        Next i


        'Resolvemos el sistema de ecuaciones
        For s As Integer = 0 To k - 1 Step 1
            elemento = matriz1(s, s)
            For j As Integer = 0 To l - 1 Step 1
                matriz1(s, j) = matriz1(s, j) / elemento
            Next j
        Next s

        For i As Integer = 0 To k Step 1
            Dim s As Integer
            If i = s Then
            Else
                'Guardamos en la matriz auxiliar
                coef = matriz1(i, s)
                For j As Integer = 0 To l - 1 Step 1
                    aux(0, j) = matriz1(s, j) * (coef * -1)
                Next j

                For j As Integer = 0 To l - 1 Step 1
                    matriz1(i, j) = matriz1(i, j) + aux(0, j)
                Next j
            End If
        Next i

        'Imprimir las soluciones del sistema
        For i As Integer = 0 To k - 1 Step 1
            Console.WriteLine("X={0}       matriz {1,2}", i, matriz1(i, k))
        Next i


        Console.ReadLine()

gabox14

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re:Codigo de Matriz Inversa y Método de Gauss
« Respuesta #5 en: Sábado 3 de Septiembre de 2016, 16:22 »
0
disculpa amigo, una consulta podria explicarme el codigo como hallaste la inversa ?? si me puedes explicar de manera teorica . muchas gracias