Foros del Web » Programación para mayores de 30 ;) » Java »

Polinomio en Java

Estas en el tema de Polinomio en Java en el foro de Java en Foros del Web. Alguien que me ayude como hago para pedir el grado y coeficientes de un polinomio y despues aplicar dos metodos que es derivación en un ...
  #1 (permalink)  
Antiguo 19/11/2013, 03:17
 
Fecha de Ingreso: noviembre-2013
Mensajes: 3
Antigüedad: 10 años, 5 meses
Puntos: 0
Polinomio en Java

Alguien que me ayude como hago para pedir el grado y coeficientes de un polinomio y despues aplicar dos metodos que es derivación en un punto e integración en un intervalo.
Estos dos métodos ya los hice pero para una función específica ahora quiero generalizarlo.

Elaborar un programa que permita realizar la derivación númerica en un punto y la integración numérica en un intervalo sobre una función polinomica. El programa deberá solicitar los datos del polinomio (grado y coeficiente de cada uno de los términos del polinomio) al usuario, así como la opción de aplicar uno de los dos métodos sobre el polinomio, solicitando los datos pertinentes.

El programa deberá estar realizado de acuerdo a la arquitectura Modelo - Controlador vista en clase, con una clase Controladora y una o varias clases para resolver el modelo.

1. Seguir la estructura Modelo - Controlador.

2. Utilizar la herencia o el polimorfismo, así como la encapsulación de datos.

3. Entregar diagrama de clases.

4. Utilizar los métodos de derivación hacia adelante

5. Y de integración por Simpson 1/3.

Ya tengo los métodos de derivación e integración pero para una función en específico alguien me echa una mano
public class Modelo { //Creando la clase Modelo que contiene en este caso los métodos que pertencen al dominio del problema
double funcXAdelante, funcX, funcXAtras, delta, aproxAdelante, aproxAtras, aproxCentral;
public void diferenciaAdelante(){
this.aproxAdelante=((this.funcXAdelante-this.funcX)/(this.delta));
}
public void diferenciaAtras(){
this.aproxAtras=((this.funcX-this.funcXAtras)/(this.delta));
}
public void diferenciaCentral()
{
this.aproxCentral=((this.funcXAdelante-this.funcXAtras)/(2*this.delta));
}

}

public class Controlador //Creamos la clase Controlador que utilizará a la clase Modelo
{
double x,delta;
public double funcion(double x)
{
double res;
res = Math.pow(x,3)-(8*Math.pow(x,2))+(15*x)+3;
return res;
}
public void obtenDerivadas()
{
Modelo dn = new Modelo();
dn.delta = this.delta;
dn.funcXAdelante = this.funcion(this.x+this.delta);
dn.funcX = this.funcion(this.x);
dn.funcXAtras = this.funcion(this.x-this.delta);
dn.diferenciaAdelante();
dn.diferenciaAtras();
dn.diferenciaCentral();
System.out.println("La derivada en el punto:"+this.x+"\n");
System.out.println("utilizando diferencias hacia "+"adelante: "+dn.aproxAdelante);
System.out.println("utilizando diferencias hacia "+"atras:"+dn.aproxAtras);
System.out.println("utilizando diferencias"+" centrales: "+dn.aproxCentral);
}

public static void main (String args[]){
try{
Controlador ect = new Controlador();
ect.x = Double.parseDouble(args[0]);
ect.delta = Double.parseDouble(args[1]);
ect.obtenDerivadas();
}
catch (ArrayIndexOutOfBoundsException aioobe) {
System.out.println("Error!!");
System.out.println("Modo de uso en consola: java Controlador Digitarvalordex valordelatolerancia");
}
}
}

Este es el de Integración

