SlideShare ist ein Scribd-Unternehmen logo
1 von 8
UNIVERSIDAD INDUSTRIAL DE SANTANDER
        FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
         ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                          Métodos Numéricos




SOME CODES
    IN JAVA
UNIVERSIDAD INDUSTRIAL DE SANTANDER
                                      FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
                                       ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                                                        Métodos Numéricos




                                       FACTORIZACION LU


package factorizacionlu;
import javax.swing.JOptionPane;
public class factorizacionLU {
  public static void main(String[] args) {
     JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL
METODO DE FACTORIZACION LU");
     int i,j,h,k,n,s;
     double c,suma;
     double m[][];
     double l[][];
     double r[];
     double z[];
     double x[];
     n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas"));
     m= new double [n][n];
     l= new double [n][n];
     r= new double [n];
     x= new double [n];
     z= new double [n];
     //RECUERDE QUE LOS ELEMENTOS DE LA DIAGONAL PRINCIPAL DEBEN SER
DIFERENTES DE CERO
     for(i=0;i<=n-1;i++){
      k=i+1;
      r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de
soluciones"));
      for(j=0;j<=n-1;j++){
          h=j+1;
          m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento"+k+h+" de la
matriz de coeficientes "));
          //LLENADO DE LA MATRIZ IDENTICA
          if(i==j){
               l[i][j]=1;
          }
          else{
               l[i][j]=0;
          }
       }
     }
     //EL SIGUIENTE CICLO REALIZA EL PROCESO DE FACTORIZACION DIVIDE LA MATRIZ DE
COEFICIENTES EN 2 MATRICES
      for(i=0;i<n-1;i++){
         for(j=i+1;j<n;j++){
             c=(m[j][i])/m[i][i];
             for(s=0;s<n;s++){
                 m[j][s]=m[j][s]-c*m[i][s];
             }
             l[j][i]=c;
        }
    }
UNIVERSIDAD INDUSTRIAL DE SANTANDER
                                          FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
                                           ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                                                            Métodos Numéricos


       for(i=0;i<n;i++){
           suma=r[i];
           for(j=i;j>=0;j--){
              if(i==j){
                  suma=suma/l[i][j];
              }
              else{
                  suma=suma-((z[j]*l[i][j])/l[i][i]);
              }
           }
           z[i]=suma;
       }
        for(i=n-1;i>=0;i--){
            suma=z[i];
            for(j=i;j<n;j++){
               if(i==j){
                  suma=suma/m[i][j];
              }
              else{
                  suma=suma-((x[j]*m[i][j])/m[i][i]);
              }
           }
           x[i]=suma;
      }
         for(i=0;i<n;i++){
          k=i+1;
          JOptionPane.showMessageDialog(null,"el valor de la incognita x"+k+" es "+x[i]);
     }
    }
}
UNIVERSIDAD INDUSTRIAL DE SANTANDER
                                       FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
                                        ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                                                         Métodos Numéricos


                                                    GAUSS

package gauss;
import javax.swing.JOptionPane;
public class gauss {
  public static void main(String[] args) {
      JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL
METODO DE GAUSS");
      int i,j,s,k,h,n,x,y;
      double d,c;
      double m[][];
      double r[];
       //Recuerde que el numero de incognitas y de ecuaciones deben ser iguales
      n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas"));
      m= new double [n][n];
      r= new double [n];
      //RECUERDE QUE LOS ELEMENTOS DE LA DIAGONAL PRINCIPAL DE LA MATRIZ DE
COEFICIENTES DEBEN SER DIFERENTES A CERO
      for(i=0;i<=n-1;i++){
       k=i+1;
       r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de
soluciones"));
       for(j=0;j<=n-1;j++){
            h=j+1;
            m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento"+k+h+" de la
matriz de coeficientes "));
        }
   }
    for(i=0;i<=n-1;i++){
        d=m[i][i];
        for(s=0;s<=n-1;s++){
            m[i][s]=((m[i][s])/d);
        }
        r[i]=((r[i])/d);
        for(x=0;x<=n-1;x++){
            if(i!=x){
               c=m[x][i];
               for(y=0;y<=n-1;y++){
                  m[x][y]=m[x][y]-c*m[i][y];
               }
                r[x]=r[x]-c*r[i];
            }
        }
    }
    for(i=0;i<=n-1;i++){
        k=i+1;
        JOptionPane.showMessageDialog(null,"el valor de la incognita x"+k+" es "+r[i]);
   }
  }

}
UNIVERSIDAD INDUSTRIAL DE SANTANDER
                                        FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
                                         ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                                                          Métodos Numéricos


                                           GAUSS JORDAN

