java计算方差、标准差(均方差)实例代码

网友投稿 859 2022-12-29


java计算方差、标准差(均方差)实例代码

java计算标准差思路

//方差s^2=[(x1-x)^2 +...(xn-x)^2]/n 或者s^2=[(x1-x)^2 +...(xn-x)^2]/(n-1)

public static double Variance(double[]http:// x) {

int m=x.length;

double sum=0;

for(int i=0;i

sum+=x[i];

}

double dAve=sum/m;//求平均值

double dVar=0;

for(int i=0;i

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

return dVar/m;

}

//标准差=sqrt(s^2)

public static double StandardDiviation(double[] x) {

int m=x.length;

double sum=0;

for(int i=0;i

sum+=x[i];

}

double dAve=sum/m;//求平均值

double dVar=0;

for(int i=0;i

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

//reture Math.sqrt(dVar/(m-1));

return Math.sqrt(dVar/m);

}

//BigDecimal 的sqrt方法

private static BigDecimal sqrt(BigDecimal num) {

if (num.compareTo(BigDecimal.ZERO) < 0) {

return BigDecimal.ZERO;

}

BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128);

while (x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0) ;

return x;

}

private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) {

return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathConhttp://text.DECIMAL128);

}

有需要的朋友们可以测试下以上代码,感谢大家的学习和对我们的支持。

sum+=x[i];

}

double dAve=sum/m;//求平均值

double dVar=0;

for(int i=0;i

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

return dVar/m;

}

//标准差=sqrt(s^2)

public static double StandardDiviation(double[] x) {

int m=x.length;

double sum=0;

for(int i=0;i

sum+=x[i];

}

double dAve=sum/m;//求平均值

double dVar=0;

for(int i=0;i

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

//reture Math.sqrt(dVar/(m-1));

return Math.sqrt(dVar/m);

}

//BigDecimal 的sqrt方法

private static BigDecimal sqrt(BigDecimal num) {

if (num.compareTo(BigDecimal.ZERO) < 0) {

return BigDecimal.ZERO;

}

BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128);

while (x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0) ;

return x;

}

private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) {

return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathConhttp://text.DECIMAL128);

}

有需要的朋友们可以测试下以上代码,感谢大家的学习和对我们的支持。

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

return dVar/m;

}

//标准差=sqrt(s^2)

public static double StandardDiviation(double[] x) {

int m=x.length;

double sum=0;

for(int i=0;i

sum+=x[i];

}

double dAve=sum/m;//求平均值

double dVar=0;

for(int i=0;i

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

//reture Math.sqrt(dVar/(m-1));

return Math.sqrt(dVar/m);

}

//BigDecimal 的sqrt方法

private static BigDecimal sqrt(BigDecimal num) {

if (num.compareTo(BigDecimal.ZERO) < 0) {

return BigDecimal.ZERO;

}

BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128);

while (x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0) ;

return x;

}

private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) {

return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathConhttp://text.DECIMAL128);

}

有需要的朋友们可以测试下以上代码,感谢大家的学习和对我们的支持。

sum+=x[i];

}

double dAve=sum/m;//求平均值

double dVar=0;

for(int i=0;i

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

//reture Math.sqrt(dVar/(m-1));

return Math.sqrt(dVar/m);

}

//BigDecimal 的sqrt方法

private static BigDecimal sqrt(BigDecimal num) {

if (num.compareTo(BigDecimal.ZERO) < 0) {

return BigDecimal.ZERO;

}

BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128);

while (x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0) ;

return x;

}

private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) {

return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathConhttp://text.DECIMAL128);

}

有需要的朋友们可以测试下以上代码,感谢大家的学习和对我们的支持。

dVar+=(x[i]-dAve)*(x[i]-dAve);

}

//reture Math.sqrt(dVar/(m-1));

return Math.sqrt(dVar/m);

}

//BigDecimal 的sqrt方法

private static BigDecimal sqrt(BigDecimal num) {

if (num.compareTo(BigDecimal.ZERO) < 0) {

return BigDecimal.ZERO;

}

BigDecimal x = num.divide(new BigDecimal("2"), MathContext.DECIMAL128);

while (x.subtract(x = sqrtIteration(x, num)).abs().compareTo(new BigDecimal("0.0000000000000000000001")) > 0) ;

return x;

}

private static BigDecimal sqrtIteration(BigDecimal x, BigDecimal n) {

return x.add(n.divide(x, MathContext.DECIMAL128)).divide(new BigDecimal("2"), MathConhttp://text.DECIMAL128);

}

有需要的朋友们可以测试下以上代码,感谢大家的学习和对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:什么接口测试工具好用(接口测试及常用接口测试工具)
下一篇:eclipse springboot工程打war包方法及再Tomcat中运行的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~