Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2014, 13:31
Ojimetro
 
Fecha de Ingreso: noviembre-2014
Mensajes: 13
Antigüedad: 9 años, 6 meses
Puntos: 0
Exclamación Como escribir una fórmula

Me dan el siguiente sumatorio:

arctangente (x)= sumatorio de (((-1)^(i-1))*x^(2i-1))/(2i-1)
arriba del sumatorio n y abajo i=0

y el enunciado que me dan es:

Este desarrollo en serie solo funciona si x está entre -1.0 y 1.0.
El método recibe como parámetros los valores x y n. Si x no está entre -1.0 y 1.0 o n es menor que uno retornar Double.NaN. En caso contrario calcular y retornar el valor del sumatorio. Para hacer más eficiente el cálculo no utilizar la operación "elevar a". Observar que de la iteración i a la siguiente:
• el numerador cambia de signo alternando entre +1 y -1
• la potencia de x se obtiene multiplicando a la anterior por x2


Mi problema es que no se como poner el -1 elevado a i-1 sin utilizar Math.pow



Código HTML:
/**
 * Write a description of class Ejercicio3 here.
 * 
 * @author (Ojimetro) 
 * @version (a version number or a date)
 */
public class Ejercicio3
{
   public String calculador(double x,double n)
   {
       String arcotangente;
       double suma=0;
       
       if(x>=-1.0 && x<=1.0 && n>1)
       {
          for (double i=0; i<=n; i++)
          {
           suma= suma+((Math.pow(-1.0,i-1.0)/(2.0*i-1.0)))*(Math.pow(-1.0,i-1.0)/(2.0*i-1.0)*x*x);   
          }
          double anguloRadianes = Math.atan(suma);
          double anguloGrados = Math.toDegrees(anguloRadianes);         
          return (String.valueOf(anguloGrados));
       }
       else
       {
           arcotangente="Double.NaN";
           return arcotangente;
       }    
   }
}