作业帮 > 综合 > 作业

sin(x)=x-x^3/3!+x^5/5!-x^7/7!+...,直到最后一项的绝对值小于10的负七次方为止.C语言编

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/28 07:51:41
sin(x)=x-x^3/3!+x^5/5!-x^7/7!+...,直到最后一项的绝对值小于10的负七次方为止.C语言编程
#include
#include
void main()
{double x,y,z,n,sin;
scanf("%lf",&y);
z=x=y/360*6.28;
for(n=1,sin=x;fabs(x)>1e-7;n=n+1)
{x=-x*z*z/(2*n+1)/2*n;
sin=sin+x;}
printf("%lf\n",sin);
}
输入数据以度数为单位,转换为弧度进行计算;
分别用30°,390°,1110°,1830°验证.
其实我压根就没理解这里的sin到底是三角函数的那个还是sum求和的那个.明明自变量是n啊,跳出循环的条件也是n的函数啊~那么验证的那四个数到底要不要转为2π以内的呢?
这应该是泰勒展开式的应用,用级数的部分和近似计算函数值.
跳出循环的条件是fabs(x)>1e-7,即最后一项的绝对值小于10的负七次方为止
再问: 求帮忙看到我的有错没? 我们还没有学到泰勒。意思是和三角函数没啥关系,sin只是符号相当于sum咯?
再答: x=-x*z*z/(2*n+1)/2*n应该改为x=-x*z*z/(2*n+1)/(2*n)