java 实现实验室算法A返回稳健平均值稳健平均差

2.算法A:

名词说明:稳健平均值为利用稳健算法计算的总体均值,稳健标准差为利用稳健算法计算的总体标准差的均值估计。

(1)从一个特定检测中得到的结果总数为p。 按递增顺序排列p个检测数据,表示为: x1, x2 ,xi ,, x p 。

(2)这些数据的稳健平均值和稳健标准差记为x和s。计算x和s的初始值如下(med 表示中位数):

x*  medxi                                             (i 1,2,, p);
s* 1.483med |xi  x * |                       (i 1,2,, p);

在这里插入图片描述

点击看原图
在这里插入图片描述
(4)再由下式计算x和s的新的取值:

在这里插入图片描述

(5)稳健估计值x和s可由迭代计算得出,例如用已修改数据更新x和s,直至 过程收敛。当稳健标准差的第三位有效数字和稳健平均值相对应的数字在连续两次迭 代中不再变化时,即可认为过程是收敛的。
在这里插入图片描述

    /*** 算法A公式** @param param* @return*/public static Map<String,Object> arithmeticA(double[] param,int max) {Map<String,Object> result = new HashMap<>();max =3;int len = param.length;// 数组长度Arrays.sort(param);   //数组排序,从小到大//初始稳健平均值double median = median(param, max);median=new BigDecimal(median).setScale(3, BigDecimal.ROUND_HALF_EVEN).doubleValue();System.out.println("第1次稳健平均值:"+median);//求初始稳定标准差double[] param1= new double[param.length];for (int i = 0; i < param.length; i++) {//绝对值param1[i]= Math.abs(param[i]-median);}Arrays.sort(param1);   //数组排序,从小到大double median1 = median(param1, max);//初始稳定标准差double standardDevition=median1*1.483;standardDevition=new BigDecimal(standardDevition).setScale(3, BigDecimal.ROUND_HALF_EVEN).doubleValue();System.out.println("第1次稳健标准差:"


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部