2011-07-31 16 views
4

Iは、表面メッシュから得られた(形態X1、Y1、Z1 ... XN、YN、ZNに)点の集合を有します。私は、直交距離を最小限に抑えて、これらの点に最適な3D平面を見つけたいと考えています。 X、Y、Z座標独立しており、それは私は係数Aを取得する場合、平面方程式Axを+によって+のCz + D = 0最適平面は

ためのB、C、DのアルゴリズムであるものA、B、C、Dを得る?

previous postでは、ZX、Yの線形関数を調整考慮することによって、最小二乗の意味で最適平面を考察しました。しかし、これは私の場合ではありません。

+0

「直交距離を最小にする」とはどういう意味ですか?直交距離の二乗和のように、** one **量のみを最適化することができます。 –

答えて

5

メモリから、これは固有ベクトル問題に変わります。ある点からあなたの飛行機までの距離は、Ax + By + Cz + Dに比例します。これを見る1つの方法は、飛行機の法線が(A、B、C)であることに注意することです。定数Dは首の痛みですが、変数を定義し直して定数をすべてゼロにするように変数を定義し直すことができると思います。この場合、最もフィットする平面が原点を通ります。

次に、Aが3ベクトルであるSUM_i(X_i。A)^ 2を最小化したいと考えます。もちろん、Aのすべての成分にいくつかの小さなスカラーを掛けることで、これを任意に小さくすることができます。 || A ||^2 = 1は、Aを単位ベクトルとすることによって比例関係を意味する。 A '(SUM_i(X_i'X_i))A最小の固有ベクトルをSUM_iのX_i'X_iにしたいと考えています。

(X_i.X_i)

これは、統計で頻繁に使用されない理由の1つは、他の方向の単位を同じ量だけ同様にスケーリングせずに座標ベクトルの単位をスケールすると、得られる答えが変わることです。そういえば

、あなたはこのすべてがhttp://en.wikipedia.org/wiki/Total_least_squares

+0

パーフェクト!それは私が探していたものでした。 – CodificandoBits

+0

あなたは(X_i。A)^ 2 = A '(X_i' X)Aの意味を説明できますか? – Nick

+0

Wikipediaの参考文献も見てくださいが、ここでは "。" X_i.Aの点積(スカラー積としても知られている)であり、「 '」は行列転置行列である。だから私は、2つのベクトルの内積の2乗が、ある側のベクトルを別のベクトルに掛けて、それを乗算してスカラーにすることによって、nxn行列(X_i'X)を生成することと同じであると言っています。他方のベクトルは一方の側でベクトルを形成し、次いでその結果と他方のベクトルとの間にドット積をとる。中心に行列を置くと、これが固有値問題に変わります。 – mcdowella

2

Least Squares Fitting of Dataで適切に働いていた見ることができ、セクション2:「NDの直線フィッティングは直交回帰を使用してポイント」。

mcdowellaが述べたように、3x3固有システムを解決する必要があります。

+0

素晴らしい!リンク – CodificandoBits

+0

のおかげで、それはセクション4ではなく、2です。 –

関連する問題