泰勒系列寻找余弦

时间:2014-03-17 17:54:29

标签: c taylor-series

对于作业,我需要编写一个c程序,使用泰勒系列展开来查找输入角度的余弦值,这是第50个术语(意味着最终术语是x ^ 100/100!)。到目前为止,我一直试图使用for循环,我也尝试了一个while循环,但我一直得到错误的答案。我已经具有工作能力和阶乘函数,并且我已经具有弧度的角度值,我只是不理解如何格式化循环以便得到合理的答案。

这是我向用户询问角度,将角度转换为弧度并调用函数的部分:

printf("Enter an angle measure in degrees to find the cosine value:\n");
scanf("%lf",&angle);
angle = angle * (M_PI/180);
result = myCos(angle);`

这就是功能:

long double myCos(double x)
{
  long double result = 0;
  double term = 0;
  int k = 0;

  for(k = 2;k <= 100;k += 2)
  {
    term = power(x,k)/factorial(k);
  }

  result = 1 - term;
  return(result);
}

有人能说出我做错了吗?

1 个答案:

答案 0 :(得分:1)

不要尝试计算每次通过循环的x^kk!。初始化循环外的商,然后乘以x/k(或x^2/k(k-1),如果你只想要奇数项),更新每次迭代的商。