package gaussjordan;
import javax.swing.JOptionPane;
public class gaussjordan {
  public static void main(String[] args) {
     JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL
METODO DE GAUSS-JORDAN");
     int i,j,s,k,h,n;
     double d;
     double m[][];
     double r[];
     double x[];
      //Recuerde que el numero de incognitas y de ecuaciones deben ser iguales
     n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas"));
     m= new double [n][n];
     r= new double [n];
     x= new double [n];
     //RECUERDE QUE LA DIAGONAL PRINCIPAL DE LA MATRIZ DE COEFICIENTES NO PUEDE
TENER CEROS
     for(i=0;i<=n-1;i++){
      k=i+1;
      r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de
soluciones"));
      x[i]=0;
      for(j=0;j<=n-1;j++){
           h=j+1;
           m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+h+" de la
matriz de coeficientes"));
       }
   }
     //Este ciclo convierte la triangular inferior en ceros
     for(i=0;i<n;i++){
         for(j=i;j<n;j++){
             if(i==j){
               d=m[i][j];
               for(s=0;s<n;s++){
                   m[i][s]=((m[i][s])/d);
               }
               r[i]=((r[i])/d);
             }
             else{
               d=m[j][i];
               for(s=0;s<n;s++){
                   m[j][s]=m[j][s]-(d*m[i][s]);
               }
               r[j]=r[j]-(d*r[i]);
             }
         }
     }

    //A continuacion se calcula el valor de las ingognitas
UNIVERSIDAD INDUSTRIAL DE SANTANDER
                                            FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
                                             ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                                                              Métodos Numéricos


         for(i=n-1;i>=0;i--){
            double y=r[i];
            for(j=n-1;j>=i;j--){
             y=y-x[j]*m[i][j];
            }
            x[i]=y;
          }
          for(i=0;i<n;i++){
           k=i+1;
           JOptionPane.showMessageDialog(null,"el valor de la incognita x"+k+" es "+x[i]);
     }
    }
}
UNIVERSIDAD INDUSTRIAL DE SANTANDER
                                       FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
                                        ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                                                         Métodos Numéricos


                                            GAUSS SEIDEL

