- 直线方程是y=a*x+b
- 推导如下图
- 右边例子是用(1,8)和(5,20)拟合直线
- C++代码如下
void GetLine(vector<MyPoint> v, float &a, float &b) {
float xy=0,x=0,y=0,xx=0;
int n = v.size();
for(int i = 0; i < v.size(); ++i) {
xy += v[i].x * v[i].y;
x += v[i].x;
y += v[i].y;
xx += v[i].x * v[i].x;
}
a = (n * xy - x * y) / (n * xx - x * x);
b = (y - a * x) / n;
}
- 之前推导过 θ \theta θ=a*x+b*y,这里放上结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)