罪恶x程序不起作用

时间:2013-07-21 03:11:04

标签: c++ sin

# include <iostream>
# include <math.h>
using namespace std;

int main()
{
    int count=1;
    double x;
    double sine, num, dem, sign, term;
    sine=0;
    sign = 1;

    cout << "Get x: ";
    cin >> x;
    num = x;
    dem = count;

    while ( count <= 10 )
    {
        term = (num/dem);
        sine = sine + term*sign;
        num = num*x*x;
        count = count + 2;
        dem = dem * count * (count-1);
        sign = -sign;
    }

    cout << "The result is: ";
    cout << sine;
    return 0;
}   

这是我在C ++中为sin x编写的代码,有人可以指出我的错误,因为程序没有计算出正确的值,我已经尝试调试了几个小时,但我的努力是徒劳的,我很感激你的帮助!谢谢!

* num = numerator,dem = denominator

3 个答案:

答案 0 :(得分:0)

尝试使用20个术语,而不仅仅是10个术语。

由于当x很大时系列会收敛得更慢,所以在开始之前取x模2π。

答案 1 :(得分:0)

正弦等的多项式近似仅适用于窄范围的值。使用更多项,有效地使用更高次多项式,可以提高精度,但很快就会出现更多的舍入误差。

您需要选择一个窄域来使用该系列计算,然后将该范围之外的输入减少到具有相同正弦的范围内的值。

完成后,请尝试使用术语数。

答案 2 :(得分:0)

巴迪,你的节目是对的。检查你的常规计算罪(3.1416)保持弧度值。您获得的值是3.1416度..并且该公式适用于弧度