Foro Matemáticas

eliminaciongaussiana

Ver el tema anterior Ver el tema siguiente Ir abajo

eliminaciongaussiana

Mensaje  luisportilla el Lun Mayo 02, 2011 5:24 pm

muestra la matris

Código:
void mostrar(double[][] A){
int n=A.length;
int m=A[0].length;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
System.out.print(A[i][j]+"\t");
}System.out.println();}
}


Última edición por luisportilla el Lun Mayo 02, 2011 5:32 pm, editado 2 veces

luisportilla

Mensajes : 21
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: eliminaciongaussiana

Mensaje  luisportilla el Lun Mayo 02, 2011 5:26 pm

adjunta matrices

Código:
public double[][] ampliar(double[][]A,double[][]B){
int n=A.length;int m=A[0].length;int p=B[0].length;
double D[][]=new double[n][m+p];
for(int i=0;i<n;i++){for(int j=0;j<m+p;j++){
if(j<m){D[i][j]=A[i][j];}else{D[i][j]=B[i][j-m];}
}}return D;}

luisportilla

Mensajes : 21
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

permuta filas

Mensaje  luisportilla el Lun Mayo 02, 2011 5:34 pm

Código:
void permutar(double[][]A,int k, int l){
int n=A[0].length;double p=0;
for(int i=0;i<n;i++){
p=A[k][i];
A[k][i]=A[l][i];
A[l][i]=p;
}}

luisportilla

Mensajes : 21
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

si un pivote es cero este procedimiento busca el numero co el que hay que hacer permutacion de filas

Mensaje  luisportilla el Lun Mayo 02, 2011 5:37 pm

Código:
public int buscar(double[][]A,int i){
int n=A.length;
int s=0;
for(int j=i+1;j<n;j++){
if(A[j][i]==0){}
else{s=j;}
}
return s;
}

luisportilla

Mensajes : 21
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

la operacion fila

Mensaje  felipe nar el Lun Mayo 02, 2011 5:39 pm

Código:

void operfila(double[][] A,double alfa,int i, int j){
int m=A[0].length;
for(int k=0;k<m;k++){
A[i][k]=A[i][k]-alfa*A[j][k];

}

}


Última edición por felipe nar el Lun Mayo 02, 2011 6:20 pm, editado 1 vez

felipe nar

Mensajes : 12
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Operacion Fila

Mensaje  Dorlan Enrique el Lun Mayo 02, 2011 5:49 pm

Código:

void OpfilA(double C[][],double alfa,int i,int j){
            int n=C[0].length;
         
          for(int k=0;k<n;k++){
          C[i][k]=C[i][k]-(alfa*C[j][k]);
          }
      }

Dorlan Enrique

Mensajes : 8
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Sustitucion regresiva

Mensaje  Jesteban el Lun Mayo 02, 2011 6:21 pm

Código:

double[][]  sustitucion(double[][] C){
        int i,j,n;
        n=C.length;//num filas
        double t; //temporal
        double[][] x=new double[n][1];
        for(i=n-1;i>=0;i--){//for para la regresion
            t=0;
            for(j=i+1;j<n;j++){//for para la sumatoria
                t=t+C[i][j]*x[j][0];
                }
      x[i][0]=(C[i][n]-t)/C[i][i];
         
        }
        return x;
}

Jesteban

Mensajes : 12
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

sustitucion hacia atras

Mensaje  yeison el Lun Mayo 02, 2011 6:33 pm

Código:
double[][]  sustitucion(double[][] C){
        int i,j,n;
        n=C.length;//# filas
        double t; //variable temporal
        double[][] x=new double[n][1];
        for(i=n-1;i>=0;i--){  // para la regresion
            t=0;
            for(j=i+1;j<n;j++){  // para la sumatoria
                t=t+C[i][j]*x[j][0];
                }
      x[i][0]=(C[i][n]-t)/C[i][i];
       
        }
        return x;
}

yeison

Mensajes : 6
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

triangular

