智能车制作

标题: 【含代码】最小二乘法浅析 By【逐飞科技】 [打印本页]

作者: fbhsy    时间: 2016-2-23 14:42
标题: 【含代码】最小二乘法浅析 By【逐飞科技】
本帖最后由 fbhsy 于 2016-2-23 14:42 编辑

    继上一篇“智能车摄像头浅析贴”后再来聊聊自己对于最小二乘法一些浅薄认识。(最后附上代码)
    这次就不讲硬件了,来讲讲数学,主要为小白提供一点思路。欢迎大神指出错误,我会及时作出改正。
     
     最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。智能车中经常遇到求斜率这样的问题,由于数据是离散的普通方法不是很好,使用最小二乘法来拟合这些离散的点,拟合了之后根据曲线来补线,这样效果应该就不错了,当然用处不止这一个,还有很多,具体怎么用就得看你能想到什么。可能有的人看到公式什么的就头疼,其实掌握这个算法其实只要理解“平方和为最小”基本就掌握最主要的思想了,具体怎么运算就是数学知识了,数学知识不够就得自己好好脑补了,好了不多说废话了,上图。如果需要的就下载附件,里面有PDF文档还有matlab源代码,已测试可以运行。

     提前祝大家取得自己满意的成绩!!!!!!!!!!

     依旧附上逐飞科技座右铭分享给大家:永远不要轻视行动的力量!

    逐飞科技技术贴链接:
    1、 第十一届规则之我见 by“逐飞科技” :http://www.znczz.com/thread-238732-1-1.html
    2、【含视频】线性CCD选型、应用浅析 By【逐飞科技】:http://www.znczz.com/thread-239424-1-1.html
    3、【含视频】智能车摄像头浅析 By【逐飞科技】:http://www.znczz.com/thread-240006-1-1.html

    本文由“逐飞科技”编辑整理,大神轻拍,欢迎交流,愿智能车世界更美好!






补充内容 (2016-2-24 16:14):
逐飞科技智能车交流群:179029047
作者: cankun1314    时间: 2016-2-23 14:46
顶一个
作者: melman    时间: 2016-2-23 15:12
学习学习
作者: fighting001    时间: 2016-2-23 16:33
受教了,谢谢分享
作者: 安小赞思密达    时间: 2016-2-23 16:58
真是好东西呀!!
作者: freescal001    时间: 2016-2-23 17:44
干货满满,顶你们
作者: KTiger    时间: 2016-2-23 19:43
顶一下~~
作者: 1325536866    时间: 2016-2-23 19:55
顶一个
作者: g847279681    时间: 2016-2-23 20:43
c语言拟合?还是matlab?
作者: timber    时间: 2016-2-24 09:18
顶一个
作者: 勤奋的MCU    时间: 2016-2-24 09:57
顶顶顶,直线拟合的C代码很简单,但是多项式拟合就要自己写个矩阵运算的库了。。。求点资料
作者: luckner    时间: 2016-2-24 11:10
数值分析之拟合插值啊
作者: gdz    时间: 2016-2-24 14:19
表示数学不是很好:L:L:L:L:L
作者: fbhsy    时间: 2016-2-24 16:14
cankun1314 发表于 2016-2-23 14:46
顶一个

谢谢支持!

作者: fbhsy    时间: 2016-2-24 16:16
g847279681 发表于 2016-2-23 20:43
c语言拟合?还是matlab?

matlab

作者: fbhsy    时间: 2016-2-24 16:17
luckner 发表于 2016-2-24 11:10
数值分析之拟合插值啊

冠军见笑了

作者: fbhsy    时间: 2016-2-24 16:22
勤奋的MCU 发表于 2016-2-24 09:57
顶顶顶,直线拟合的C代码很简单,但是多项式拟合就要自己写个矩阵运算的库了。。。求点资料

多项式稍微麻烦点,建议慢慢撸,参照工程数学--线性代数,然后撸代码

作者: 1325536866    时间: 2016-2-24 16:24
勤奋的MCU 发表于 2016-2-24 09:57
顶顶顶,直线拟合的C代码很简单,但是多项式拟合就要自己写个矩阵运算的库了。。。求点资料

没事的话,按看着数学书,慢慢写每一个运算,我觉得写这个还是蛮有趣的。以前刚学线性代数的时候我写了一下矩阵求值,当时都高兴的不得了。

