本帖最后由 刘文超 于 2013-1-2 15:04 编辑
算出来啦,结果正确的!- package org.qyx.online;
- public class TestArctan {
- /**
- * @author 刘文超
- *
- *@category
- * 用java编写程序求π值。π的计算公式如下:用java编写程序求π值。
- * π=16arctan(1/5)-4arctan(1/293)
- * 其中acrtan用如下形式的级数计算:
- * arctan(x)=x/1-x3/3+x5/5+……=∑(-1)nx2n+1/(2n+1)
- * 直到级数某项绝对值不大于10-15为止。这里π和x均为double型。
- */
-
- public static void main(String[] args) {
- double n=16*getArctan(1.0/5)-4*getArctan(1.0/293);
- System.out.println("结果为:"+n);
- }
-
- public static double getArctan(double x){
- double esp=Math.pow(10, -15);//循环截止条件到10^-15
- double sum=0;//西格玛和初始化为0
- int n=0;
- double item=Math.pow(-1,n)*Math.pow(x, 2*n+1)/(2*n+1);//第一项
- while(Math.abs(item)>esp){
- sum+=item;//累加
- n++;
- item=Math.pow(-1,n)*Math.pow(x, 2*n+1)/(2*n+1);//n加1之后,要重新计算每一项
- }
- return sum;//返回西格玛和
- }
- }
复制代码 |
|