ayuda con Gauss-Jordan

Miri@m
19 de Mayo del 2004
hola, necesito q si alguien tene el algoritmo y programa de Gauss-Jordan, me lo pueda facilitar,
Por su ayuda gracias!!!!!!!

noel solw
19 de Mayo del 2004
Si te refieres a Gauss Jordan para la inversion de una matriz cuadrada, no hace mucho se lo envie a alguien en este foro.
Adjunto el programa :

// 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


Miri@m
19 de Mayo del 2004
gracias noel!!!!!!!!!!!! pero q cres, tengo un pequeño error al correrlo, me aparece un mensaje a dice: undefined symbol 'j', podrias ayudarme????????('_')