Necesito codigo INVERSA de una matriz por metodo GAUSS JORDAN! porfa!

lizye
10 de Mayo del 2004
Porfa necesito que alguien me ayude con el codigo de la inversa de una matriz...me pidieron un programa de todas las operaciones con matrices y solo me falta la de la inversa porfa ayudenme!!! se los agradeceria muchisisismo!

noel solw
10 de Mayo del 2004
// program Gauss.
// metodo de Gauss Jordan para la inversion de una matriz cuadrada.
// written in Borland CPP ver 4.5

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <math.h>

#define N 3

void Show(float a[][N],float b[][N])
{
for(int i = 0;i < N;i++)
{
for(int j = 0; j < N; j++)
cout << setw(8) << a[i][j];
cout << " |";
for(j = 0; j < N; j++)
cout << setw(8) << b[i][j];
cout << endl;
}
cout << endl;
} // SHOW

void Show(float a[][N])
{
for(int i = 0;i < N;i++)
{
for(int j = 0; j < N; j++)
cout << setw(8) << a[i][j];
cout << endl;
}
cout << endl;
} // SHOW

void ErrorExit(float a[N][N])
{
Show(a);
cout << "singular system - program halts ! ! !" << endl << endl;
exit(0);
} // ERROR EXIT

void Process(float a[][N],float b[][N])
{
for(int i = 0; i < N; i++)
{
if(!a[i][i])
ErrorExit(a);
float holder = a[i][i];
for(int x = 0;x < N;x++)
{
a[i][x] /= holder;
b[i][x] /= holder;
}
for(int k = 0; k < N; k++)
{
if(k == i)
continue;
holder = a[k][i];
for(int j = 0; j < N; j++)
{
a[k][j] -= a[i][j]*holder;
b[k][j] -= b[i][j]*holder;
}
Show(a,b);
}
}
} // PROCESS

void Verification(float a[N][N],float b[][N])
{
cout << "verification : " << endl << endl;
cout << "la matriz original a : " << endl << endl;
Show(a);
cout << "la matriz inversa b : " << endl << endl;
Show(b);
float c[N][N];
for(int i = 0;i < N;i++)
for(int j = 0;j < N;j++)
{
c[i][j] = 0;
for(int k = 0;k < N;k++)
c[i][j] += a[k][j]*b[i][k];
}
cout << "c = a x b es igual a la matriz unitaria " << endl << endl;
Show(c);
} // VERIFICATION

void main()
{
float a[N][N] = {{1,2,3},{1,4,9},{1,8,27}},
b[N][N] = {{1,0,0},{0,1,0},{0,0,1}},
x[N][N] = {{1,2,3},{1,4,9},{1,8,27}};
cout << setprecision(2) << setiosflags(ios::showpoint)
<< setiosflags(ios::fixed);
Show(a,b);
Process(a,b);
Verification(x,b);
cout << "end of program - good bye ! ! !n";
} // MAIN