如何求两条异面直线的最小二乘解

BosKin 2000-09-01 10:40:00
加精
如果平面上两条直线相交,必有一个交点。如果由于计算的误差或是其他原因
使得理想状态下相交的直线变成了异面直线,但是还的求出他们的交点来。当
然是近似的。有一种方法叫最小二乘解。不知各位会否。
另外一种就是求他们的距离的中点,。最小二乘解归根结底也是求中点。
那为仁兄愿意帮我。
...全文
193 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
spinner 2000-09-08
  • 打赏
  • 举报
回复
可以这样理解:
就是要求一点(x,y,z),使得它到两条给定直线的距离和最小.然后,这个问题就是如下问题:
设两条异面直线的方程分别为:
L1: /A1x + B1y + C1z + D1 = 0 L2: / A3x + B3y + C3z + D3 = 0
| |
< <
| |
\ A2x + B2y + C2z + D2 = 0 \ A4x + B4y + C4z + D4 = 0

要求两直线的交点, 一般来说, 就是要解:
- A1 B1 C1 D1- - x -
| A2 B2 C2 D2| | y |
| A3 B3 C3 D3| *| z | = 0, 简写成: P*X = 0; 当然,对于异面直线肯定是无解的,
- A4 B4 C4 D4- - 1 -
但是, P*X 总可以设他等于一个向量r (r!=0),最小二乘的意思就是要求f(x,y,z) = r'*r的最小值.
这下知道怎么办了吧,最小值点就是各偏导数等于0的点....
于是就有如下方程组:
P'* P取前三行形成的矩阵(是个3x4矩阵), 记成 Q, Q*X = 0.(X = [x, y, z, 1]') 这是一个3元线性方程组,用高四消元法,就可以解了.解出的(x, y, z)就是你要的最小二乘解.
我在Matlab上试了一下, 结果很对.
duanyi 2000-09-07
  • 打赏
  • 举报
回复
你好!
这个概念好像在上学的时候的。既然是异面直线可以用也这两直线都垂直的方法。
当然不可能一下就垂直,可以现让一条与参考直线垂直,另一条与这参考直线用数学
方法移动。当然不能一次成功,可以搞几个循环,最终使两条直线都与参考直线垂直。
这时两条直线之间的部分是异面直线的距离,交点是就是你要的。
OK!!!!

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