GAUSS INVERSA:GAUSS INVERSA:GAUSS INVERSA:GAUSS INVERSA:GAUSS INVERSA:GAUSS INVERSA:GAUSS INVERSA:
/** HACER ALUMNO */
/** INICIALIZAMOS EL VECTOR DEL PIVOTE */
for(int k=0;k<A.dim1();k++) piv[k]=k;
/** CONVERTIMOS EL SISTEMA EN UNO TRIANGULAR USANDO EL METODO DE GAUSS */
for(int k=0;k<A.dim1();k++){
/** DETECTAMOS EL MAXIMO DE LA DIAGONAL HACIA ABAJO */
real max=fabs(Acopy[piv[k]][k]);
int kmax=k;
for(int m=k+1;m<A.dim1();m++){
if(fabs(Acopy[piv[m]][k])>max){
max=fabs(Acopy[piv[m]][k]);
kmax=m;
}
}
/** CAMBIAMOS EL PIVOTE SI FUERA NECESARIO */
if(kmax!=k){
int paso=piv[kmax];
piv[kmax]=piv[k];
piv[k]=paso;
}
/** CONVERTIMOS EN 0 DE LA DIAGONAL HACIA ABAJO */
for(int j=k+1;j<A.dim1();j++){
real mul=-Acopy[piv[j]][k]/Acopy[piv[k]][k];
Acopy[piv[j]][k]=0.;
for(int n=k+1;n<A.dim1();n++) Acopy[piv[j]][n]+=mul*Acopy[piv[k]][n];
for(int n=0;n<A.dim1();n++) B[piv[j]][n]+=mul*B[piv[k]][n];
}
}
/** REMONTE PARA CALCULAR TODOS LOS ELEMENTOS DE LA MATRIZ A_1 POR COLUMNAS A PARTIR DE B*/
for(int k=A.dim1()-1;k>=0;k--){
if(Acopy[piv[k]][k]==0.) return Array2D<real>();
for(int n=0;n<A.dim1();n++){
A_1[k][n]=B[piv[k]][n];
for(int l=k+1;l<Acopy.dim1();l++)
A_1[k][n]-= Acopy[piv[k]][l]*A_1[l][n];
A_1[k][n]/=Acopy[piv[k]][k];
}
}
GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:GAUSS:
/** HACER ALUMNO */
//cout<<b<< endl;
for(int k=0;k<A.dim1();k++) piv[k]=k;//definir
for(int k=0;k<A.dim1();k++){
real max=fabs(A1[piv[k]][k]);
int kmax=k;
for(int m=k+1;m<A.dim1();m++){
if(fabs(A1[piv[m]][k])>max){
max=fabs(A1[piv[m]][k]);
kmax=m;
}
}
if(kmax!=k){
int paso=piv[kmax];
piv[kmax]=piv[k];
piv[k]=paso;
}
for(int n=k+1;n<A.dim1();n++){
real mul=A1[piv[n]][k]/A1[piv[k]][k];
A1[piv[n]][k]=0.;
for (int q=k+1;q<A.dim1();q++)A1[piv[n]][q]=A1[piv[n]][q]-mul*A1[piv[k]][q];
b1[piv[n]]+=-mul*b1[piv[k]];
}
}
for (int h=b1.dim()-1;h>=0;h--){
u[h]=b1[piv[h]];
for(int m=h+1;m<b1.dim();m++){
u[h]=u[h]-(A1[piv[h]][m]*u[m]);
}
if(A1[piv[h]][h]==0.)return Array1D<real>();
u[h]=u[h]/(A1[piv[h]][h]);
}
3) Please describe the problem you're having with your code. If you won't bother to even give a little bit of information, most of us won't bother wading through your code, no matter how organized it is.
3) Bitte beschreiben Sie das Problem, die Sie haben mit Ihrem Code . Wenn Sie sich nicht die Mühe , auch nur ein wenig von Informationen zu geben , werden die meisten von uns nicht die Mühe, waten durch Ihren Code , egal, wie die organisierte es ist.