最小二乘法求拟合曲线(中线)的斜率和截距 |
您所在的位置:网站首页 › matlab求线性拟合直线 › 最小二乘法求拟合曲线(中线)的斜率和截距 |
最小二乘法:
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最 小,简单来说,就是通过最小化误差的平方和,使得拟合对象无限接近目标对象,这就是最小二乘的核心思想。最小二乘法还可用于曲线拟合。 在此先列举一下最小二乘家族成员。最小二乘法直线拟合,最小二乘法多项式(曲线)拟合,机器学习中线性回归的最小二乘法,系统辨识中的最小二乘辨识法,参数估计中的最小二乘法,等等 这里我们要说的是最小二乘法拟合曲线的斜率。 拟合直线作用: 在我们做一些处理的时候,得到的数据可能是一些离散的点,而我们往往希望得到一个连续的函数(也就是拟合直线)或者更加密集的离散方程与已知数据相吻合,这过程就叫做拟合, 推导: 相信各位高中都已经学过了,下面我们给出计算中线斜率的代码 /************************************线性回归计算中线斜率************************************/ // y = Ax+B int regression(int startline,int endline) { int i=0,SumX=0,SumY=0,SumLines = 0; float SumUp=0,SumDown=0,avrX=0,avrY=0,B,A; SumLines=endline-startline; // startline 为开始行, //endline 结束行 //SumLines for(i=startline;i SumUp+=(Middle_black[i]-avrY)*(i-avrX); SumDown+=(i-avrX)*(i-avrX); } if(SumDown==0) B=0; else B=(int)(SumUp/SumDown); A=(SumY-B*SumX)/SumLines; //截距 return B; //返回斜率 } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |