【发布时间】:2015-03-07 10:52:56
【问题描述】:
您好,我正在使用 Taylor Series Expansions 求解诸如 sin(x) 和 cos(x) 之类的三角函数
问题:我的价值观没有错,只是不够精确
我的问题是我是否可以提高这些功能的准确性,我想我已经尝试了一切但我需要你的建议。
double trig::funcsin(int value)
{
sum = 0;
//summation
factorial fac;
for(int i = 0; i < 7; i++)
{
sum += pow((-1), i)*(((double)pow(value, (double)2*i+1)/(double)fac.fact((double)2*i+ 1)));
}
return sum;
}
double trig::funccos(int value)
{
factorial fac;
sum = 0;
for(int i = 0;i < 7;i++)
{
sum += (pow((-1), i)*((double)pow(value, (double)2*i)/(double)fac.fact((double)2*i)));
}
return sum;
}
例子:
真实:-0.7568024953
我的:-0.73207
真实:-0.27941549819
我的:-0.501801
随着 x 变大,输出值会以指数速率变得不那么精确。
我在GCC编译器,请给我建议
【问题讨论】:
标签: c++ trigonometry computation