最小二乘法-直线拟合-推荐方法
1. 最小二乘法
首先举个例子。
针对线性最小二乘法即直线拟合,如下图(来自维基百科)所示:
根据已有的数据(图中的点),来做出一条最贴近数据发展趋势的直线。
通过这条直线,我们可以对未来的数据进行预测,因为基本会落在这条直线附近。
当然了,最小二乘法不只是直线,还可以是曲线,本文不讨论。
2. 求解直线方程
我们现在要做的,就是求解直线方程。
假设已知有N个点,设这条直线方程为: y = a·x + b
其中,a和b的计算公式如下:
3. 算法代码
#define DEFAULT_EPS 1e-15
STATUS LeastSquareLinearFit(double *x, double *y, const int num, double *a, double *b)
{
int i = 0;
double denominator = 0.0;
double sum_xsquared = 0.0;
double sum_y = 0.0;
double sum_x = 0.0;
double sum_xy = 0.0;
for (i = 0; i < num; ++i)
{
sum_xsquared += x[i] * x[i];
sum_y += y[i];
sum_x += x[i];
sum_xy += x[i] * y[i];
}
denominator = (num * sum_xsquared - sum_x * sum_x);
if ( fabs(denominator) <= DEFAULT_EPS )
{
return -1;
}
*a = (num * sum_xy - sum_x * sum_y) / denominator;
*b = (sum_xsquared * sum_y - sum_x * sum_xy) / denominator;
return 0;
}
最小二乘法-直线拟合-推荐方法相关推荐
- 基于opencv的c++图像处理(霍夫直线检测与最小二乘法直线拟合)
前言 基于opencv的c++接口,实现标准的霍夫直线检测.基于统计概率的霍夫直线检测.以及最小二乘法直线拟合. 相关的opencv接口解析 CV_EXPORTS_W void HoughLines( ...
- 最小二乘法直线拟合汇总
原文链接:https://www.jianshu.com/p/1c4f3edbaa47 首先最小二乘法是面对不连续的离散点. 它的本质是求某些参数,估计值在整体下可以使误差ε最小. 对于离散点的直线拟 ...
- 最小二乘法直线拟合及其Matlab实现
最小二乘法,通常用在我们已知数学模型,但是不知道模型参数的情况下,通过实测数据,计算数学模型,例如,在题目中,数学模型就是直线方程y=ax+b,但是不知道直线方程的a和b. 本来呢,我们只需要两组(x ...
- 最小二乘法直线拟合c语言代码,最小二乘法拟合一条直线(C语言代码)
最小二乘法拟合一条直线(C语言代码) #include #define N 9 //N为要拟合的数据的个数 float X[9] = {1,1.477,1.778,2,2.176,2.301,2.39 ...
- 最小二乘法、加权最小二乘法——直线拟合
对多篇最小二乘法相关的资料的整合,如有错误,敬请指正! 原文地址1 原文地址2 线性回归 线性回归假设数据集中特征与结果存在着线性关系: y = m x + c y = mx+c y=mx+c y为结 ...
- 最小二乘法直线拟合计算
说明 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 . ...
- 最小二乘法直线拟合、圆拟合
- RANSAC算法实现 + 直线拟合
一.RANSAC算法 1.参考资料 [1]题目来源与解析:商汤科技SLAM算法岗的RANSAC编程题 [2]牛客网题目:[编程题]线性回归 [3]牛客网解答参考:商汤科技某算法岗的编程题有点过分了啊 ...
- 二维直线拟合--opencv实现
二维/三维直线拟合–opencv实现 Hough变换可以提取图像中的直线,但是提取线的精度不高,然而我们的很多场合下需要精确估计直线的参数,这时就需要进行直线拟合. 直线拟合的方法有很多,比如 ...
最新文章
- bzoj 1233: [Usaco2009Open]干草堆tower【dp+单调栈】
- Linux内核探讨-- 第六章
- 弗林斯传输公式、天线温度
- LeetCode 532. K-diff Pairs in an Array
- chrome浏览器导出书签 如何导入收藏夹
- 高级定价基本概念理解
- socket 函数 setsockopt()用法
- 强化学习进阶【逆强化学习】
- 2021数学建模B题 空气质量二次模型
- C++程序设计谭浩强 全部习题答案
- 抖音:时间熔炉的诞生
- POJ 3744 Scout YYF I:概率dp
- c语言加权成绩,[求助]写了一个计算加权平均分的程序,总是报错。大神啊~
- Android studio 模拟器启动黑屏解决办法
- 机械零件委托加工合同
- Spark 应用开发程序
- 电子采购:制造业的“救星”
- 1w存银行一年多少利息_500万、1000万存银行一年有多少钱利息?能靠利息生活吗?...
- java job定时任务_java实现job功能,定时开启任务
- Python 实例教学_ 03_列表
热门文章
- IDEA中的MyBatis插件
- C语言取整(含强制转换)
- Command--Windows
- mysql优化1001mysql优化_mysql优化之基础规范
- 轮播swiper中加视频video滑动不顺畅报错 property on ‘HTMLMediaElement‘: The provided double value is non-finite.
- 3.2 使用STC89C52控制MC20发送短信
- 德国语言C1注册入学,德国留学需要通过哪些语言考试
- warning: CALF wilL be replaced by LF in xxxx 问题解决办法
- 基于空间的图卷积网络和基于谱的图卷积网络(spectral-based GCN and spatial-based GCN)
- 区块链相关名词解释汇总