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 potenciasUn 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