Some codes in java

4,334 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,334
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
211
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Some codes in java

  1. 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. 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. 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. 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. 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. 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. 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. 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"); } } }

×