写在前面,
fabs()函数(头文件是<math.h>)是C语言中的一个数学函数,用于计算一个浮点数的绝对值。它的原型如下:
```c
double fabs(double x);
```
该函数返回参数x的绝对值,即x的正值部分。
要求最后一项绝对值刚好小于0.00001(1e-5即1*10的-5)
先循环求每一项分母,再循环求每一项分子
例如
x^3/3!
为一项,x的3次方为分子,3!为分母
/泰勒公式:sin(x)=x-x^3/3!+x^5/5!+...+(-1)^(m-1)*x^(2m-1)/(2m-1)!
#include <stdio.h>
#include <math.h>
//利用泰勒公式求sin(x),要求最后一项的绝对值刚好小于0.00001
//泰勒公式:sin(x)=x-x^3/3!+x^5/5!+...+(-1)^(m-1)*x^(2m-1)/(2m-1)!
int main()
{
float t,i,x,p,z=1,s=0,u=1;
int count = 1;
printf("请输入x的数值\n");
scanf("%f",&x);
while(fabs(u)>=1e-5)
{
t = 1;
for(i=1;i<=(2*count-1);i++)
{
t *= i; //求各项分母
}
p = 1;//
for(i=1;i<=(2*count-1);i++)
{
p *= x; //求各项分子
}
u = p/t;
s += z*u;//求和
z *= -1;//变号
count++;
}
printf("%f",s);
return 0;
}
因为sinx的泰勒公式展开为奇数次项,所以利用每次循环使count值为奇数次递增,即count*2-1