ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
Ejemplo011.c File Reference

Aproximación de exp(x) con Taylor usando recurrencia entre términos (forma eficiente). More...

#include <stdio.h>
Include dependency graph for Ejemplo011.c:

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 Punto de entrada. Calcula exp(x) con Taylor usando recurrencia O(n).

Detailed Description

Aproximación de exp(x) con Taylor usando recurrencia entre términos (forma eficiente).

Serie: exp(x) = sum_{i=0}^{∞} x^i / i!

Define el término: t_i = x^i / i!

Recurrencia: t_0 = 1 t_{i+1} = t_i * (x / (i+1))

Con esto se calcula la suma con un solo ciclo: ex = t_0 + t_1 + ... + t_{n-1}

Entrada
  • Un entero n >= 1 (términos).
  • Un real x (float).
Salida
Imprime:
exp(x) = <aprox>
Complejidad
Tiempo: O(n). Memoria: O(1).
Note
Esta es la versión más eficiente de (009–011) porque evita recalcular potencias/factoriales.

Definition in file Ejemplo011.c.

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Punto de entrada. Calcula exp(x) con Taylor usando recurrencia O(n).

Parameters
argcNo usado.
argvNo usado.
Returns
0 si finaliza correctamente.

Definition at line 44 of file Ejemplo011.c.

45{
46 (void)argc;
47 (void)argv;
48
49 int n, i;
50 float x, fct, ex;
51
52 do {
53 printf("Ingrese el numero de terminos: ");
54 scanf("%d", &n);
55 } while (n < 1);
56
57 printf("Ingrese el valor de x: ");
58 scanf("%f", &x);
59
60 /*
61 Inicialización:
62 fct = t_0 = 1
63 ex = 0
64
65 En cada iteración i:
66 ex += fct (acumula t_i)
67 fct *= x/(i+1) (convierte t_i en t_{i+1})
68 */
69 for (i = 0, ex = 0, fct = 1; i < n; i++)
70 {
71 ex += fct;
72 fct *= (x / (i + 1));
73 }
74
75 printf("exp(%f) = %f\n", x, ex);
76 return 0;
77}
double fct(double x, int n)
Definition Ejemplo029.c:34
Here is the call graph for this function: