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