Matlab实现线性回归(直线拟合)

线性拟合:对于y=a*x+b的形式

a=(N*ΣXi*Yi-ΣXi*ΣYi)/(N*ΣXi*Xi-(ΣXi)2)

b=((ΣXi*Xi)*(ΣYi)-(ΣXi)*(ΣXi*Yi))/(N*ΣXi*Xi-(ΣXi)2)

利用Matlab自带函数可实现:

拟合函数:pn=polyfit(x,y,n)  返回pn系数向量,降阶排列,n为阶数

函数:yy=polyval(pn,x) pn为降阶排列的多项式系数,x为向量或者矩阵,返回yy:将x带入pn后计算得到的向量或者矩阵。

%初始数据
x=[1 2 3 4];
y=[1.1 2.2 2.7 3.8];
%获得线性拟合系数
pn=polyfit(x,y,1);

yy=polyval(pn,x);
subplot(1,2,1);
plot(x,y);
subplot(1,2,2);
plot(x,yy);

结果:pn=0.86,0.3

时间: 2025-01-12 02:56:48

Matlab实现线性回归(直线拟合)的相关文章

Matlab实现线性回归和逻辑回归: Linear Regression & Logistic Regression

原文:http://blog.csdn.net/abcjennifer/article/details/7732417 本文为Maching Learning 栏目补充内容,为上几章中所提到单参数线性回归.多参数线性回归和 逻辑回归的总结版.旨在帮助大家更好地理解回归,所以我在Matlab中分别对他们予以实现,在本文中由易到难地逐个介绍. 本讲内容: Matlab 实现各种回归函数 ========================= 基本模型 Y=θ0+θ1X1型---线性回归(直线拟合) 解决

直线拟合算法

在计算机视觉的应用中,经常会用到提取一条直线的精确位置这样的工作.这时就要用到直线的拟合算法了. 这里,我也贴一个利用最小二乘法计算最佳拟合直线的代码. 这个代码是我以前学习<机器视觉算法与应用(双语版)>[德] 斯蒂格(Steger C) 著:杨少荣 等 译 的书时写的.所有的公式推导都在书中 3.8.1 ,还算比较有用. 与一元线性回归算法的区别:一元线性回归算法假定 X 是无误差的,只有 Y 有误差. 而这个算法假设每个点的 X Y 坐标的误差都是符合 0 均值的正态分布的. 因此,在计

OpenCV 学习(直线拟合)

OpenCV 学习(直线拟合) Hough 变换可以提取图像中的直线.但是提取的直线的精度不高.而很多场合下,我们需要精确的估计直线的参数,这时就需要进行直线拟合. 直线拟合的方法很多,比如一元线性回归就是一种最简单的直线拟合方法.但是这种方法不适合用于提取图像中的直线.因为这种算法假设每个数据点的X 坐标是准确的,Y 坐标是带有高斯噪声的.可实际上,图像中的每个数据点的XY 坐标都是带有噪声的. 下面就来讲讲适用于提取图像中直线的直线拟合算法. 一个点 (xi,yi) 到直线的距离用 ri 来

ax+by+c=0 型直线拟合算法

所谓直线拟合,通常也叫做线性拟合.一元线性回归.指的是当我们有一批数据(xi,yi),这些数据在平面坐标系下落在一条直线上,或近似的落在一条直线上.我们就要求出这条直线的参数.如果这条直线可以写为: y=kx+b 那么 k=∑(xi?xˉ)(yi?yˉ)∑(xi?xˉ)2 b=yˉ?kxˉ 这个关系式许多教科书上都有详细的推导,无需多说. 今天要说的是另一种情况,当我们的数据有可能落在一条竖直的直线上,也就是k 有可能为∞ 时,应该如何做拟合.这时我们肯定就不能用y=kx+b 了,但是可以将这个

基于EM的多直线拟合实现及思考

作者:桂. 时间:2017-03-22  06:13:50 链接:http://www.cnblogs.com/xingshansi/p/6597796.html 声明:欢迎被转载,不过记得注明出处哦~ 前言 分布拟合与曲线拟合系列本想简单梳理,却啰嗦的没完没了.本文主要介绍:多直线的拟合,多曲线可以依次类推.全文主要包括: 1)背景介绍 2)理论推导 3)代码实现 4)关于拟合的思考 内容多有借鉴他人,最后一并附上链接. 一.背景介绍 对于单个直线,可以借助MLE或者最小二乘进行求参,对于多条

OpenCV fitline直线拟合函数学习

下图是OpenCV官方文档中,对直线拟合函数的详细介绍: fitLine()函数用于,对二维或三维空间中的点集进行直线拟合.共有六个参数: param 1:输入的点集,可以是Mat或者vector<>,可以是二维点集或三维点集. 例如: vector<Point> points; param 2:拟合结果,即一条直线.在二维空间中,直线可以定义为 Vec4f line; 在二维平面中,(line[0],line[1])表示直线的方向向量,(line[2],line[3])表示直线上

直线拟合算法(续)

直线拟合算法(续) 曾经写过一篇博客.介绍直线拟合算法. http://blog.csdn.net/liyuanbhu/article/details/50866802 给出的代码事实上有一点小问题,就是 den = 0 时会出现除以 0 的错误. 今天正好也有网友问起这个问题. 我就再写一篇短文来说说怎样解决问题. 首先我们知道: den=D2xy+(λ?Dxx)2??????????????√ 那么 den=0 意味着: Dxy=0λ=Dxx 我们还有关于 λ 的计算式: λ=Dxx+Dyy

最小二乘法直线拟合

最小二乘法的直线拟合 #coding:utf-8 import numpy as np import matplotlib.pyplot as plt dots = np.array([[1,6], [2,5], [3,7], [4,10]]) plt.plot([i[0] for i in dots],      [i[1] for i in dots], 'ro') plt.axis([0, 6, 0, 12]) def nihezhixian(k, x, b):     return k*

(原)opencv直线拟合fitLine

转载请注明出处 http://www.cnblogs.com/darkknightzh/p/5486234.html 参考网址: http://blog.csdn.net/thefutureisour/article/details/7599537 1 Mat img(60, 60, CV_8UC1, Scalar(0)); 2 std::vector<Point2f> points; 3 points.push_back(Point2f(10.5, 10.2)); 4 points.push

基于MATLAB的多项式数据拟合方法研究-毕业论文

摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式曲线拟合的基本理论,对多项式数据拟合原理进行了全方面的理论阐述,同时也阐述了曲线拟合的基本原理及多项式曲线拟合模型的建立.具体记录了多项式曲线拟合的具体步骤,在建立理论的基础上具体实现多项式曲线的MATLAB实现方法的研究,采用MATLAB R2016a的平台对测量的数据进行多项式数据拟合,介绍了M