Java 方差、标准差计算

话不多说直接上代码

/**
 * 数学相关计算工具类
 * @author gjs
 *
 */
public class MathUtil {
    
    /**
     * 传入一个数列x计算平均值
     * @param x
     * @return 平均值
     */
    public static double average(double[] x) {
        int n = x.length;            //数列元素个数
        double sum = 0;
        for (double i : x) {        //求和
            sum+=i;
        }
        return sum/n;
    }
    
    /**
     * 传入一个数列x计算方差
     * 方差s^2=[(x1-x)^2+(x2-x)^2+......(xn-x)^2]/(n)(x为平均数)
     * @param x 要计算的数列
     * @return 方差
     */
    public static double variance(double[] x) {
        int n = x.length;            //数列元素个数
        double avg = average(x);    //求平均值
        double var = 0;
        for (double i : x) {
            var += (i-avg)*(i-avg);    //(x1-x)^2+(x2-x)^2+......(xn-x)^2
        }
        return var/n;
    }
    
    /**
     * 传入一个数列x计算标准差
     * 标准差σ=sqrt(s^2),即标准差=方差的平方根
     * @param x 要计算的数列
     * @return 标准差
     */
    public static double standardDiviation(double[] x) {
        return  Math.sqrt(variance(x));
    }

 

posted @ 2020-04-22 09:34  ki16  阅读(5522)  评论(0编辑  收藏  举报
作者:ki16
出处:https://www.cnblogs.com/gaojinshun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
var _czc = _czc || [];