AYUDA URGENTE

selene21
24 de Marzo del 2006
necesito el programa del metodo de gauss jordan y el metodo de lu si alguien me puede ayudar se lo agradesco mucho

evem
24 de Marzo del 2006
SOLO TENGO EL METODO DE GAUSS JORDAN PERO CON GRAFICOS ESPERO QUETE SIRVA

#include <iostream.h>
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <math.h>


const int tam=10;
int i,j,k;
float aux;
char incog[4]={'W','X','Y','Z'};
char coefi[5]={'a','b','c','d'};

void presenta();
void dborde(int,int,int,int,int,int);
void g_diagonal(int,float [][tam*2]);
void imprime_arreglo(int,float [][tam*2]);
void imprime_incog(int,float [][tam*2]);
void c_incognitas(int,float [][tam*2]);


void main(){

int n;
int gd=DETECT,gm;
float array[tam][tam*2];
initgraph(&gd,&gm,"\bc31\bgi");
cout.precision(2);


cleardevice();
dborde(0,4,0,0,getmaxx(),getmaxy());
setbkcolor(BLACK);
dborde(0,4,0,0,getmaxx(),25);
setcolor(YELLOW);
outtextxy(200,3,"SISTEMA DE ECUACIONES");
settextstyle(2,0,5);
outtextxy(20,35,"Cuantas incognitas(1-4):");
gotoxy(30,3);cin>>n;

//Captura los datos del arreglo

dborde(0,4,0,250,getmaxx(),270);
setcolor(YELLOW);
outtextxy(20,250,"Introduce los datos");

for(i=0;i<n;i++){
gotoxy((i+1)*8,18);
cout<<coefi[i];
}
gotoxy((i+1)*8,18);
cout<<"R Diagonal principal";

setviewport(20,300,getmaxx()-20,getmaxy()-20,0);
for(i=0;i<n;i++){
for(j=0;j<=n;j++){
gotoxy((j+1)*8,(i+1)*2+18);
cin>>array[i][j];
}
}

g_diagonal(n,array);
imprime_arreglo(n,array);
c_incognitas(n,array);
imprime_arreglo(n,array);

setviewport(1,1,getmaxx(),getmaxy(),0);

setcolor(4);
line(getmaxx()/2,25,getmaxx()/2,250);
setcolor(YELLOW);
outtextxy((getmaxx()/2)+20,30,"Resultados");

imprime_incog(n,array);

getch();
closegraph();


}

void g_diagonal(int n,float array[][tam*2]){

for(i=0;i<n;i++){
for(j=n+1;j<=(n*2);j++){
if(i+n+1==j)
array[i][j]=1;
else
array[i][j]=0;
}
}

}

void c_incognitas(int n,float array[][tam*2]){

for(i=0;i<n;i++){
if(array[i][i]!=1){
aux=array[i][i];
for(j=0;j<=(n*2);j++)
array[i][j]/=aux;
imprime_arreglo(n,array);
}
for(j=0;j<n;j++){
if(j!=i){
aux=array[j][i]*(-1);
for(k=0;k<=(n*2);k++)
array[j][k]+=aux*array[i][k];
imprime_arreglo(n,array);
}
}
}


}

void imprime_arreglo(int n,float array[][tam*2]){

int i,j;

clearviewport();

for(i=0;i<n;i++){
for(j=0;j<=(n*2);j++){
gotoxy((j+1)*8,(i+1)*2+18);
cout<<array[i][j];
}
}

getch();

}

void imprime_incog(int n,float array[][tam*2]){

for(i=0;i<n;i++){
gotoxy(45,i+5);
cout<<incog[i]<<" =";
gotoxy(50,i+5);
cout<<array[i][n];
}

}




void dborde(int s,int c,int x1,int y1,int x2,int y2){

setcolor(c);
setlinestyle(s,0,3);
rectangle(x1,y1,x2,y2);

}