In the last post I discussed, how to evaluate a Sine series for a given value of upto a certain number of terms.

In this post, I will show you how to modify that program to evaluate the sine series upto desired accuracy.

To do that, instead of running the loop upto n,(to evaluate and sum the n terms) we would use a do-while loop which will run until the desired accuracy is reached.

That is till, the ratio:

accuracy= becomes less or equal to the desired accuracy.

This will be our terminating condition for the do-while loop.

Therefore, the C program to find the sin(x), correct upto a given accuracy, can be written as shown below.

### PROGRAM:

/******************************** ******INFINITE SERIES SUM********** Series: sin(x) = x - (x^3/3!) + (x^5/5!) + ..... ********************************/ #include<stdio.h> #include<math.h> main(){ int i=1; double x,t0,t1,R,sum,eps; printf("Enter the value of x:\n"); scanf("%lf",&x); printf("Enter the desired accuracy: "); scanf("%lf",&eps); //Initialize First Term t0=x; //Make sum equal to the first term sum=t0; do{ //Find the ratio of the second term to the first term using already known relation R=-(x*x)/(2*i+1)/(2*i); //Calculate the second term t1=R*t0; //find the new sum sum=sum+t1; t0=t1; i++; //keep on summing terms until the required accuracy is reached }while(fabs(t1/sum)>eps); printf("\nThe sum is: %f with %d terms",sum,i); }

### OUTPUT:

[wpedon id="7041" align="center"]