Problema basico con Gauss simple
Publicado por Hector (1 intervención) el 21/02/2019 07:31:13
Me dejaron hacer un programa que resuelva matrices de orden n con gauss simple, tengo la parte de convertir la matriz en diagonal superior, pero para la respuesta quieren una funcion recursiva, la cual se me ocurre, pero no puedo hacerlo ya que para la funcion me pide declarar el numero de columnas y eso depende del orden :( alguna idea ? el codigo es este
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
float ext, aux=0;
int m,n,i,j,k,l,q,r;
int main(){
cout<<"Vamos a resolver una matriz nxn con metodo de Gauss, inserte el orden de su matriz ";
cin>>n;
m=n;
float mat1[m-1][n+1];
cout<<"Su matriz quedara de "<<n<<"x"<<n+1<<" como una matriz aumentada"<<endl;
for(i=0;i<m;i++){
for(j=0;j<=n;j++){
cout<<endl;
cout<<"Inserte el valor "<<i+1<<" "<<j+1<<" de su matriz"<<endl;
cin>>mat1[i][j];
}
}
//A partir de aqui comienza el procedimiento para volverla triangular superior
for(i=0;i<(n-1);i++){
for(j=i+1;j<(m);j++){
ext=(-1*(mat1[j][i]/mat1[i][i]));
for(k=0;k<=n;k++){
mat1[j][k]+=ext*mat1[i][k];
}
//Imprime todas las matrices conforme se les van haciendo los cambios
for(q=0;q<m;q++){
cout<<endl;
for(r=0;r<=n;r++){
cout<<mat1[q][r]<<" ";
}
}
cout<<endl;
cout<<"------------------------------------------------------------------------------------"<<endl;
}
}
system ("Pause");
return 0;
}
Valora esta pregunta


0