باید با بسط تیلور پیاده سازی بشه به صورت زیر:
فرمول :
پیاده سازی sin :
#include <iostream>
#include <math.h>
using namespace std;
// Function for calculating sin value
void cal_sin(float n)
{
double accuracy = 0.00000001, denominator, sinx, sinval;
// Converting degrees to radian
n = n * (3.142 / 180.0);
double x1 = n;
// maps the sum along the series
sinx = n;
// holds the actual value of sin(n)
sinval = sin(n);
int i = 1;
do
{
denominator = 2 * i * (2 * i + 1);
x1 = -x1 * n * n / denominator;
sinx = sinx + x1;
i = i + 1;
} while (accuracy <= fabs(sinval - sinx));
cout << sinx;
}
// Main function
int main()
{
double n = 90;
cal_sin(n);
return 0;
}
فرمول :
پیاده سازی cos:
#include <iostream>
#include <math.h>
using namespace std;
// Function for calculation
void cal_cos(float n)
{
double accuracy = 0.00000001, x1, denominator, cosx, cosval;
// Converting degrees to radian
n = n * (3.142 / 180.0);
x1 = 1;
// maps the sum along the series
cosx = x1;
// holds the actual value of sin(n)
cosval = cos(n);
int i = 1;
do
{
denominator = 2 * i * (2 * i - 1);
x1 = -x1 * n * n / denominator;
cosx = cosx + x1;
i = i + 1;
} while (accuracy <= fabs(cosval - cosx));
cout << cosx;
}
// Main function
int main()
{
double n = 30;
cal_cos(n);
}