编写程序求反正弦函数近似值

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

猜你喜欢

转载自blog.csdn.net/qq_41928880/article/details/80022872