求救:一个复杂的简单问题(100分)

  • 主题发起人 主题发起人 冰冷的雨
  • 开始时间 开始时间
jsxjd,您好。
感谢您的帮助。答案否定了也没关系啊,我会给你分的:)
这个问题我也有很多思路,因为它的确是个简单问题。但是考虑到各种复杂的情况,
(例如,扫描的图像当然不会“除了这个矩形之外其余地方都是空白的”),不是
算法不完善,就是效率不高。也就不那么简单了,所以我说是个“简单的复杂问题”
:)
这个问题是很有实用价值,希望各大富翁能参与讨论。
 
这是一个数学建莫问题,就是在像素干扰下的直线得斜律求法。
如下,
00000000001
00000000110
00000011000
00001100000
就是说,当直线细化后,它的点不是数学上的直线,而是线段的连接,线段只有三中完全斜率
横的,竖的和45度角
任意去两点是不正确的,起点和终点也是不精确的,要知道斜率只有多次取值,多次计算,
加权平均,呵呵,或则用一些数学方法。
 
gophie说的不错。“用一些数学方法”,比如说?
 
同意线性回归,线性回归的原理最小二乘
即回归出一条直线方程 y=ax+b, a,b 是待定的参数
使回归直线上的点到你要求斜率的直线之间的距离最小
求解方法是写出你定义的 距离=表达式(包含待定的参数a,b)
对此表达式求导,得出倒数为0的时的a,b的值就可以了
还可以简单化一下:
先用最小二乘原理求出一个点(近似为直线中心),然后还是用最小二乘原理求出斜率
距离一般定义为点与点之间的平方和
 
请jsxjd、gophie和Haha..到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1181236来拿分!
最好能给我一个线性回归的例子:)
 
其实回归只是统计学上检验线性是否明显的一种方法,就是说,回归后得出一个
值,如果这个值达到一定程度就说明你的问题线性明显
你的问题既然已经是直线,我们只要拟合出直线来,至于检验线性是否明显,好像
只要一个公式,或现在已经没有必要
方法如下:(要一点微分的知识),如下三个点及其坐标(已知)
用直线拟合A,B,C三点(当然可以更多)
.A(x1,y1) .B(x2,y2)
----------------------------------------------------直线 y-b=s(x-a) s待定

.P(x,y)----->(a,b)

.C(x3,y3)
步骤如下:先找一点P,使它到A,B,C三点的距离之和最小,这样,近似认为P是你要拟合的
这些点群的中心,
距离d= (x-x1)^2 +(y-y1)^2 + (x-x2)^2 +(y-y2)^2 + (x-x2)^2 +(y-y2)^2
距离的定义不用太严格只要不出现负数,这里不开方是为了求导方便
然后分别对x,和y求导,使其=0,就是说下面两式
(x-x1)^2 +(y-y1)^2 + (x-x2)^2 +(y-y2)^2 + (x-x2)^2 +(y-y2)^2 对于x的导数=0 ;
(x-x1)^2 +(y-y1)^2 + (x-x2)^2 +(y-y2)^2 + (x-x2)^2 +(y-y2)^2 对于y的导数=0 ;
只有两个未知数x,y,求出他们(确定他们是最小值点),就是P(x,y).
为了叙述方便,现在我们把P坐标标记为(a,b),我们还要直线拟合,这条直线经过P,
待定的斜率记为s,这样方程写为y-b=s(x-a)
于是再定义一种点群到直线的距离(你自己根据情况定义,垂直与水平距离的加权平均比较好)
,同样得出:
距离d = 一个关于s的二次式 记为f(s)
f(s) 对s求导 = 0 (这是关于s的一次式)
这样求出了s,就是斜率
OVER!!!!
这只是数学上解决问题的方法(比较有理论依据),相信还有更好的
详细情况,你可以找一本微积分书,回归最好是参考统计学书
 
后退
顶部