C语言利用泰勒公式,计算sin(x)!
1个回答

#include

#include

int jiecheng(int n)

{

x09int result = 1;

x09if(n==0) return result;

x09else

x09{

x09x09while(n)

x09x09{

x09x09x09result *= n;

x09x09x09n--;

x09x09}

x09x09return result;

x09}

}

double dsin(double x)

{

x09double result = x;

x09int n = 3;

x09int sign = -1;

x09double temp;

x09while(1)

x09{

x09x09temp = pow(x,n)/jiecheng(n);

x09x09if(temp<0.000001)return result;

x09x09temp *= sign; //变号控制

x09x09result += temp;

x09x09n +=2;

x09x09sign *=-1;

x09}

}

int main()

{

x09double p;

x09p = 1;

x09printf("%lf%lf", dsin(p),sin(p));

x09return 0;

}

//double类型的数据有误差,但是结果在可接受范围内

//是利用泰勒展开进行运算,测试了sin(1)

//阶乘可能会溢出