作者: fbhsy    时间: 2016-2-24 16:31
安小赞思密达 发表于 2016-2-23 16:58
真是好东西呀!!

谢谢支持!

作者: 安小赞思密达    时间: 2016-2-24 16:43
PDF文档里面第二页第一个公式掉了一个b
作者: fbhsy    时间: 2016-2-24 16:45
安小赞思密达 发表于 2016-2-24 16:43
PDF文档里面第二页第一个公式掉了一个b

好尴尬,O(∩_∩)O哈哈~

作者: 安小赞思密达    时间: 2016-2-24 16:47
fbhsy 发表于 2016-2-24 16:45
好尴尬,O(∩_∩)O哈哈~

已经很了不起啦 加油!

作者: fbhsy    时间: 2016-2-24 17:01
安小赞思密达 发表于 2016-2-24 16:47
已经很了不起啦 加油!

谢谢支持,我们走的高品质路线,有需要欢迎选购哦

作者: luckner    时间: 2016-2-24 17:16
fbhsy 发表于 2016-2-24 16:17
冠军见笑了

什么跟什么啊
作者: fbhsy    时间: 2016-2-24 17:20
luckner 发表于 2016-2-24 17:16
什么跟什么啊

帮你同学弄的毕设开撸了没啊?

作者: luckner    时间: 2016-2-24 17:23
fbhsy 发表于 2016-2-24 17:20
帮你同学弄的毕设开撸了没啊?

没呢  Q上说

作者: fbhsy    时间: 2016-2-24 17:25
luckner 发表于 2016-2-24 17:23
没呢  Q上说

了然。。。

作者: 睡石答春绿    时间: 2016-2-24 20:55
学习学习学习
作者: fbhsy    时间: 2016-2-25 09:21
KTiger 发表于 2016-2-23 19:43
顶一下~~

感谢顶贴!

作者: YKAZ    时间: 2016-2-25 12:17
求教电轨组怎么拟合!!!
作者: fbhsy    时间: 2016-2-25 13:17
YKAZ 发表于 2016-2-25 12:17
求教电轨组怎么拟合!!!

揣测电轨组可以用来拟合多次的值做一点预判和参考,这只是个工具,具体怎么用,用来处理哪些数据还要自己多思考才行。

作者: fbhsy    时间: 2016-2-25 15:26
timber 发表于 2016-2-24 09:18
顶一个

感谢顶贴!
作者: freescal001    时间: 2016-2-26 16:43
gdz 发表于 2016-2-24 14:19
表示数学不是很好

赶紧补补

作者: fbhsy    时间: 2016-2-26 16:44
gdz 发表于 2016-2-24 14:19
表示数学不是很好

同意楼上,赶紧补补

作者: fbhsy    时间: 2016-2-26 16:45
melman 发表于 2016-2-23 15:12
学习学习

谢谢捧场!

作者: gdz    时间: 2016-2-26 18:27
freescal001 发表于 2016-2-26 16:43
赶紧补补

{:2_41:},最要命的就是数学啊!不过还是得学,太心酸了!

作者: fbhsy    时间: 2016-3-1 11:12
freescal001 发表于 2016-2-23 17:44
干货满满,顶你们

感谢顶贴!

作者: 滴滴哒哒    时间: 2016-3-1 12:16
[attach]84070[/attach]
谢谢分享~ 我是直接用公式拟合,x表示行,y表示线的列,结果拟合出来y(av) = b*x(av)+a中b那个系数一直为0,想了下应该是lxy那部分比lxx(我想是因为y方向点比较密,每个点距离平均值很近),结果导致b=0了 - -拟合出来直接就是一条竖线,y = a了。请问楼主出现了这种情况吗,我还不知道怎么解决 - -

作者: fbhsy    时间: 2016-3-1 17:49
滴滴哒哒 发表于 2016-3-1 12:16
谢谢分享~ 我是直接用公式拟合,x表示行,y表示线的列,结果拟合出来y(av) = b*x(av)+a中b那个系数一直为 ...

如果只是上面的比下面小,那就用浮点数,这样b就不会是蛋(0)了,如果上面比下面小的太多建议不要使用相邻的点,隔几个点娶(取)一个数据。

作者: 王璐强    时间: 2016-3-1 18:10
赞一个
作者: fbhsy    时间: 2016-3-1 18:26
gdz 发表于 2016-2-26 18:27
,最要命的就是数学啊!不过还是得学,太心酸了!

