Está en la página 1de 4

package src;

import java.lang.Math;
import java.io.*;
//Clase ProyectoJava
public class Proyectojava{
//Metodo Constructor
public static void main(String args[]){
Proyectojava Proyecto = new Proyectojava();
Proyecto.menu(); //solo se manda a llamar a menu desde aqui, ya que menu llama a
los demas metodos posteriromente
}
//(6) LU
public void MetodoLu(){
int i,j;
double Y1,Y2,Y3,X1,X2,X3;
double A[][] = new double [3][3];
double L[][] = new double [3][3];
double U[][] = new double [3][3];
double B[] = new double [3];
System.out.println("\t\t\t\"METODO DE LU 3 ECUACIONES\"");
System.out.println("Ingrese coeficientes d");
for(i=0;i<3;i++)
{
System.out.println("Renglon "+(i+1));
for(j=0;j<3;j++)
{
System.out.println(" Ingrese a "+(i+1)+""+(j+1));
A[i][j]=lee();
}
}
System.out.println("Ingrese los terminos independientes");
for(i=0;i<3;i++){
System.out.println("Termino "+(i+1));
B[i]=lee();
}
for(i=0;i<3;i++){
L[i][0]=A[i][0];
U[i][i]=1;
}
U[0][1]=A[0][1]/L[0][0];
L[1][1]=A[1][1]-L[1][0]*U[0][1];
L[2][1]=A[2][1]-L[2][0]*U[0][1];
U[0][2]=A[0][2]/L[0][0];
U[1][2]=(A[1][2]-L[1][0]*U[0][2])/L[1][1];
L[2][2]=A[2][2]-L[2][0]*U[0][2]-L[2][1]*U[1][2];
Y1=B[0]/L[0][0];
Y2=(B[1]-L[1][0]*Y1)/L[1][1];
Y3=(B[2]-L[2][0]*Y1-L[2][1]*Y2)/L[2][2];
X3=Y3;
X2=Y2-U[1][2]*X3;
X1=Y1-U[0][1]*X2-U[0][2]*X3;
System.out.println("El resultado es:\nx0= "+X1+" \nx1= " +X2+" \nx2= " +X3);
}
//(7) Interpolacion Newton
public void MetodoInterNewton(){
double a[][] = new double [5][2];

double x,y,fx1x0,fx2x1,fx3x2,fx4x3,fx2x1x0,fx3x2x1,fx4x3x2,fx3x2x1x0,fx4x3x2x1,f
x4x3x2x1x0;
int i;
System.out.println("\t\t\t\"INTERPOLACION DE DIFERENCIAS DE NEWTON P/ 5 PTOS.\""
);
System.out.println("Valor a interpolar: ");
x=lee();
System.out.println("Dame los 5 pares de puntos");
for(i=0;i<5;i++){
System.out.println("Dame x "+i);
a[i][0]=lee();
System.out.println("Dame f(x) "+i);
a[i][1]=lee();
}
fx1x0=(a[1][1]-a[0][1])/(a[1][0]-a[0][0]);
fx2x1=(a[2][1]-a[1][1])/(a[2][0]-a[1][0]);
fx3x2=(a[3][1]-a[2][1])/(a[3][0]-a[2][0]);
fx4x3=(a[4][1]-a[3][1])/(a[4][0]-a[3][0]);
fx2x1x0=(fx2x1-fx1x0)/(a[2][0]-a[0][0]);
fx3x2x1=(fx3x2-fx2x1)/(a[3][0]-a[1][0]);
fx4x3x2=(fx4x3-fx3x2)/(a[4][0]-a[2][0]);
fx3x2x1x0=(fx3x2x1-fx2x1x0)/(a[3][0]-a[0][0]);
fx4x3x2x1=(fx4x3x2-fx3x2x1)/(a[3][0]-a[0][0]);
fx4x3x2x1x0=(fx4x3x2x1-fx3x2x1x0)/(a[4][0]-a[0][0]);
y=a[0][1]+fx1x0*(x-a[0][0])+fx2x1x0*(x-a[0][0])*(x-a[1][0])+fx3x2x1x0*(x-a[0][0]
)*(x-a[1][0])*(x-a[2][0])+fx4x3x2x1x0*(x-a[0][0])*(x-a[1][0])*(x-a[2][0])*(x-a[3
][0]);
System.out.println("f(x) en ese punto es: "+y);
}
//(8) Interpolacion Lagrange
public void MetodoInterLagrange(){
int n,i;
double x,y;
double a[][] = new double [4][2];
System.out.println("\t\t\t\"METODO DE INTERPOLACION LAGRANGE 2-4 PTOS.\"");
do{
System.out.println("Dame el numero de puntos entre 2 y 4");
n=leeint();
}while(n<2 || n>4);{
System.out.println("Dame los pares de puntos");
for(i=0;i<n;i++) System.out.println("Dame x "+i);
a[i][0]=lee();
System.out.println("0Dame f(x) "+i);
a[i][1]=lee();
}
System.out.println("Dame el valor a interpolar ");
System.out.println();
x=lee();
switch(n){
case 2:
y=(((((x-a[1][0])*a[0][1])/(a[0][0]-a[1][0]))+(((x-a[0][0])*a[1][1])/(a[1][0]-a[
0][0]))));
System.out.println("f(x) en ese punto es: "+y);
break;
case 3:
y=((x-a[1][0])*(x-a[2][0])*a[0][1])/((a[0][0]-a[1][0])*(a[0][0]-a[2][0]))+((x-a[
0][0])*(x-a[2][0])*a[1][1])/((a[1][0]-a[0][0])*(a[1][0]-a[2][0]))+((x-a[1][0])*(
(x-a[0][0])*a[2][1])/((a[2][0]-a[0][0])*(a[2][0]-a[1][0])));
System.out.println("f(x) en ese punto es: "+y);

break;
case 4:
y=((x-a[1][0])*(x-a[3][0])*(x-a[2][0])*a[0][1])/((a[0][0]-a[1][0])*(a[0][0]-a[2]
[0])*(a[0][0]-a[3][0]))+((x-a[0][0])*(x-a[2][0])*(x-a[3][0])*a[1][1])/((a[1][0]a[0][0])*(a[1][0]-a[2][0])*(a[1][0]-a[3][0]))+((x-a[0][0])*(x-a[1][0])*((x-a[3][
0])*a[2][1])/((a[2][0]-a[0][0])*(a[2][0]-a[1][0])*(a[2][0]-a[3][0]))+((x-a[0][0]
)*(x-a[1][0])*((x-a[2][0])*a[
3][1])/((a[3][0]-a[0][0])*(a[3][0]-a[1][0])*(a[3][0]-a[2][0]))));
System.out.println("f(x) en ese punto es: "+y);
break;
default:
System.out.println("INVALIDO");
break;
}
}
//para leer desde teclado
public double lee(){
double num;
try{
InputStreamReader isr = new InputStreamReader (System.in);
BufferedReader br = new BufferedReader(isr);
String sdato;
sdato = br.readLine();
num = Double.parseDouble(sdato);
}
catch(IOException ioe){
num=0.0;
}
return num;
}
//para leer un entero
public int leeint(){
int num;
try{
InputStreamReader isr = new InputStreamReader (System.in);
BufferedReader br = new BufferedReader(isr);
String sdato;
sdato = br.readLine();
num = Integer.parseInt(sdato);
}
catch(IOException ioe){
num=0;
}
return num;
}
//para salir del programa
public int Fuera(){
int sal;
System.out.println("\n\n\nSI DESEAS OTRO METODO PRESIONA [1]");
sal=leeint();
return sal;
}
//despliega menu
public void menu(){
int a;
int p;

do{
do{
System.out.println("\n\n\t\t\tMETODOS NUMERICOS\n\n");
System.out.println("\t1.-Biseccion\n\t2.-Newton-Raphson\n\t3.-Gauss\n\t4.-GaussSeidel\n\t5.-Gauss-Jordan\n\t6.-LU\n\t7.-Interpolacion Newton\n\t8.-Interpolacio
n Lagrange");
System.out.println("\n\nEscoja el numero del metodo que desea usar: ");
a=leeint();
}while(a<1 || a>8);
switch(a){
case 1:
System.out.println("opcion invalida");
p=Fuera();
break;
case 2:
System.out.println("opcion invalida");
p=Fuera();
break;
case 3:
System.out.println("opcion invalida");
p=Fuera();
break;
case 4:
System.out.println("opcion invalida");
p=Fuera();
break;
case 5:
System.out.println("opcion invalida");
p=Fuera();
break;
case 6:
MetodoLu();
p=Fuera();
break;
case 7:
MetodoInterNewton();
p=Fuera();
break;
case 8:
MetodoInterLagrange();
p=Fuera();
break;
default:
System.out.println("Opcion incorrecta");
p=1;
break;
}
}while(p==1);
}
}

También podría gustarte