# Fourth Week Examples: Series and Theoretical Error Bounds

```/* Treibergs  1-30-6

Program to sum exponential series
with Taylor's error

today.c                      */

# include <stdio.h>
# include  <stdlib.h>
# include  <math.h>

int
main(void)
{
int  i,  n=20;
double  sum, term,  error, eps,  x,y,z;

printf ( " Maclaurin Series for the Exponential. \n\n");

printf ( " Enter the desired accuracy, epsilon : ");
scanf ( "%lf", &eps);

printf ( " Enter x : ");
scanf ( "%lf", &x);

y = exp(x);
if( x <= 0.0 )
z = 1.0;
else
z=exp(fabs(x));

printf(" n\t\t  term\t\t     sum\t\t error \n\n");

i=0;
term = 1.0;

do
{
sum = sum + term;
printf (" %4d %20.15f %20.15f", i, term, sum);
i = i + 1;
term = term * x / i;
error = fabs ( z * term );
printf (" %21.15f\n", error );
}
while( (i <= 20)  && (error >= eps ) );

printf ( " Actual value of exp(x) = %21.15f\n", y );
printf ( "     \t\t\t         Actual error = %21.15f\n", sum - y );
printf ( "        \t\t\t      Epsilon = %21.15f\n", eps );

return EXIT_SUCCESS;
}

```

```/* Treibergs  2-1-6

Program to sum series for y = 1/(1+x*x)
with Taylor's error

today.c                      */

# include <stdio.h>
# include <stdlib.h>
# include <math.h>

int
main(void)
{
int  i,  n=20;
double  sum, term,  error, eps,  x, z, y;

printf ( " Maclaurin Series for the 1/(1+x*x). \n\n" );

printf ( " Enter the desired accuracy, epsilon  = " );
scanf ( "%lf", &eps);

printf ( " Enter x : " );
scanf( "%lf", &x);

y = 1.0 / (1.0 + x*x );
z = - x*x;

printf ( " n\t\t  term\t\t     sum\t\t error bound \n\n" );

i = 0;
term = 1.0;

do
{
sum = sum + term;
printf ( " %4d %20.15f %20.15f", i, term, sum);
i = i + 1;
term = term * z;
error = fabs ( term );
printf ( " %21.15f\n", error );
}
while( (i <= 20)  && (error >= eps ) );

printf ( "Actual value of 1/(1+x*x) = %19.15f\n", y);
printf ( "     \t\t\t         Actual error = %21.15f\n", sum - y );
printf ( "        \t\t\t      Epsilon = %21.15f\n", eps );

return EXIT_SUCCESS;
}

```