• ベストアンサー

3点からの距離から点を求める方法

3次元空間の3点A,B,Cとそこからの距離a,b,cが与えられています。 このとき、AO=a,BO=b,CO=cを満たすOは2つありますが、そのうちのひとつだけでもOの座標をA,B,Cの座標とa,b,cから求めたいのですが、うまい計算方法ありますか? 答えがあることはわかりますが、うまく計算できません。 プログラムでもいいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • fumidai
  • ベストアンサー率33% (34/103)
回答No.3

入学試験を思い出してしまいました。 おじさんは、学校でならった事を忘れているし、面倒な連立方程式など作りません。 難しそうな計算はExcelのソルバーに頼っています。 この問題でしたら、仮のOの座標とA,B,Cの座標間の距離を求める式を3つつくり、その計算結果とa,b,cとの差の二乗を行い、その3つの和をゼロにする様に仮の点の座標を動かす様にソルバーを実行すれば、解けるはずです。 本方式の利点として、点の数を4個に以上できます。元データに多少の誤差があっても最小二乗法で最適解が得られます。 ソルバーでも良くて、多少の時間をお待ちいただけるならば、課題をだしてください(正解は隠しておいてください。あとで答え合わせをしましょう)

usatan2
質問者

お礼

具体的な計算方法(エクセルのソルバーを使う方法)の提案ありがとうございました。 いま、エクセルのソルバーを使って解けました!! ありがとうございました。

その他の回答 (2)

  • ojisan7
  • ベストアンサー率47% (489/1029)
回答No.2

A,B,C,Oを位置ベクトルだとします。a,b,cはスカラーです。 |A-O|=a,|B-O|=b,|C-O|=c が成り立ちますね。p,q,rをスカラーとして、 O=pA+qB+rCを上の3つの式に代入して、p,q,rについての連立方程式を解きます。計算はしていませんが、これで計算できるはずです。計算が面倒ならば、プログラムを書いて機械に計算させればよいのです。

usatan2
質問者

お礼

回答ありがとうございました。 この方法では、|A-O|=a からp,q,rの方程式を導く段階でp,q,rの2次の項が出てきた段階で、計算がしんどく、プログラムを書くのも大変そうなのであきらめました。 作図して近似解を求めようとも思いましたが立体なので、それもあきらめました。 幸いNO3さんのエクセルのソルバーを使う方法で計算ができましたので、今回は何とかなりました。

回答No.1

A,B,Cが中心の球体を考える。 Aの球体の半径=a Bの球体の半径=b Cの球体の半径=c 方程式にあらわす。 交点がO。 方程式を連立。 上の方法でどうでしょう。 計算していないのででるかどうかわかりませんが。

usatan2
質問者

お礼

解けるのはわかるのですが、計算が面倒であきらめました。 作図して近似解を求めようとも思いましたが立体なので、それもあきらめました。 幸いNO3さんのエクセルのソルバーを使う方法で計算ができましたので、今回は何とかなりました。回答ありがとうございました。

関連するQ&A