Java - Ayuda con un programa de Java

 
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con un programa de Java

Publicado por gaspy (2 intervenciones) el 14/10/2021 12:53:10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void main(String[] args) {
 
		System.out.print("Dame un valor de x para e^x: ");
		Scanner sc = new Scanner(System.in);
		double x = sc.nextDouble();
		sc.close();
		int n = 1;
		double iter = 1;
		double sum = 0;
		do {
 
			sum = sum + iter;
			iter = Math.pow(x, n) / factorial(n);
			n++;
		}
		while(iter >= 0.0005);
		System.out.println("El resultado de 'e' es: " + sum);
	}
 
	private static int factorial(int num){
        int out = 1;
        if(num > 0)
        	out = num * factorial(num-1);
 
        return out;
	}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar