Top baner Big

Your Ad Here

Top Banner

Your Ad Here

Saturday, November 22, 2008

Taylors Series for Sin, Cos and Exponential


/*Program :Taylors Series for Sin, Cos and Exponential
Programmer ::fizmhd(MEA) www.mdown.co.cc*/

#include
#include
#define PI 3.1415

float exp_x(int,int);
double sin_x(int,int);
double cos_x(int,int);
int fact(int);

int main()
{
int choice,x,n;
do
{
printf("\nMenu\n[1] e^x)\n[2] Sin(x)\n[3] Cos(x)\n[4] Exit\n");
scanf("%d",&choice);
switch(choice)
{
case 1: // to find exponential value
printf("e^x\nEnter x and n:\t");
scanf("%d %d",&x,&n);
printf("e^%d(%d) = %f\n",x,n,exp_x(x,n));
break;
case 2: // to find sinx
printf("sin(x)\nEnter x and n:\t");
scanf("%d %d",&x,&n);
printf("\ncos(%d)(%d) = %f\n",x,n,sin_x(x,n));
break;
case 3: // to find cosx
printf("cos(x)\nEnter x and n:\t");
scanf("%d %d",&x,&n);
printf("\ncos(%d)(%d) = %f\n",x,n,cos_x(x,n));
break;
case 4: // exit
break;
default:// wrong choice
printf("Wrong choice");
break;
}
}while(choice!=4);
}

float exp_x(int x,int n)
{
int i=1;
float ex=1;
while(i{
ex+=(float)pow(x,i)/fact(i);
++i;
}
return ex;
}

double sin_x(int ang_deg,int no_of_terms)
{
int term,j;
double value=0.0,ang_rad=0.0;
ang_rad=(double)ang_deg*PI/180;
for(term=1,j=2;term{
value+=(double)pow(-1.0,j)*pow(ang_rad,term)/fact(term);
}
return value;
}

double cos_x(int ang_deg,int no_of_terms)
{
int term,j;
double value=1.0,ang_rad=0.0;
ang_rad=(double)ang_deg*PI/180;
for(term=2,j=1;term<=no_of_terms;term+=2,j++)
{
value+=(double)pow(-1.0,j)*pow(ang_rad,term)/fact(term);
}
return value;
}

int fact(int num)
{
int f=0;
if(num==1)
return 1;
else
f=num*fact(num-1);
return f;
}

No comments:

Easy Hits

EasyHits4U.com - Your Free Traffic Exchange - 1:1 Exchange Ratio, 5-Tier Referral Program. FREE Advertising!

Bottom Square