博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 方差_java计算方差、标准差(均方差)实例代码
阅读量:6913 次
发布时间:2019-06-27

本文共 1100 字,大约阅读时间需要 3 分钟。

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

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"), MathContext.DECIMAL128);

}

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

转载地址:http://wjncl.baihongyu.com/

你可能感兴趣的文章
Windows 2012 Hyper –V 3.0 New Functions
查看>>
maven部分插件配置demo
查看>>
Grin交易原理详解
查看>>
大数据体系【概念认知】系列-2:存储以及副本策略
查看>>
我的友情链接
查看>>
linux企业常用服务---haproxy+nginx搭建web高可用集群
查看>>
win7 断开 共享连接的操作方法
查看>>
CTSSD服务无法正常启动:Failure 4 in trying to open SV key PROCL-4/PROCL-5 clsctss_r_av2
查看>>
再议OPEN CURSOR与BULK COLLECT
查看>>
我的友情链接
查看>>
jquery attr与prop
查看>>
casatwy组件化方案
查看>>
Linux中ls对文件进行按大小排序和按时间排序
查看>>
Unix/Linux下安装NPM
查看>>
Apache与Tomcat区别联系
查看>>
洪水***源码
查看>>
用shell编写批量打包日志脚本
查看>>
nginx访问白屏
查看>>
Pentaho6.1中D3可视化库的集成及数据联动的实现
查看>>
部署LyncServer2013之七 启动服务和登陆LyncServer控制面板
查看>>