ProgIng - Programación en Ingeniería
Loading...
Searching...
No Matches
Ejemplo012.c
Go to the documentation of this file.
1
38
39#include <stdio.h>
40
41int main(int argc, char *argv[])
42{
43 (void)argc;
44 (void)argv;
45
46 int n, i, j;
47 int den; /* denominador impar: 1,3,5,... */
48 float x; /* valor para evaluar ln(x) */
49 float lnx; /* acumulador de la serie */
50 float fct; /* f = (x-1)/(x+1) */
51 float num; /* potencia: f^{den} */
52
53 /* Leer n >= 1 */
54 do {
55 printf("Ingres el numero de terminos: ");
56 scanf("%d", &n);
57 } while (n < 1);
58
59 /* Leer x > 0 */
60 do {
61 printf("Ingrese el valor de x: ");
62 scanf("%f", &x);
63 } while (x <= 0);
64
65 /*
66 f = (x - 1) / (x + 1)
67 y la serie es:
68 ln(x) = 2 * sum_{i=0}^{n-1} f^{2i+1}/(2i+1)
69 */
70 for (i = 0, fct = (x - 1) / (x + 1), lnx = 0; i < n; i++)
71 {
72 den = 2*i + 1; /* 1, 3, 5, ... */
73
74 /*
75 Calcular num = fct^den multiplicando fct den veces:
76 num = fct * fct * ... * fct (den factores)
77 */
78 for (j = 0, num = 1; j < den; j++)
79 num *= fct;
80
81 /* Sumar el término: f^{den}/den */
82 lnx += num / den;
83 }
84
85 /* Multiplicar por 2 según la identidad */
86 lnx *= 2;
87
88 printf("ln(%f) = %f\n", x, lnx);
89 return 0;
90}
double fct(double x, int n)
Definition Ejemplo029.c:34
int main(void)
Definition Ejemplo_035.c:15