任务描述:如何由窗口中一系列点确定一条直线,使这些点到这条直线的距离的平方和最小,并画出这条直线。
基本思路:由最小二乘法确定直线的方程,然后确定直线与窗口的两个交点,画出直线即可
这样看来似乎很简单,于是我选了 y = k × x + b 作为我的基本模型
//端点即为(0,b) 和 (b/(-k),0)
在这里,忽视以下两个因素:
①直线的斜率 k = ∞ 的情况
②直线的斜率 k ≥ 0 的情况
而且还存在着以上两种情况时直线的表示方法。
解决方案:
①利用以上模型求解方程,但是利用 a*x + b*y +c =0表示模型,那么直线与窗口的两个交点即可由此方程直接求出
②在 k > 10000时我将之等效为∞的情况,此时表示y的系数为0,那么就解决这个问题了
其他问题:
① 是否存在方程不存在解的情况
② 若n个点的分布为正n边形,此时如何处理?
思路,利用其中部分点确定一条直线,然后指出此种情况不存在最优直线(比如,保证其中某条直线过其重心即可),是否最优有待继续考虑……
阅读(848) | 评论(1) | 转发(0) |