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

#include<stdio.h>#include<math.h>voidmain(){doublex,y,z,n,sin;scanf("%lf",&y);z=x=y/3... #include<stdio.h>
#include<math.h>
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π以内的呢?
展开
 我来答
zhanghaoyuan00
2013-11-06 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:87
采纳率:0%
帮助的人:98.7万
展开全部
这是泰勒展示没错。sin表示的就是一个求出来的和,你看原公式不就是sin=一个求和式的形式嘛。。。

我觉得x=-x*z*z/(2*n+1)/2*n;这一行貌似有问题,2*n没有加括号。

验证时其实不用转化,泰勒公式对所有x都成立。结果可能有一点差别,因为这个求和过程终止于你所定义的条件(<1e-7).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jzaleph
2013-11-05 · TA获得超过878个赞
知道小有建树答主
回答量:802
采纳率:0%
帮助的人:568万
展开全部
  1. 这应该是泰勒展开式的应用,用级数的部分和近似计算函数值。

  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)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式