Mensaje  luisport el Lun Mayo 02, 2011 7:32 pm

Código:
void triangular2(double[][]A){
int n=A.length;
for(int p=0;p<n-1;p++){int u=1;//mostrar(A);
if(A[p][p]==0){permutar(A,p,buscar(A,p));}
for(int j=p+1;j<n;j++){ operfila(A,A[j][p]/A[p][p],j,p);}
}}

luisport
Invitado


Volver arriba Ir abajo

eliminacion

Mensaje  luisport el Lun Mayo 02, 2011 7:34 pm

Código:
double[][] eliminacion(double[][]A,double[][]b){
int n=A.length;int m=A[0].length;
int p=b[0].length;
double[][] C= new double[n][m+p];
 C=ampliar(A,b);
triangular2(C);

return C;}

}

luisport
Invitado


Volver arriba Ir abajo

ceros_abajo

Mensaje  jenny el Lun Mayo 02, 2011 7:38 pm

void ceros_abajo(int i, int j, double C[][], double alfa)
{
int cont;
int n=C[0].length*C.length;

for(cont=j+1;cont {
double D [][]=new double [cont][i];
OpfilA(D,alfa,cont,j);

}
}

jenny

Mensajes : 9
Fecha de inscripción : 28/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

triangular

Mensaje  wilmer cordoba el Lun Mayo 02, 2011 7:50 pm

Código:
 /*void triangular(double[][]C){
int n=C.length;
for(int k=0;k<n-1;k++){
 if(C[k][k]==0){
      permutar(C,k,buscar(C,k));}
for(int j=k+1;j<n;j++){
    opfila(C,C[j][k]/C[k][k],j,k);}
}}*/

wilmer cordoba

Mensajes : 10
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

deberia regresar una matriz

Mensaje  luisportilla el Lun Mayo 02, 2011 9:20 pm

Jesteban escribió:
Código:

double[][]  sustitucion(double[][] C){
        int i,j,n;
        n=C.length;//num filas
        double t; //temporal
        double[][] x=new double[n][1];
        for(i=n-1;i>=0;i--){//for para la regresion
            t=0;
            for(j=i+1;j<n;j++){//for para la sumatoria
                t=t+C[i][j]*x[j][0];
                }
      x[i][0]=(C[i][n]-t)/C[i][i];
         
        }
        return x;
}

¿que hago si estoy buscando la matris inversa? esta funcion
regresa un vector

luisportilla

Mensajes : 21
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: eliminaciongaussiana

Mensaje  Jesteban el Mar Mayo 03, 2011 10:51 am

luisportilla escribió:
Jesteban escribió:
Código:

double&#91;&#93;&#91;&#93;  sustitucion&#40;double&#91;&#93;&#91;&#93; C&#41;&#123;
        int i,j,n;
        n=C.length;//num filas
        double t; //temporal
        double&#91;&#93;&#91;&#93; x=new double&#91;n&#93;&#91;1&#93;;
        for&#40;i=n-1;i>=0;i--&#41;&#123;//for para la regresion
            t=0;
            for&#40;j=i+1;j<n;j++&#41;&#123;//for para la sumatoria
                t=t+C&#91;i&#93;&#91;j&#93;*x&#91;j&#93;&#91;0&#93;;
                &#125;
      x&#91;i&#93;&#91;0&#93;=&#40;C&#91;i&#93;&#91;n&#93;-t&#41;/C&#91;i&#93;&#91;i&#93;;
         
        &#125;
        return x;
&#125;

¿que hago si estoy buscando la matris inversa? esta funcion
regresa un vector



luis esta funcion es para hallar los valores de los (x0,x1,...xn) obtenidos de la matris triangular efectuando sustitucion regresiva.

Jesteban

Mensajes : 12
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

En clase-eliminacion

Mensaje  wilmer cordoba el Miér Mayo 04, 2011 10:10 pm

Código:
/*
public class metodos {
void mostrar(double x[]){
int n=x.length;
for(int i=0;i<n;i++){
System.out.print(x[i]+"\n");
}
}
void mostrar(double A[][]){
int n=A.length;//numero de filas
int m=A[0].length;//numero de columnas
for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
System.out.print(A[i][j]+"\t");
    }
    System.out.println();
}
}
double[][] transpuesta(double A[][]){
int n=A.length;//numero de filas
int m=A[0].length;//numero de columnas
double B[][]=new double[m][n];
for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
B[j][i]=A[i][j];
    }
}
return B;}
double[][] mul(double A[][],double B[][]){
    double suma;
    int m=A.length;//numero de filas de A
    int n=A[0].length;//numero de columnas de A
    int p=B[0].length;//numero de columnas de B
double C[][]=new double[m][p];
for(int i=0;i<m;i++){
    for(int j=0;j<p;j++){
        suma=0;
        for(int t=0;t<n;t++){
        suma=suma+A[i][t]*B[t][j];
        }
        C[i][j]=suma;
    }
}
return C;}

double[][] exp(double A[][],int n){
    double B[][]=A;
    for(int i=1;i<n;i++){
    B=mul(A,B);
    }
return B; }
double[][] sum(double A[][],double B[][]){
int n=A.length;
int m=A[0].length;
double[][] C=new double[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
C[i][j]=A[i][j]+B[i][j];
}
}
return C;

}
public double[][] ampliar(double[][]A,double[][]B){
int n=A.length;
int m=A[0].length;
int p=B[0].length;
double D[][]=new double[n][m+p];
for(int i=0;i<n;i++){
    for(int j=0;j<m+p;j++){
        if(j<m){D[i][j]=A[i][j];}
        else{D[i][j]=B[i][j-m];}
    }
}return D;}
public double[][] separar(double[][]C){
int n=C.length;
double B[][]=new double[n][n];
for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
      B[i][j]=C[i][j+n];
    }
}return B;}

void permutar(double[][]A,int k, int l){
int n=A[0].length;double p=0;
for(int i=0;i<n;i++){
p=A[k][i];
A[k][i]=A[l][i];
A[l][i]=p;
}}

public int buscar(double[][]A,int i){
int n=A.length;
int s=0;
for(int j=i+1;j<n;j++){
    if(A[j][i]==0){}
    else{s=j;}
}
return s;
}
void operfila(double[][] A,double alfa,int i, int j){
int m=A[0].length;
for(int k=0;k<m;k++){
A[i][k]=A[i][k]-alfa*A[j][k];
}
}
void operfila2(double[][] A,double alfa, int j){
int m=A[0].length;
for(int k=0;k<m;k++){
A[j][k]=A[j][k]/alfa;
}
}
void triangular2(double[][]A){
int n=A.length;
    for(int p=0;p<n-1;p++){
        if(A[p][p]==0){permutar(A,p,buscar(A,p));}
        for(int j=p+1;j<n;j++){
            operfila(A,A[j][p]/A[p][p],j,p);
        }
    }
}
void triangular3(double[][]A){
int n=A.length;
    for(int p=1;p<n;p++){
        for(int j=n-p-1;j>=0;j--){
            operfila(A,A[j][n-p]/A[n-p][n-p],j,n-p);
        }
    }
}
void pivote(double D[][]){
 for(int p=0;p<D.length;p++){
 operfila2(D,D[p][p],p);
 }
}
double[][]  sustitucion(double[][] C){
        int i,j,n;
        n=C.length;//num filas
        double t; //temporal
        double[][] x=new double[n][1];
        for(i=n-1;i>=0;i--){//for para la regresion
            t=0;
            for(j=i+1;j<n;j++){//for para la sumatoria
                t=t+C[i][j]*x[j][0];
                }
      x[i][0]=(C[i][n]-t)/C[i][i];

        }
        return x;
}
}

wilmer cordoba

Mensajes : 10
Fecha de inscripción : 21/02/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: eliminaciongaussiana

Mensaje  Contenido patrocinado Hoy a las 11:21 am


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.