zoukankan      html  css  js  c++  java
  • 转载:二次指数平滑法求预测值的Java代码

    原文地址:

    http://blog.csdn.net/qustmeng/article/details/52186378?locationNum=4&fps=1

    import java.util.LinkedList;
    import java.util.List;
     
    public class Demo {
        /**
         * 二次指数平滑法求预测值
         * @param list 基础数据集合
         * @param year 未来第几期
         * @param modulus 平滑系数
         * @return 预测值
         */

        /**

        原文代码设置,当输入的数据数(list长度)小于10,  则不进行计算

        */
        private static Double getExpect(List<Double> list, int year, Double modulus ) {
            if (list.size() < 10 || modulus <= 0 || modulus >= 1) {
                return null;
            }
     
     
            Double modulusLeft = 1 - modulus;
     
            Double lastIndex = list.get(0);
            Double lastSecIndex = list.get(0);
     
            for (Double data :list) {
                lastIndex = modulus * data + modulusLeft * lastIndex;
                lastSecIndex = modulus * lastIndex + modulusLeft * lastSecIndex;
            }
     
            Double a = 2 * lastIndex - lastSecIndex;
            Double b = (modulus / modulusLeft) * (lastIndex - lastSecIndex);
     
            return a + b * year;
        }
     
     
    public static void main(String[] args) {
            List<Double> list = new LinkedList<Double>();
            list.add(30.177);
            list.add(30.1762);
            list.add(30.1761);
            list.add(30.1763);
            list.add(30.1774);
            list.add(30.1766);
            list.add(30.1767);
            list.add(30.177);
            list.add(30.179);
            list.add(30.1799);
            list.add(30.1813);
            list.add(30.1813);
            list.add(30.1816);
            list.add(30.1839);
            list.add(30.1847);
            list.add(30.1841);
            list.add(30.1824);
            list.add(30.1806);
            list.add(30.1802);
            list.add(30.179);
            list.add(30.1773);
            list.add(30.1769);
            list.add(30.1783);
            list.add(30.1822);
            list.add(30.1852);
            Double value = getExpect(list, 1, 0.6);
            System.out.println(value);
        }
    }

    效果图:

  • 相关阅读:
    SCHTASKS /CREATE
    手机酷派4G5316 5313s 黑砖 求转成功 9008端口 9006端口 少走弯路选对镜像
    网络共享 相关知识与原理 操作步骤
    电脑 主板 硬盘的 电脑系统
    按键精灵 按键代码
    win7 快捷键 收集
    默认主页更改 主页锁定 打开浏览器时的网页设置
    按键精灵 以时间命名文件夹 创建文件 写入文件 和截图
    按键精灵-----按钮控制(开始子程序)的时候是要用到多线程的
    java web 大总结
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/6937337.html
Copyright © 2011-2022 走看看