Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183330
  • 博文数量: 38
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-05 19:39
文章分类

全部博文(38)

文章存档

2011年(1)

2010年(2)

2009年(2)

2008年(33)

我的朋友

分类:

2009-02-23 16:34:25

任务描述:如何由窗口中一系列点确定一条直线,使这些点到这条直线的距离的平方和最小,并画出这条直线。
基本思路:由最小二乘法确定直线的方程,然后确定直线与窗口的两个交点,画出直线即可
这样看来似乎很简单,于是我选了 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) |
给主人留下些什么吧!~~

whurs2009-03-02 10:48:54

这里不存在解的情况即为 k = ∞时,此时只有两个参数,那么对应法方程系数也就是4个cc[4],其中cc[1]*cc[2]==cc[0]*cc[3]时法方程无解,再采取相应措施。对于无最优解的情况,取其任意最优解即可