……竟然凑够了三十人hhhh

那大家就来看H文写手讲数学吧。

哎呦沃日你大坝,word文档复制粘贴到p站上不会直接把图导进来,离谱……

先修课程:高等数学(基础)、线性代数(重要!)、计算方法(重要!)、机器视觉与人工智能一类的视觉算法课(不是很必要)。

这节课我们讲《最小二乘法在计算机视觉的一些应用》,全文分为三个部分,第一部分讲:什么是最小二乘法?第二第三部分讲最小二乘法的两个应用。

最小二乘法:背景?性质?用途?

很多时候,我们在工程中会遇到解多元一次方程组的问题,比如我们要解一个三元一次方程组,那很明显,我们需要三组互相线性不相关的方程,这样才能恰好解出方程的解X1、X2、X3。也就是说,当我们要解一个n元一次方程组的时候,一般来说是需要n组互相线性不相关的方程的。

这个性质,我们用矩阵来表示:

A(n*n) * X(n*1) = B(n*1)

其中X就是我们要求的解向量。

但是在工程中,我们遇到的问题往往是:我们所列出的方程,每一组都存在误差,比如模拟到数字的转化误差(比如电表量电压的时候,只能显示小数点后一位,但是实际上的电压可能小数点后面还有好几位)、数据类型转化产生的误差(如double到int,6.5->6,这0.5的误差就出来了)……等等等等。

那这样一来,我拿着这些带着误差的值去求解,那当然是铁求错啊!于是乎,工程师们就想了个办法:既然反正错了,不如我多用几组数据去求解,这样去求一个方差最小的解出来,尽量满足计算要求。

好家伙,这样一来,多组数据共同进入运算,互相去消除误差,听起来很美妙对吧?Wouldn’t that be lovely?

我说婷婷。

比如我们用十组(n=10)数据去求解一个六元一次方程吧。

我们再把刚才的矩阵表达式带一遍,会是怎么样呢?

A(10*10) * X(6*1) = B(10*1)

发现问题了没有!矩阵维度根本不一致!这个矩阵乘法等式根本不成立!

那有些同学就问了啊,A它不是一个10*6的矩阵吗?怎么到你这就成了10*10了呢?

哎我说这讲课不是胡说,编课不是瞎编。我们再写一下矩阵表达式:

A(10*6) * X(6*1) = B(10*1)

好!矩阵等式至少在维度上成立了!很有精神!大功告成?

我说婷婷。

10组数据根本解不出来6个未知数,这是一个超定问题(已知的量的个数超过求解需要的量的个数)。

那怎么办?我总不能一下子扔掉后四个已知量吧?且不说这前边的六位兄弟卖了后面的四个兄弟,他们的心里冷~冰~冰~,还有就是我们一开始的目的:多组数据共同进入运算,互相去消除误差没有达到,可以说没有充分地利用已知条件。

那这个时候就要到最小二乘法大显神威了:我们在上一条等式的两边乘以A的转置:

AT(6*6)*A(10*6) * X(6*1) = AT(6*6)*B(10*1)

其他类型小说相关阅读More+

香格里拉系列

pathfinder#大业难成

ghs

pb

楼道狮蝎蓝链补档合集

PhantomX

士织的情人节礼物

piday

雪,狼,棉花糖

PillowDoctor

后日谈系列——当博士和艾丽妮从诺曼城回到泰拉并暴打角角

pilum