package gaussseidel2;
import javax.swing.JOptionPane;
public class gaussseidel2 {
  public static void main(String[] args) {
     JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL
METODO DE GAUSS-SEIDEL");
   int n,k,i,j,h,band,siga;
   double m[][];
   double r[];
   double x[];
   double y[];
   double error[];
   double suma,l,tol;
    //Recuerde que el numero de incognitas y de ecuaciones deben ser iguales
   n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas"));
   //recuerde que entre mas pequeña la tolerancia mas exacto sera el calculo
   tol=Double.parseDouble(JOptionPane.showInputDialog("ingrese la tolerancia "));
   m= new double [n][n];
   r= new double [n];
   x= new double [n];
   y= new double [n];
   error= new double [n];
   for(i=0;i<=n-1;i++){
       k=i+1;
       r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de
soluciones"));
       x[i]=0; y[i]=0;
       for(j=0;j<=n-1;j++){
            h=j+1;
            m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento"+k+h+" de la
matriz de coeficientes"));
        }
   }
   suma=0; band=0;
   for(i=0;i<n;i++){
   while(Math.abs(m[i][i])>suma && band<n){
       band=band+1;
       suma=0;
       for(j=0;j<n;j++){
           if(i!=j){
              suma=suma+m[i][j];
           }
       }
    }
   }
   if(band==n){
       siga=n-1;
       int iter=0;
       while(siga!=n){
           iter=iter+1;
UNIVERSIDAD INDUSTRIAL DE SANTANDER
                                           FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS
                                            ESCUELA DE INGENIERÍA DE PETRÓLEOS
                                                                             Métodos Numéricos


       for(i=0;i<n;i++){
          l=0;
          for(j=0;j<n;j++){
              if(i==j){
                 l=l+r[i]/m[i][j];
              }
               else{
                   l=l-((m[i][j]*x[j])/m[i][i]);
              }
          }
           x[i]=l;
           }
       for(i=0;i<n;i++){
           error[i]=Math.abs((x[i]-y[i])/x[i])*100;
           y[i]=x[i];
       }
           siga=0;
       for(i=0;i<n;i++){
          if(error[i]<tol){
            siga=siga+1;
       }

       }

         }
   h=0;
   for(i=0;i<n;i++){
      h=h+1;
      JOptionPane.showMessageDialog(null,"el valor aproximado de la incognita x"+h+" es "+x[i]);
   }
   JOptionPane.showMessageDialog(null,"El numero total de iteraciones fue de "+iter);
  }
    else {
       JOptionPane.showMessageDialog(null,"No se puede solucionar por este metodo debido a que la
matriz de coeficientes no es diagonalmente dominante");
    }
}
}

Weitere ähnliche Inhalte

Was ist angesagt?

Introducción al Cálculo Integral
Introducción al Cálculo IntegralIntroducción al Cálculo Integral
Introducción al Cálculo IntegralNerio Borges
 
Correccion del la prueba de mfsi
Correccion del la prueba de mfsiCorreccion del la prueba de mfsi
Correccion del la prueba de mfsiPeque Uli
 
Metodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por PartesMetodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por PartesLISHAVELY
 
Introduccion integral indefinida
Introduccion integral indefinidaIntroduccion integral indefinida
Introduccion integral indefinidaErick Guaman
 
Tabla de integrales indefinidas uney
Tabla de integrales indefinidas uneyTabla de integrales indefinidas uney
Tabla de integrales indefinidas uneyJulio Barreto Garcia
 
INTEGRAL INDEFINIDA Y SUS APLICACIONES
INTEGRAL INDEFINIDA Y SUS APLICACIONESINTEGRAL INDEFINIDA Y SUS APLICACIONES
INTEGRAL INDEFINIDA Y SUS APLICACIONESGary Sv
 
Operaciones Con Funciones
Operaciones Con FuncionesOperaciones Con Funciones
Operaciones Con FuncionesAngel Carreras
 
funciones Byron aprendiendo en Green inferno University
funciones Byron aprendiendo en Green inferno University funciones Byron aprendiendo en Green inferno University
funciones Byron aprendiendo en Green inferno University Tarcicio Bocacho
 
Método de integración por Partes
Método de integración por PartesMétodo de integración por Partes
Método de integración por PartesVanee Rivas
 
Ejercicios resueltos de integrales indefinidas
Ejercicios resueltos de integrales indefinidasEjercicios resueltos de integrales indefinidas
Ejercicios resueltos de integrales indefinidasasble
 
Apuntes formulas fundamentales_de_integración
Apuntes formulas fundamentales_de_integraciónApuntes formulas fundamentales_de_integración
Apuntes formulas fundamentales_de_integraciónAngel CaVa
 
Tutorial
TutorialTutorial
Tutorialuneve
 

Was ist angesagt? (20)

Introducción al Cálculo Integral
Introducción al Cálculo IntegralIntroducción al Cálculo Integral
Introducción al Cálculo Integral
 
Correccion del la prueba de mfsi
Correccion del la prueba de mfsiCorreccion del la prueba de mfsi
Correccion del la prueba de mfsi
 
14 integral definida
14 integral definida14 integral definida
14 integral definida
 
Metodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por PartesMetodo Tabular Integracion Por Partes
Metodo Tabular Integracion Por Partes
 
Diferenciales
DiferencialesDiferenciales
Diferenciales
 
Trabajo mate 2, integrales
Trabajo mate 2, integralesTrabajo mate 2, integrales
Trabajo mate 2, integrales
 
Integrales indefinidas
Integrales indefinidasIntegrales indefinidas
Integrales indefinidas
 
Mat 350 ejemplos integracion
Mat 350  ejemplos  integracionMat 350  ejemplos  integracion
Mat 350 ejemplos integracion
 
Introduccion integral indefinida
Introduccion integral indefinidaIntroduccion integral indefinida
Introduccion integral indefinida
 
Tabla de integrales indefinidas uney
Tabla de integrales indefinidas uneyTabla de integrales indefinidas uney
Tabla de integrales indefinidas uney
 
INTEGRAL INDEFINIDA Y SUS APLICACIONES
INTEGRAL INDEFINIDA Y SUS APLICACIONESINTEGRAL INDEFINIDA Y SUS APLICACIONES
INTEGRAL INDEFINIDA Y SUS APLICACIONES
 
Calcuclo integral pasito a paso i
Calcuclo integral pasito a paso iCalcuclo integral pasito a paso i
Calcuclo integral pasito a paso i
 
Operaciones Con Funciones
Operaciones Con FuncionesOperaciones Con Funciones
Operaciones Con Funciones
 
Factoreo 3
Factoreo 3Factoreo 3
Factoreo 3
 
funciones Byron aprendiendo en Green inferno University
funciones Byron aprendiendo en Green inferno University funciones Byron aprendiendo en Green inferno University
funciones Byron aprendiendo en Green inferno University
 
07 Integrales por partes
07 Integrales por partes07 Integrales por partes
07 Integrales por partes
 
Método de integración por Partes
Método de integración por PartesMétodo de integración por Partes
Método de integración por Partes
 
Ejercicios resueltos de integrales indefinidas
Ejercicios resueltos de integrales indefinidasEjercicios resueltos de integrales indefinidas
Ejercicios resueltos de integrales indefinidas
 
Apuntes formulas fundamentales_de_integración
Apuntes formulas fundamentales_de_integraciónApuntes formulas fundamentales_de_integración
Apuntes formulas fundamentales_de_integración
 
Tutorial
TutorialTutorial
Tutorial
 

Ähnlich wie MétodosNuméricosUIS

Ähnlich wie MétodosNuméricosUIS (20)

Matrices c++
Matrices c++Matrices c++
Matrices c++
 
Informe 2 da unidad lp
Informe 2 da unidad lpInforme 2 da unidad lp
Informe 2 da unidad lp
 
Netsbeans
NetsbeansNetsbeans
Netsbeans
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
Practica 9
Practica 9Practica 9
Practica 9
 
Practica 9
Practica 9Practica 9
Practica 9
 
PROGRAMA
PROGRAMAPROGRAMA
PROGRAMA
 
Taller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglosTaller de repaso de metodos y arreglos
Taller de repaso de metodos y arreglos
 
Laboratorio de algoritmos
Laboratorio de algoritmosLaboratorio de algoritmos
Laboratorio de algoritmos
 
Correcion de mfsi
Correcion de mfsiCorrecion de mfsi
Correcion de mfsi
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
Correcion de mfsi
Correcion de mfsiCorrecion de mfsi
Correcion de mfsi
 
11
1111
11
 
Java problems
Java problemsJava problems
Java problems
 
Codigo ejercicios
Codigo ejerciciosCodigo ejercicios
Codigo ejercicios
 
Practica 9
Practica 9Practica 9
Practica 9
 
Compilación con DOS.
Compilación con DOS.Compilación con DOS.
Compilación con DOS.
 
Jorge informe tecnico
Jorge informe tecnicoJorge informe tecnico
Jorge informe tecnico
 
Recuperacion programas
Recuperacion programasRecuperacion programas
Recuperacion programas
 
Programacion ii
Programacion iiProgramacion ii
Programacion ii
 

Mehr von marcelafernandagarzon (10)

Some methods for small systems of equations solutions
Some methods for small systems of equations solutionsSome methods for small systems of equations solutions
Some methods for small systems of equations solutions
 
Matrices
MatricesMatrices
Matrices
 
Taller
TallerTaller
Taller
 
Clase martes 18 de mayo
Clase martes 18 de mayoClase martes 18 de mayo
Clase martes 18 de mayo
 
Clase martes 18 de mayo
Clase martes 18 de mayoClase martes 18 de mayo
Clase martes 18 de mayo
 
Series contribution to the numerical approximations
Series contribution to the numerical approximationsSeries contribution to the numerical approximations
Series contribution to the numerical approximations
 
Error
ErrorError
Error
 
Aproximacion numerica
Aproximacion numericaAproximacion numerica
Aproximacion numerica
 
Ley de darcy
Ley de darcyLey de darcy
Ley de darcy
 
Modelamiento
ModelamientoModelamiento
Modelamiento
 

MétodosNuméricosUIS

