java计算方差、标准差(均方差)实例代码
更新时间:2019年08月27日 16:21:18 作者:梁&&鞠
在本篇文章里小编给大家分享了关于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[] x) {
int m=x.length;
double sum=0;
for(int i=0;i<m;i++){//求和
sum+=x[i];
}
double dAve=sum/m;//求平均值
double dVar=0;
for(int i=0;i<m;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<m;i++){//求和
sum+=x[i];
}
double dAve=sum/m;//求平均值
double dVar=0;
for(int i=0;i<m;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"), MathContext.DECIMAL128);
}
有需要的朋友们可以测试下以上代码,感谢大家的学习和对脚本之家的支持。
相关文章
Java生成PDF文档两个超实用的库( iText和Apache PDFBox)
这篇文章主要介绍了Java生成PDF文档两个超实用的库,分别是用 iText库以及用Apache PDFBox库生成PDF,文中通过代码介绍的非常详细,需要的朋友可以参考下2025-02-02
SpringBoot2.2.X用Freemarker出现404的解决
这篇文章主要介绍了SpringBoot2.2.X用Freemarker出现404的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-02-02
Spring boot中PropertySource注解的使用方法详解
这篇文章主要给大家介绍了关于Spring boot中PropertySource注解的使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。2017-12-12


最新评论