sin(x)的泰勒级数展开运算

    该程序其实并不难,但是在开始的时候一直没有进行弧度转换,即x *= 3.1415926/180,导致结果一直不对,不过最后总算还是弄对了,呵呵。

直接上代码:

include #include #include #define MIN_GATE 10e-7 //利用泰勒级数计算sinx函数 float TaylorSin(float x) { int i = 1; int k = 2; float temp = 1.0; float result = 0.0 ; while(1) { if(fabs(temp) < MIN_GATE) //单项精度是否满足要求判断 break; else { int j; float deno = 1.0; float mole = 1.0; //计算单项结果 for(j = 1;j <= (2*i-1);j++) { mole *= x; deno *= (float)j; } //单项正负判断 if(k%2 == 0) temp = mole / deno; else temp = -1 * mole / deno; i++; k++; result += temp; //结果累加 } } return result; } int main(void) { float x = 1.0 ; float sin_x = 0.0; printf("请输入X的值:/n"); scanf("%f",&x); x *= (3.1415926/180); //计算 sin_x = TaylorSin(x); printf("计算结果为:%f/n",sin_x); return 0; } 

你可能感兴趣的:(嵌入式C语言)