:lol:lol

作者: fbhsy    时间: 2016-3-1 18:28
睡石答春绿 发表于 2016-2-24 20:55
学习学习学习

谢谢支持,相互交流

作者: 滴滴哒哒    时间: 2016-3-2 12:53
fbhsy 发表于 2016-3-1 17:49
如果只是上面的比下面小,那就用浮点数,这样b就不会是蛋(0)了,如果上面比下面小的太多建议不要使用相 ...

好的,谢谢 ~

作者: fbhsy    时间: 2016-3-3 10:23
王璐强 发表于 2016-3-1 18:10
赞一个

感谢师弟捧场

作者: fbhsy    时间: 2016-3-3 10:25
fighting001 发表于 2016-2-23 16:33
受教了,谢谢分享

你的摄像头跑多少了?

作者: 斯特凡    时间: 2016-3-3 10:37
受教。。。。。。。。。。。。。。。。。。。。。。。
作者: fbhsy    时间: 2016-3-3 10:42
斯特凡 发表于 2016-3-3 10:37
受教。。。。。。。。。。。。。。。。。。。。。。。

谢谢捧场!还等着你来采购呢,QQ ID也是斯特凡的是你么?

作者: qazwsxle    时间: 2016-3-4 16:59
MATLAB好搞啊,主要是c语言,而且这个要求很高的计算量我现在很困惑,矩阵的逆怎么用c语言求啊!!

作者: 1325536866    时间: 2016-3-4 17:40
qazwsxle 发表于 2016-3-4 16:59
MATLAB好搞啊,主要是c语言,而且这个要求很高的计算量我现在很困惑,矩阵的逆怎么用c语言求啊!!

恐怕只有翻书了,对着书看。

作者: fighting001    时间: 2016-3-8 12:11
fbhsy 发表于 2016-3-3 10:25
你的摄像头跑多少了?

我水平不怎么样,希望能拿个奖吧

作者: fbhsy    时间: 2016-3-8 13:46
fighting001 发表于 2016-3-8 12:11
我水平不怎么样,希望能拿个奖吧

没事,慢慢来,有什么心得体会欢迎交流哦。。。

作者: 刘云峰1996    时间: 2016-3-8 22:15
ddddddddddddddd
作者: fbhsy    时间: 2016-3-9 09:42
刘云峰1996 发表于 2016-3-8 22:15
ddddddddddddddd

谢谢捧场!!

作者: fbhsy    时间: 2016-3-22 13:55
fighting001 发表于 2016-3-8 12:11
我水平不怎么样,希望能拿个奖吧

加油加油!

作者: cgpljl    时间: 2016-3-26 08:04
楼主,最小二乘法拟合出来的线该怎么用啊?

作者: fbhsy    时间: 2016-3-26 10:42
cgpljl 发表于 2016-3-26 08:04
楼主,最小二乘法拟合出来的线该怎么用啊?

用法多多,趋势判断,补线等,更多的用法和其他领域的一些用法你可以多查一下,这样你对这个方法的理解更透彻,思路也更开阔

作者: joe230023    时间: 2016-3-27 21:42
顶一个
作者: joe230023    时间: 2016-3-27 23:46
fbhsy 发表于 2016-3-26 10:42
用法多多,趋势判断,补线等,更多的用法和其他领域的一些用法你可以多查一下,这样你对这个方法的理解更 ...

拟和中线用普通的直线拟和就可以了吧

作者: fbhsy    时间: 2016-3-28 09:11
joe230023 发表于 2016-3-27 23:46
拟和中线用普通的直线拟和就可以了吧

先用一阶,什么时候感觉自己不满足了再上三阶   五阶,不断完善

作者: q15920078530    时间: 2016-3-28 20:42
渣渣的我拿MATLAB运行这些程序竟然会报错。。。。。。
作者: fbhsy    时间: 2016-3-28 21:31
q15920078530 发表于 2016-3-28 20:42
渣渣的我拿MATLAB运行这些程序竟然会报错。。。。。。

亲测可运行的,看看是不是其他问题

作者: q15920078530    时间: 2016-3-29 00:24
fbhsy 发表于 2016-3-28 21:31
亲测可运行的,看看是不是其他问题

偷懒一下,不百度,直接贴问题

