博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最小二乘法C#实现,简单代码
阅读量:4302 次
发布时间:2019-05-27

本文共 1066 字,大约阅读时间需要 3 分钟。

线性函数模型

典型的一类函数模型是线性函数模型。最简单的线性式是,写成矩阵式,为

直接给出该式的参数解:

 和 

其中,为t值的算术平均值。也可解得如下形式:

b1为斜率,b0为截距,可以先根据x,y数组,以及上面的公式先计算出斜率,再计算截距。
因为原来参考代码中,返回为一个数组,根据与原来代码的兼容性,调用LinearResult(double[],double[])方法返回是一个数组。result[0]为斜率,result[1]为截距。

 class Linear

    {
        public double[] LinearResult(double[] arrayX, double[] arrayY)
        {
            double[] result = { 0, 0 };
 
            if (arrayX.Length == arrayY.Length)
            {
                double averX = arrayX.Average();
                double averY = arrayY.Average();
                result[0] = Scale(averX, averY, arrayX, arrayY);
                result[1] = Offset(result[0],averX,averY);
            }
 
            return result;
        }
 
        private double Scale(double averX, double averY, double[] arrayX, double[] arrayY)
        {
            double scale = 0;
            if (arrayX.Length == arrayY.Length)
            {
                double Molecular = 0;
                double Denominator = 0;
                for (int i = 0; i < arrayX.Length; i++)
                {
                    Molecular += (arrayX[i] - averX) * (arrayY[i] - averY);
                    Denominator += Math.Pow((arrayX[i] - averX), 2);
                }
                scale = Molecular / Denominator;
            }
 
            return scale;
        }
 
        private double Offset(double scale, double averX,double averY)
        {
            double offset = 0;
            offset = averY - scale * averX;
            return offset;
        }
    }

 

转载地址:http://gzlws.baihongyu.com/

你可能感兴趣的文章
struts.xml的加载路径及配置问题
查看>>
安全深度学习框架PySyft
查看>>
游戏引擎mota-js-v3.0 施工记录
查看>>
LeetCode笔记:Move Zeros[Difficulty: Easy]
查看>>
二叉搜索树的一种构造方法
查看>>
提防向量迭代器变成野指针
查看>>
错误:“LNK1169找到一个或者多个重定义的符号”
查看>>
华为的三道笔试OJ题
查看>>
工厂、单例、宏
查看>>
学习C#的第一个程序:笔记查找与记录
查看>>
[算法导论笔记]建立二叉堆
查看>>
const修饰的函数
查看>>
二值形态学基本操作:腐蚀、膨胀、开运算、闭运算
查看>>
微指令的编码与数控程序
查看>>
cocos 学习笔记(一) 3.3x实现触摸拖动图片
查看>>
编译原理学习笔记(一)制导翻译器
查看>>
ArcEngine面要素转线要素
查看>>
ArcEngine在AxMapControl上绘制
查看>>
ArcEngine设置有牵引线的标注
查看>>
ASP.NET 搭建贴吧机器人(零)
查看>>