Buena a todos
Me podrían ayudar a revisar cual es la falla de mi programa para la resolución de sistemas de ecuaciones nxn por el metodo de gauss simple y otro programa por pivoteo parcial, para resumirlo, lo dejo asi:
-Las respuestas no me salen pero ya hice unas cuantas veces pruebas de escritorio para comprobar la logica de mi programa
Aqui un ejemplo de una matriz:
matriz A
2 -2 5
2 3 4
3 -1 3
vector B
12
20
10
la matriz resultante --- >
2 -2 5
0 5 -1
0 0 -4.5
vector B
13
7
-12.5
Soluciones:
X=1
Y=2
Z=3
Método de Gauss simple
Bueno aquí dejo el programa
[I] //METODO GAUSS
#include <conio>
#include <stdio>
#include <fstream>
void main()
{
float g,inv[100][100],ind[100],matriz[100][100],det,a[100][100],fo[100],m0[100][100],f1[100],f2[100],m1[100][100],factor,xn[100],sum;
int f,i,j,n,m,p,k,l,s=1,km,km1,n1,n2;
if(s!=1)
{
o:
}else{
r:
clrscr();
cout<<"INGRESE EL NUMERO DE VARIABLES"<<endl;
cin>>n;
if(n<=1)
{
cout<<"ERROR!, Ingrese mas de una variable para completar el sistema "<<endl;
getch();
goto r;
}
else{
cout<<"=========================================== ===================================";
km=1;
m=4;
p=10;
for(j=1;j<=n;j++)
{
gotoxy(p,m);cout<<"X"<<j;
p=p+6;
}
gotoxy(p,m);cout<<"C";
m=6;
for(i=1;i<=n;i++)
{
p=10;
for(j=1;j<=n;j++)
{
gotoxy(p,m);scanf("%f",&matriz[i][j]);
fo[km]=matriz[i][j];
km++;
p=p+6;
}
gotoxy(p,m);cin>>ind[i];
fo[km]=ind[i];
km++;
m=m+2;
}
}
cout<<"=========================================== ===================================";
//Aqui puede estar el error
for(i=1;i<=n-1;i++)
{
for(j=i+1;j<=n;j++)
{
factor=matriz[j][i]/matriz[i][i];
for(km=1;km<=n;km++)
{
matriz[j][km]=matriz[j][km]-(factor*matriz[i][km]);
}
ind[j]=ind[j]-(factor*ind[i]);
}
}
//o aqui en la sustitución hacia atrás
xn[n]=ind[n]/matriz[n][n];
for(i=n-1;i<=1;i--)
{
xn[i]=ind[i];
for(j=i+1;j<=n;j++)
{
xn[i]=xn[i]-(matriz[i][j]*xn[j]);
}
xn[i]=xn[i]/matriz[i][i];
}
clrscr();
m=4;
for(i=1;i<=n;i++)
{
p=10;
for(j=1;j<=n;j++)
{
gotoxy(p,m);cout<<matriz[i][j];
p=p+6;
}
m=m+2;
}
cout<<"Las soluciones son: "<<endl;
for(i=1;i<=n;i++)
{
cout<<xn<<endl;
}
getch();
}
}
De antemano muchas gracias por su tiempo