利用下列公式求反正弦函数近似值。 arcsin(x)=x+pow(x,3)/(2*3)+1*3*pow(x,5)/(2*4*5)+...., 其中 |x|<1 其中通项公式为: (2n)!*pow(x,2n+1)/(pow(2,2n)*pow(n!,2)*(2n+1)) 结束条件可用|u|< 1.0e-7,其中u为通项。要点分析:本题关键是找到通项的递推公式, 由前一项计算后一项。
程序运行结果如下:
输入: 0.77
输出: 0.878841
分析:不想分析了--打了半天没打对==然后开始质疑公式,恩,公式看起来不对--百度一个--过了==
不为难自己了,放完整代码--理论上来说……这个公式看着辣眼睛(不就是泰勒公式……)
#include<iostream> #include<math.h> using namespace std; int main() { int n=1; long long t=1,tt=1; double u,x,ans; cin>>x; ans=x; u=x; while (fabs(u)>=1.0e-7){ if (fabs(u)<1.0e-7) break; u=u*(2*n-1)*(2*n-1)*x*x/((2*n)*(2*n+1)); n++; ans=ans+u; } cout<<ans; return 0; }