Your SlideShare is downloading. ×
  • Like
Some codes in java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,088
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
160
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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