zoukankan      html  css  js  c++  java
  • 散列点斜率算法解剖

    问题情境:

      一堆点求斜率,不能使用简单的▲Y/▲X

    解析思路:

      求解:斜率——>线性回归——>最小二乘法——>最优解——>偏导

      验证:相关系数r,统计量f,剩余标准差s:r趋近于1好;f越大越好;s趋近于0好。

    性质:

      一定过点(Avgx,Avgy)。备注:x均值,y均值

    代码:

    public static double slope(IEnumerable<int> input_y, int period)
            {
                List<double> input_x = new List<double>();
                for (int i = 1; i <= period; i++)
                {
                    input_x.Add(i);
    
                }
    
                var copyInputValues_x = input_x.ToList();
                var copyInputValues_y = input_y.ToList();
                List<double> arr_xy = new List<double>();
                List<double> arr_xx = new List<double>();
                List<double> arr_x = new List<double>();
                List<double> arr_y = new List<double>();
                arr_x = copyInputValues_x;
                for (int j = copyInputValues_y.Count - period; j < copyInputValues_y.Count; j++)
                {
                    arr_y.Add(copyInputValues_y[j]);
                }
                double x_arr_dataAv = arr_x.Take(period).Average();
                double y_arr_dataAv = arr_y.Take(period).Average();
                for (int i = 0; i < arr_x.Count; i++)
                {
                    arr_x[i] = arr_x[i] - x_arr_dataAv;
                    arr_y[i] = arr_y[i] - y_arr_dataAv;
                    arr_xx.Add(arr_x[i] * arr_x[i]);
                    arr_xy.Add(arr_y[i] * arr_x[i]);
                }
                double sumxx = arr_xx.Sum();
                double sumxy = arr_xy.Sum();
    
                return Math.Round(sumxy / sumxx, 2);
            }
    

      

  • 相关阅读:
    Ne10编译安装
    AR中的SLAM(一)
    2016总结&2017计划
    DSO之光度标定
    DBoW2库介绍
    Kinect2.0 for Mac开箱
    SVO原理解析
    【漏洞复现】PHPCMS wap模块 SQL注入(附EXP)
    【编程开发】PHP---面向对象教程
    【编程开发】Python---列表
  • 原文地址:https://www.cnblogs.com/gaara-zhang/p/11448322.html
Copyright © 2011-2022 走看看