public class ModeloIntegracion //Se crea la clase modelo que será la encargada de tener los metodos del dominio del problema de Intergación de Simpson
{
double fx[];
double h, sumaPar, sumaImpar, integral;
int n;

public ModeloIntegracion(int partes)
{
this.fx = new double[partes];
this.n = partes;
}

public void sumaImpares()
{
for(int i=1;i<(this.n-1);i++)
{
if(i%2==0)
continue;
this.sumaImpar=this.sumaImpar+this.fx[i];
}
}

public void sumaPares()
{
for(int i=2;i<(this.n-2);i++)
{
if(i%2!=0)
continue;
this.sumaPar=this.sumaPar+this.fx[i];
}
}

public void obtenArea()
{
this.sumaImpares();
this.sumaPares();
this.integral = (this.h/3)*(this.fx[0]+(4*this.sumaImpar)+(2*this.sumaPar)+this.fx[this.n-1]);
}
}

public class ControladorIntegracion //Se crea el controlador que tendrá dependencia de los métodos del modelo ya creado
{
double limInf, limSup;
int n;

public double f(double x)
{
double res;
res = (3*Math.pow(x,2))-(2*x)-8;
return res;
}

public void obtenIntegral()
{
ModeloIntegracion sut = new ModeloIntegracion(this.n);
sut.h = (this.limSup-this.limInf)/(this.n-1);

for(int i = 0;i<n;i++)
{
sut.fx[i]=this.f(this.limInf+(i*sut.h));
}
sut.obtenArea();

System.out.println("La integral en el intervalo: ("+this.limInf+","+this.limSup+") es \n");

System.out.println("Integral= "+sut.integral);
}

public static void main(String args[]){
try{/
ControladorIntegracion ecs = new ControladorIntegracion();
ecs.limInf = Double.parseDouble(args[0]);
ecs.limSup = Double.parseDouble(args[1]);
ecs.n = Integer.parseInt(args[2]);
ecs.obtenIntegral();
}
catch (ArrayIndexOutOfBoundsException aioobe) {
System.out.println("ERROR!!");
System.out.println("Modo de uso en consola: java ControladorIntegral limiteinferior limitesuperior numerodepuntos");
}
}
}

Saludos y gracias desde ya, orientenme porfavor.
  #2 (permalink)  
Antiguo 19/11/2013, 03:17
 
Fecha de Ingreso: noviembre-2013
Mensajes: 3
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Polinomio en Java

Que tal, ya logré leer el polinomio, ahora quiero hacerlo ocupando un switch case, para que entre a derivación o integración pero ya me atoré porque no sé que iría en la funcion main, así como le haría para el paso de parametro, porque ahora a la función que aplicaré cada metodo será el polinomio que me dé el usuario

Esta fue la que implemente para leer el Polinomio:

public class LeePolinomio
{
public static void main (String args[])
{
int grado;
int poli[];
grado=Integer.parseInt(args[0]);
poli= new int[grado+1];
for(int i=grado;i>=0;i--)
{
poli[i]=Integer.parseInt(args[i+1]);}
for(int i=grado;i>=0;i--)
System.out.print(poli[i]+"X^"+(i)+"+"+" ");
System.out.print("\n\n");
}
}

Y este es el que estaba haciendo con el switch case pero ya me quedé atorado en como poner los casos:

public class Principal
{
public static void main (String[] args){
menu();
}

private static void menu () {
Polinomio Poli = new Poli();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("");
System.out.println("Derivacion e Integracion de polinomios");
System.out.println("");
System.out.println("1- Derivación");
System.out.println("2- Integración");
System.out.println("3- Salir");
try{
String respuesta = br.readLine();
char resp = respuesta.charAt(0)
switch (resp) {
case '1':
case '2':
case '3': System.out.println("¡Hasta Luego!");
break;
default: System.out.println("Opcion incorrecta");
menu();
}
}
catch(Exception e1){
System.out.println("No ha ingresado ninguna opcion, Intentelo nuevamente");
menu();
}


}
}

Ayuda porfavor un consejo como le hago, es que ya me atoré ahi

Etiquetas: clase, metodo, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:22.