の値を計算する必要がありますarctan(x)
。次のシリーズを評価して、この値を計算しました。
Arctan (x) = x – x^3/3 + x^5/5 – x^7/7 + x^9/9 - …</p>
しかし、次のコードは実際の値を計算できません。たとえば、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;
}