3D最小二乗平面 質問する

3D最小二乗平面 質問する

3D データ ポイントのセットが与えられた場合、(x, y, z) 空間で最小二乗平面を計算するアルゴリズムは何ですか? つまり、(1, 2, 3)、(4, 5, 6)、(7, 8, 9) などのポイントが多数ある場合、最も適合する平面 f(x, y) = ax + by + c をどのように計算するのでしょうか? 3D ポイントのセットから a、b、c を取得するアルゴリズムは何ですか?

ベストアンサー1

n 個のデータ ポイント (x[i], y[i], z[i]) がある場合、次の要素を持つ 3x3 対称行列 A を計算します。

sum_i x[i]*x[i],    sum_i x[i]*y[i],    sum_i x[i]
sum_i x[i]*y[i],    sum_i y[i]*y[i],    sum_i y[i]
sum_i x[i],         sum_i y[i],         n

3要素ベクトルbも計算します。

{sum_i x[i]*z[i],   sum_i y[i]*z[i],    sum_i z[i]}

次に、与えられた A と b に対して Ax = b を解きます。解ベクトルの 3 つの要素は、最小二乗近似平面 {a,b,c} の係数です。

これは「通常の最小二乗法」による近似であり、z が x と y の線形関数であると予想される場合にのみ適切であることに注意してください。3 次元空間でより一般的に「最適な平面」を探している場合は、「幾何学的」最小二乗法について学習することをお勧めします。

また、例のポイントのようにポイントが一直線上にある場合は、これが失敗することに注意してください。

おすすめ記事