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);
  }

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

相关文章

  • Spring多线程的使用以及问题详解

    Spring多线程的使用以及问题详解

    在我们开发系统过程中,经常会处理一些费时间的任务(如:向数据库中插入大量数据),这个时候就就需要使用多线程,下面这篇文章主要给大家介绍了关于Spring多线程的使用以及问题的相关资料,需要的朋友可以参考下
    2022-05-05
  • Java基础之详解基本数据类型的使用

    Java基础之详解基本数据类型的使用

    今天给大家带来的是关于Java基础的相关知识,文章围绕着基本数据类型的使用展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java NIO 文件通道 FileChannel 用法及原理

    Java NIO 文件通道 FileChannel 用法及原理

    这篇文章主要介绍了Java NIO 文件通道 FileChannel 用法和原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 解决使用@RequestParam注解和泛型遇到的问题

    解决使用@RequestParam注解和泛型遇到的问题

    这篇文章主要介绍了解决使用@RequestParam注解和泛型遇到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java多线程面试题(面试官常问)

    Java多线程面试题(面试官常问)

    这篇文章主要介绍了Java多线程面试题(面试官常问),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java 从json提取数组并转换为list的操作方法

    Java 从json提取数组并转换为list的操作方法

    这篇文章主要介绍了Java 从json提取出数组并转换为list,使用getJSONArray()获取到jsonarray后,再将jsonArray转换为字符串,最后将字符串解析为List列表,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
    2022-10-10
  • Java命令设计模式详解

    Java命令设计模式详解

    这篇文章主要为大家详细介绍了Java命令设计模式,对命令设计模式进行分析理解,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • SpringBoot中使用spring-retry 解决失败重试调用

    SpringBoot中使用spring-retry 解决失败重试调用

    本文主要介绍了SpringBoot中使用spring-retry 解决失败重试调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java获取e.printStackTrace()打印的信息方式

    Java获取e.printStackTrace()打印的信息方式

    这篇文章主要介绍了Java获取e.printStackTrace()打印的信息方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 永中文档在线转换服务Swagger调用说明

    永中文档在线转换服务Swagger调用说明

    这篇文章主要为大家介绍了永中文档在线转换服务Swagger调用说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论