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

Aproximación de exp(x) con Taylor usando producto incremental dentro del término. More...

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

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 Punto de entrada. Calcula exp(x) con Taylor y producto por término.

Detailed Description

Aproximación de exp(x) con Taylor usando producto incremental dentro del término.

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

Este código calcula cada término i como: fct = Π_{j=0}^{i-1} ( x / (j+1) ) lo cual equivale exactamente a: fct = x^i / i!

Entrada
  • Un entero n >= 1 (términos).
  • Un real x (float).
Salida
Imprime:
exp(x) = <aprox>
Complejidad
Tiempo: O(n^2) (por el doble ciclo). Memoria: O(1).
Note
Esta forma evita manejar factorial explícito como entero, pero sigue siendo O(n^2).

Definition in file Ejemplo010.c.

Function Documentation

◆ main()

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

Punto de entrada. Calcula exp(x) con Taylor y producto por término.

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

Definition at line 39 of file Ejemplo010.c.

40{
41 (void)argc;
42 (void)argv;
43
44 int n, i, j;
45 float x, fct, ex;
46
47 do {
48 printf("Ingrese el numero de terminos: ");
49 scanf("%d", &n);
50 } while (n < 1);
51
52 printf("Ingrese el valor de x: ");
53 scanf("%f", &x);
54
55 /*
56 Para cada i:
57 fct = x^i / i! calculado como producto:
58 fct = (x/1)*(x/2)*...*(x/i)
59 Luego:
60 ex += fct
61 */
62 for (i = 0, ex = 0; i < n; i++)
63 {
64 for (j = 0, fct = 1; j < i; j++)
65 fct *= (x / (j + 1)); /* multiplica por x/(j+1) */
66
67 ex += fct;
68 }
69
70 printf("exp(%f) = %f\n", x, ex);
71 return 0;
72}
double fct(double x, int n)
Definition Ejemplo029.c:34
Here is the call graph for this function: