Ayuda con un programa de Java
Publicado por anom (1 intervención) el 14/10/2021 10:56:15
El problema dice lo siguiente: Cálculo de e elevado a x
El desarrollo de la serie de Taylor para la función exponencial ex viene dado por la fórmula: e^x= sumatorio (arriba) infinito (abajo) i=0 de x^i/factorial de i . Escribe un algoritmo que solicite al usuario
un valor para x y aplicando el desarrollo anterior calcule el valor aproximado de e elevado a x. El
sumatorio deberá terminar cuando el valor a sumar en una iteración (x^i/i!) sea menor de 0.0005 (es
decir, acotamos el error cometido a un valor alrededor de 0.0005). Tened en cuenta que cada nuevo
término del sumatorio (a partir del segundo) se puede expresar en función del término anterior.
import java.util.Scanner;
public class Taylor1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("Dame un valor de x para e^x");
double x=input.nextDouble();
double cota=0.0005;
double i;
double suma=0, t;
double valor=1;
double factorial ;
while (valor>=cota){
double factorial;
t= Math.pow(x,i)/factorial(i);
suma = suma+t;
}
System.out.println();
System.out.println("El resultado de 'e' es:" +suma);
}
}
actualmente tengo esto pero no se porque me esta dando error
El desarrollo de la serie de Taylor para la función exponencial ex viene dado por la fórmula: e^x= sumatorio (arriba) infinito (abajo) i=0 de x^i/factorial de i . Escribe un algoritmo que solicite al usuario
un valor para x y aplicando el desarrollo anterior calcule el valor aproximado de e elevado a x. El
sumatorio deberá terminar cuando el valor a sumar en una iteración (x^i/i!) sea menor de 0.0005 (es
decir, acotamos el error cometido a un valor alrededor de 0.0005). Tened en cuenta que cada nuevo
término del sumatorio (a partir del segundo) se puede expresar en función del término anterior.
import java.util.Scanner;
public class Taylor1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("Dame un valor de x para e^x");
double x=input.nextDouble();
double cota=0.0005;
double i;
double suma=0, t;
double valor=1;
double factorial ;
while (valor>=cota){
double factorial;
t= Math.pow(x,i)/factorial(i);
suma = suma+t;
}
System.out.println();
System.out.println("El resultado de 'e' es:" +suma);
}
}
actualmente tengo esto pero no se porque me esta dando error
Valora esta pregunta


0