所谓直线拟合,通常也叫做线性拟合、一元线性回归。指的是当我们有一批数据(xi,yi),这些数据在平面坐标系下落在一条直线上,或近似的落在一条直线上。我们就要求出这条直线的参数。如果这条直线可以写为:
y=kx+b
那么
k=∑(xi−x¯)(yi−y¯)∑(xi−x¯)2
b=y¯−kx¯
这个关系式许多教科书上都有详细的推导,无需多说。
今天要说的是另一种情况,当我们的数据有可能落在一条竖直的直线上,也就是k 有可能为∞ 时,应该如何做拟合。这时我们肯定就不能用y=kx+b 了,但是可以将这个表达式变变形。我们知道
k=tanθ=sinθcosθ
那么原来的直线方程可以写为:
ycosθ=xsinθ+bcosθ
或者写为更一般的形式:
ax+by+c=0
同时满足附加条件:
a2+b2=1
下面就来说说这种形式的直线方程如何拟合。
点到直线的垂直距离
首先先要解决一个小问题,一个点 (xi,yi) 到这条直线的距离是多少。
直接计算有点麻烦,我们先考虑一种简单的形式,点 (0,0) 到这条直线的距离。
直线方程:
xsin(θ)−ycos(θ)+c=0
那么与它垂直的过原点的直线方程为:
xsin(θ+π/2)−ycos(θ+π/2)=0
化简后得到:
xcos(θ)+ysin