Factoriales y aproximación de e
La serie de Taylor de una función f de números reales o complejos que es infinitamente diferenciable en un entorno de números reales o complejos a, es la serie de potencias![]()
Un ejemplo
En estos términos, la recta tangente y la parábola tangente, vienen siendo los polinomios de Taylor para f de grados 1 y 2 respectivamente.
En la siguiente tabla compararemos a la función exponencial 
 (última columna) con los polinomios de Taylor correspondientes de grados 1 hasta 4. Obsérvese que la segunda columna corresponde a la recta tangente y la tercera columna a la parábola tangente.
x  |          1+x  |          
  |          
  |          
  |          
  |      
1  |          2  |          2.5  |          2.666666  |          2.7083333  |          2.718281828  |      
0.5  |          1.5  |          1.625  |          1.645833  |          1.6484375  |          1.6487212707  |      
0.3  |          1.3  |          1.345  |          1.3495  |          1.3498375  |          1.34985880757  |      
0.1  |          1.1  |          1.105  |          1.10516667  |          1.10517083  |          1.10517091807  |      
0.01  |          1.01  |          1.01005  |          1.01005017  |          1.01005017  |          1.010050167  |      
0.001  |          1.001  |          1.0010005  |          1.00100050000  |          1.00100050017  |          1.00100050016  |      
Si analizamos con detenimiento la información proporcionada por esta tabla, veremos lo siguiente:
1. En cada columna, vemos que la aproximación del correspondiente polinomio de Taylor es mejor cuanto más cercano se encuentre x a 0.
2. En cada renglón, vemos que para cada valor fijo de x, no importa si está cerca o no de 0, la aproximación va mejorando conforme aumentamos el grado del polinomio de Taylor.
Codigo:
#include
#include
#include
float k; //es la potencia y variable
float n; //limitante para el ciclo
float x; //es un dato
float e; //es el resultado
float factorial = 1;
int main(int factorial, char** exponencial) {
printf("\tPrograma para calcular la aproximacion de e\n\n\n");
printf("Dame un numero x: ");
scanf("%f", &x);
printf("Numero de iteraciones: ");
scanf("%f", &n);
for(k = 0; k < n; k += 1) ///(variable que incrementa; la condicion; el incremento)
{
factorial = factorial*k; ///funcion para calcular el valor factorial
if(factorial == 0)
{
factorial = 1; ///Si factorial es igual a 0 entonces factorial debe ser 1
} ///para que se cumpla el valor factorial de 0!
e += (pow(x,k)/factorial); ///la razon de acumulacion aproximacion
printf("%f\n", e);
}
getch();
return 2;
}
No hay comentarios:
Publicar un comentario