0
# 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=分子,dem=分母

4

3 回答 3

0

尝试使用 20 个学期,而不仅仅是 10 个学期。

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

于 2013-07-21T03:44:27.230 回答
0

正弦的多项式近似等仅适用于狭窄范围的值。使用更多项,实际上是更高次多项式,可以在一定程度上提高准确性,但很快就会增加舍入误差。

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

完成此操作后,请尝试使用术语的数量。

于 2013-07-21T03:45:08.310 回答
0

哥们,你的程序是对的。检查您的常规计算值是否为 sin(3.1416) 保持弧度值。你得到的值是 3.1416 度。这个公式适用于弧度

于 2013-07-21T03:51:07.407 回答