I的值必須計算的arctan(x)
值。我已通過評估以下系列來計算此值:計算反正切(X)的C++中
Arctan(x)= x - x^3/3 + x^5/5 - x^7/7 + x^9/9 - ...
但下面的代碼無法計算出實際的價值。例如,calculate_angle(1)
返回38.34。爲什麼?
const double DEGREES_PER_RADIAN = 57.296;
double calculate_angle(double x)
{
int power=5,count=3;
double term,result,prev_res;
prev_res = x;
result= x-pow(x,3)/3;
while(abs(result-prev_res)<1e-10)
{
term = pow(x,power)/power;
if(count%2==0)
term = term*(-1);
prev_res=result;
result=result+term;
++count;
power+=2;
// if(count=99)
// break;
}
return result*DEGREES_PER_RADIAN;
}
我不會感到驚訝,如果38.34正是泰勒系列給你。這個增長很快。 – chris 2013-05-03 05:38:33
如果我想要得到arc_tan(1)= 45度的值,該怎麼辦? – 2013-05-03 05:40:41
值得一提的是,如果'| x | >> 0',此外[Wolframalpha建議](http://www.wolframalpha.com/input/?i=taylor-expand+arctan%28x%29)該系列是不同的'| x | <1'和'| x | > 1'。 – 2013-05-03 05:41:02