作者: 施主请留步    时间: 2016-3-29 11:11
最小二乘法的输入是坐标(x,y),可是发现只有x(126位中边界的数值),可是Y该用什么来当呢?
作者: Quixote    时间: 2016-3-31 15:49
http://blog.csdn.net/acdreamers/article/details/44662633
作者: fbhsy    时间: 2016-3-31 16:50
q15920078530 发表于 2016-3-29 00:24
偷懒一下,不百度,直接贴问题

[attach]84615[/attach]我的运行一切正常,我的matlab是2015b版本的你也用这个版本看看呢。

作者: fbhsy    时间: 2016-3-31 16:52
施主请留步 发表于 2016-3-29 11:11
最小二乘法的输入是坐标(x,y),可是发现只有x(126位中边界的数值),可是Y该用什么来当呢?

什么情况只有X,没有Y呢。

作者: 施主请留步    时间: 2016-3-31 18:43
fbhsy 发表于 2016-3-31 16:52
什么情况只有X,没有Y呢。

不是我是不明白在飞思卡尔比赛中应用最小二乘法来拟合直线该给算法什么变量来当x,y来求直线

作者: 火麟龙    时间: 2016-4-2 14:51
不错  不错

作者: 万川集海    时间: 2016-4-2 15:36
直线拟合的公式推导是不是出错了?
作者: fbhsy    时间: 2016-4-12 20:23
施主请留步 发表于 2016-3-31 18:43
不是我是不明白在飞思卡尔比赛中应用最小二乘法来拟合直线该给算法什么变量来当x,y来求直线

一幅图像不是有行 与 列吗,这样就不是有XY了吗。

作者: fbhsy    时间: 2016-4-12 20:30
万川集海 发表于 2016-4-2 15:36
直线拟合的公式推导是不是出错了?

哪里有错呢,请您指出来我看看呢。

作者: 施主请留步    时间: 2016-4-12 21:35
fbhsy 发表于 2016-4-12 20:23
一幅图像不是有行 与 列吗,这样就不是有XY了吗。

CCD单行数据,要保存多次数据再处理吗

作者: fbhsy    时间: 2016-4-12 22:10
施主请留步 发表于 2016-4-12 21:35
CCD单行数据,要保存多次数据再处理吗

用历史数据做个趋势判断可以这么用,但是更多的是在摄像头上的应用可能实时性才能体现出来

作者: 万川集海    时间: 2016-4-12 22:49
本帖最后由 万川集海 于 2016-4-12 23:10 编辑
fbhsy 发表于 2016-4-12 20:30
哪里有错呢,请您指出来我看看呢。

好吧,我没看清楚,前面楼的已经提到了,推导过程少了个字母,但不知道您有没有试过换个数据拟合,下面图一是我换来数据后的拟合点(即Y的数据),图二是我用网上的公式拟合的,不知是不是我理解错了?

作者: 丑人多作怪    时间: 2016-4-30 13:11
学习学习
作者: longxiaozhi    时间: 2016-4-30 15:01
受教,顶帖,赞
作者: 我心依旧zw    时间: 2016-6-1 23:08
在哪里?

作者: 么饿么么么    时间: 2016-6-3 17:42
6666666666666
作者: mego    时间: 2016-6-3 20:43
赞一个
作者: 残虹断梦    时间: 2016-6-3 20:53
十字补线能不能用到这种思想?
作者: 残雨    时间: 2016-7-11 15:55
:P:P
作者: 彩色胸毛    时间: 2016-7-11 16:14
学习学习
作者: 木易易易易    时间: 2016-8-31 10:39
:):)
作者: dreamadmirer    时间: 2017-2-17 14:10
谢谢分享。。。
作者: 鸣人0191    时间: 2017-12-14 21:33
这种最小二乘法如何用在电磁车上?
作者: 安于现状    时间: 2017-12-15 10:52
学习一下
作者: wx_GY3NOCjs    时间: 2018-2-9 14:29
感谢感谢
作者: wx_GY3NOCjs    时间: 2018-2-9 14:29
感谢感谢
作者: 2423474302    时间: 2018-5-17 21:18
论坛真是强大,要啥有啥,给我们这些小白最好的指导,赞一个
作者: 846160606    时间: 2018-6-13 12:42
:):):):):)
作者: l明天你好    时间: 2018-11-12 01:09
谢谢

作者: cxr18220662742    时间: 2019-3-31 15:42
学习了




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2