- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:分子構造の重ねあわせ (行列、最小二乗法など?))
分子構造の重ねあわせについての質問
このQ&Aのポイント
- 分子構造の重ね合わせについてアルゴリズムを知りたい
- 重ね合わせる2つの分子構造の誤差を最小化する方法を教えてほしい
- 重ね合わせのアルゴリズムには行列計算や最小二乗法を使用するのか気になる
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは. ソースコードは良く見てませんが… 要するに合同であることが期待されるn点のデータ集合XとX'に関して, Σ ||Xi' - (R*Xi+T) ||^2 -> min なる回転と並進ベクタを計算したいと考えます. ここで,XiとXi'はi番目の座標を意味する3次元ベクタであり, 総和演算は範囲(i=1,...,n)とします. 質問者様の方法では上記の変換(R,T)に関して, 並進量Tまでしか解決できません. ここからさらに回転量Rを解決する必要があります. 基本的な戦略は相関行列を特異値分解してRを決定します. Rの推定には質問者様の方法で重心を合わせたXとX'に関して M = Σ Xi'*Xi^T なる3*3相関行列を計算し,M -> U*D*V^T と特異値分解します(^Tは転置記号). 最小二乗の意味で最適なRは R = U*V^T で計算できます. ただし,回転の向きは適宜調整してください. データ集合XとX'が相似の意味で同じである場合は 重心を会わせた後にスケール調整を行ってください.
お礼
回答ありがとうございます。 やはり行列計算が必要になるのですね。 ちょっと難しいですが調べてみます。 大変参考になりました。