Some codes in java
Upcoming SlideShare
Loading in...5
×
 

Some codes in java

on

  • 3,288 views

 

Statistics

Views

Total Views
3,288
Views on SlideShare
3,285
Embed Views
3

Actions

Likes
0
Downloads
144
Comments
0

1 Embed 3

http://numericalmethods-mfgt.blogspot.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Some codes in java Some codes in java Document Transcript

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