アプリ版:「スタンプのみでお礼する」機能のリリースについて

対応する3つの3次元座標間の最小二乗距離の総和を最小化する方法を教えていただけないでしょうか。

それぞれ3座標点を含む2つのデータセットがあるとします。
片方のデータセットを回転・平行移動させることにより、
対応する3座標点間の最小二乗距離の総和を最小化したいのですが、
その方法を教えてください。

例:

データセットA:(xa1, ya1, za1), (xa2, ya2, za2), (xa3, ya3, za3)
データセットB:(xb1, yb1, zb1), (xb2, yb2, zb2), (xb3, yb3, zb3)

データセットBを回転・平行移動したもの:(xb1', yb1', zb1'), (xb2', yb2', zb2'), (xb3', yb3', zb3')

そして対応する3座標点間の最小二乗距離の総和:
(xa1-xb1')^2+(xa2-xb2')^2+(xa3-xb3')^2+
(ya1-yb1')^2+(ya2-yb2')^2+(ya3-yb3')^2+
(ya1-yb1')^2+(ya2-yb2')^2+(ya3-yb3')^2
を最小化したい。

つまり、これを最小化するためのデータセットBの回転・平行移動の方法をしりたいのです。

よろしくお願いします。


 

A 回答 (1件)

データセットAとデータセットBの座標はどこかのセルに書かれていて既知である。

またデータセットBを回転・平行移動したものの座標はデータセットBの座標といくつかのパラメータを使ってどこかのセルに関数式として表されている。
と仮定します。
このとき対応する3座標点間の最小二乗距離の総和は書かれている式で表されるので、それをどこかのセルで計算させておき、ソルバーを使えば対応する3座標点間の最小二乗距離の総和が最小化されたときの、データセットBを回転・平行移動したものの座標が求まります。
ソルバーを使う際に必要なのは
何を最小化するか...当然対応する3座標点間の最小二乗距離の総和です。
何を変化させて良いか...当然データセットBを回転・平行移動するときのいくつかのパラメータの値です。
ですから全て分かっているはずです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/08/12 18:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!