質問

一連の点があり、次の形式で最小二乗解を導出できます。

z = Ax + By + C  

計算した係数は正しいですが、この形式の方程式で平面に垂直なベクトルを取得するにはどうすればよいでしょうか?この方程式の A、B、C 係数を単に使用するだけでは、テスト データセットを使用した法線ベクトルとしては正しくないようです。

役に立ちましたか?

解決

dmckeeの答えに続きます:

A、X B =(a2b3 - a3b2)、(A3B1 - A1B3)、(A1B2 - A2B1)

あなたのケースでは、A1 = 1、A2 = 0 A3 = A、B1 = 0、B2 = B3 = B 1

そう=(-A)、(-B)、(1)

他のヒント

2 つのベクトルを形成する

v1 = <1 0 A>
v2 = <0 1 B>

どちらも平面内にあり、外積をとります。

N = v1 x v2 = <-A, -B, +1>     (or    v2 x v1 = <A, B, -1>  )

これが機能するのは、2 つのベクトルの外積が常に両方の入力に対して垂直であるためです。したがって、平面内で 2 つの (同一線上にない) ベクトルを使用すると、法線が得られます。

注意: あなたはおそらく、 正規化された もちろん普通ですが、練習として残しておきます。

dmckee の回答に少し色を加えました。直接コメントしたいところですが、まだ十分な SO 担当者がいません。;-(

C=0 の場合、平面 z = Ax + By + C には点 (1, 0, A) と (0, 1, B) のみが含まれます。したがって、平面 z = Ax + By について話していることになります。もちろん、この 2 番目の平面は元の平面、つまり原点を含む固有の垂直方向の平行移動と平行であるため、これは問題ありません。計算したい直交ベクトルは、このような変換の下では不変であるため、害はありません。

確かに、dmckee の表現では、彼の指定した「ベクトル」は点ではなく平面にあるため、間違いなくカバーされています。しかし、暗黙の翻訳を明示的に認めることは役に立つと思います。

やあ、私もこの件については久しぶりです。

衒学的にあなたの...;-)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top