Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2012, 11:47
sergimbo
 
Fecha de Ingreso: noviembre-2009
Mensajes: 98
Antigüedad: 15 años, 1 mes
Puntos: 2
Evaluar un polinomio de forma directa en java

Se me plantea hacer un metodo para poder evaluar un polinomio mediante java.

Se considera que un polinomio p(x) de coeficientes reales se puede representar mediante un array de números reales, a (así, el primer elemento, a[0], es el término independiente del polinomio, el segundo elemento, a[1], es el coeficiente que multiplica a x, el tercer elemento , a[2], es el coeficiente que multiplica a x2;... etc

El metodo constructor del polinomio es el siguiente

Código:
    public Polinomio (int j) {
        a = new double[j+1];
        for (int i=0; i<=j; i++)
            a[i] = j+1-i;
    }
El algoritmo para evaluar el polinomio de forma directa es el siguiente
Código:
algoritmo evaluar_directo (a,x)
valor = a[0];
	desde i = 1 hasta n hacer
		y = x;
		desde j = 2 hasta i hacer 
			y = y * x;
		valor = valor + a[i] *y;
	devolver valor;
Y el que yo he desarrollado en funcion de eso es el siguiente :
Código:
    public double evaluar_directo (double x) {
        double valor = a[0];
        int n = a.length;
        double y = 0;
        for(int i = 1; i<=n; i++){
            y = x;
                for(int j = 2; j<=i; j++){
                    y = y * x;}
                valor = valor +a[i] * y;
            }
        return valor;
    }
El problema en cuestion esta que no entiendo la parte en rojo del bucle. 'j' nunca va a poder ser menor o igual que 'i', no?

No se si es que no estoy haciendo el metodo segun el algoritmo por eso necesito vuesta ayuda a ver si me podeis orientar un poco.

Saludos