miércoles, 7 de julio de 2010

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