  • 1. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos SOME CODES IN JAVA
  • 2. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos FACTORIZACION LU package factorizacionlu; import javax.swing.JOptionPane; public class factorizacionLU { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL METODO DE FACTORIZACION LU"); int i,j,h,k,n,s; double c,suma; double m[][]; double l[][]; double r[]; double z[]; double x[]; n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas")); m= new double [n][n]; l= new double [n][n]; r= new double [n]; x= new double [n]; z= new double [n]; //RECUERDE QUE LOS ELEMENTOS DE LA DIAGONAL PRINCIPAL DEBEN SER DIFERENTES DE CERO for(i=0;i<=n-1;i++){ k=i+1; r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de soluciones")); for(j=0;j<=n-1;j++){ h=j+1; m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento"+k+h+" de la matriz de coeficientes ")); //LLENADO DE LA MATRIZ IDENTICA if(i==j){ l[i][j]=1; } else{ l[i][j]=0; } } } //EL SIGUIENTE CICLO REALIZA EL PROCESO DE FACTORIZACION DIVIDE LA MATRIZ DE COEFICIENTES EN 2 MATRICES for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ c=(m[j][i])/m[i][i]; for(s=0;s<n;s++){ m[j][s]=m[j][s]-c*m[i][s]; } l[j][i]=c; } }
  • 3. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos for(i=0;i<n;i++){ suma=r[i]; for(j=i;j>=0;j--){ if(i==j){ suma=suma/l[i][j]; } else{ suma=suma-((z[j]*l[i][j])/l[i][i]); } } z[i]=suma; } for(i=n-1;i>=0;i--){ suma=z[i]; for(j=i;j<n;j++){ if(i==j){ suma=suma/m[i][j]; } else{ suma=suma-((x[j]*m[i][j])/m[i][i]); } } x[i]=suma; } for(i=0;i<n;i++){ k=i+1; JOptionPane.showMessageDialog(null,"el valor de la incognita x"+k+" es "+x[i]); } } }
  • 4. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos GAUSS package gauss; import javax.swing.JOptionPane; public class gauss { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL METODO DE GAUSS"); int i,j,s,k,h,n,x,y; double d,c; double m[][]; double r[]; //Recuerde que el numero de incognitas y de ecuaciones deben ser iguales n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas")); m= new double [n][n]; r= new double [n]; //RECUERDE QUE LOS ELEMENTOS DE LA DIAGONAL PRINCIPAL DE LA MATRIZ DE COEFICIENTES DEBEN SER DIFERENTES A CERO for(i=0;i<=n-1;i++){ k=i+1; r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de soluciones")); for(j=0;j<=n-1;j++){ h=j+1; m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento"+k+h+" de la matriz de coeficientes ")); } } for(i=0;i<=n-1;i++){ d=m[i][i]; for(s=0;s<=n-1;s++){ m[i][s]=((m[i][s])/d); } r[i]=((r[i])/d); for(x=0;x<=n-1;x++){ if(i!=x){ c=m[x][i]; for(y=0;y<=n-1;y++){ m[x][y]=m[x][y]-c*m[i][y]; } r[x]=r[x]-c*r[i]; } } } for(i=0;i<=n-1;i++){ k=i+1; JOptionPane.showMessageDialog(null,"el valor de la incognita x"+k+" es "+r[i]); } } }
  • 5. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos GAUSS JORDAN package gaussjordan; import javax.swing.JOptionPane; public class gaussjordan { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL METODO DE GAUSS-JORDAN"); int i,j,s,k,h,n; double d; double m[][]; double r[]; double x[]; //Recuerde que el numero de incognitas y de ecuaciones deben ser iguales n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas")); m= new double [n][n]; r= new double [n]; x= new double [n]; //RECUERDE QUE LA DIAGONAL PRINCIPAL DE LA MATRIZ DE COEFICIENTES NO PUEDE TENER CEROS for(i=0;i<=n-1;i++){ k=i+1; r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de soluciones")); x[i]=0; for(j=0;j<=n-1;j++){ h=j+1; m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+h+" de la matriz de coeficientes")); } } //Este ciclo convierte la triangular inferior en ceros for(i=0;i<n;i++){ for(j=i;j<n;j++){ if(i==j){ d=m[i][j]; for(s=0;s<n;s++){ m[i][s]=((m[i][s])/d); } r[i]=((r[i])/d); } else{ d=m[j][i]; for(s=0;s<n;s++){ m[j][s]=m[j][s]-(d*m[i][s]); } r[j]=r[j]-(d*r[i]); } } } //A continuacion se calcula el valor de las ingognitas
  • 6. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos for(i=n-1;i>=0;i--){ double y=r[i]; for(j=n-1;j>=i;j--){ y=y-x[j]*m[i][j]; } x[i]=y; } for(i=0;i<n;i++){ k=i+1; JOptionPane.showMessageDialog(null,"el valor de la incognita x"+k+" es "+x[i]); } } }
  • 7. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos GAUSS SEIDEL package gaussseidel2; import javax.swing.JOptionPane; public class gaussseidel2 { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"SOLUCION DE ECUACIONES LINEALES POR EL METODO DE GAUSS-SEIDEL"); int n,k,i,j,h,band,siga; double m[][]; double r[]; double x[]; double y[]; double error[]; double suma,l,tol; //Recuerde que el numero de incognitas y de ecuaciones deben ser iguales n=Integer.parseInt(JOptionPane.showInputDialog("ingrese el numero de incognitas")); //recuerde que entre mas pequeña la tolerancia mas exacto sera el calculo tol=Double.parseDouble(JOptionPane.showInputDialog("ingrese la tolerancia ")); m= new double [n][n]; r= new double [n]; x= new double [n]; y= new double [n]; error= new double [n]; for(i=0;i<=n-1;i++){ k=i+1; r[i]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento "+k+" del vector de soluciones")); x[i]=0; y[i]=0; for(j=0;j<=n-1;j++){ h=j+1; m[i][j]=Double.parseDouble(JOptionPane.showInputDialog("ingrese el elemento"+k+h+" de la matriz de coeficientes")); } } suma=0; band=0; for(i=0;i<n;i++){ while(Math.abs(m[i][i])>suma && band<n){ band=band+1; suma=0; for(j=0;j<n;j++){ if(i!=j){ suma=suma+m[i][j]; } } } } if(band==n){ siga=n-1; int iter=0; while(siga!=n){ iter=iter+1;
  • 8. UNIVERSIDAD INDUSTRIAL DE SANTANDER FACULTAD DE INGENIERÍAS FÍSICO-QUÍMICAS ESCUELA DE INGENIERÍA DE PETRÓLEOS Métodos Numéricos for(i=0;i<n;i++){ l=0; for(j=0;j<n;j++){ if(i==j){ l=l+r[i]/m[i][j]; } else{ l=l-((m[i][j]*x[j])/m[i][i]); } } x[i]=l; } for(i=0;i<n;i++){ error[i]=Math.abs((x[i]-y[i])/x[i])*100; y[i]=x[i]; } siga=0; for(i=0;i<n;i++){ if(error[i]<tol){ siga=siga+1; } } } h=0; for(i=0;i<n;i++){ h=h+1; JOptionPane.showMessageDialog(null,"el valor aproximado de la incognita x"+h+" es "+x[i]); } JOptionPane.showMessageDialog(null,"El numero total de iteraciones fue de "+iter); } else { JOptionPane.showMessageDialog(null,"No se puede solucionar por este metodo debido a que la matriz de coeficientes no es diagonalmente dominante"); } } }