利用下列公式求反正弦函数近似值。 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;
}