- PR -

円周上の3点から円の中心を求める

投稿者投稿内容
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2003-10-09 15:30
該当する会議室が無かったのでここに投稿しました

円周上の3点の座標が与えられたときにその円の中心の座標を求める式が
知りたいのです.
式は3次元射影空間(4次の同次座標を持ちます)で解く必要があります
自分でも求めた結果はあるのですが,かなり式が複雑になってしまって簡単に
できません.式が正しいかどうか検証も大変だし,計算量も減らせないので
どこかにその式が載っていればそれを見て確かめたいのです.
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2003-10-09 19:55
私ならこの問題は、3点を含む平面、点1と点2の中点を含み線分12と直交する平面、点2と点3の中点を含み線分23と直交する平面の各方程式を求めて3元連立方程式とし、ガウスの消去法なりLU分解法なりを使って解を求めます。
解の公式を作るなんて面倒ですし(笑)。
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2003-10-10 10:59
ご回答どうもありがとうございます

たしかに汎用的なプログラムで値を求めるというのは賢い方法と思います.
LU分解等を使って解くプログラムが手元にあればそれを使っても良いのですが
手元には無いし,直接公式を最適化して使おうと思ったので
やはり数式が欲しいのです

でもいわれてみると線形方程式を解くプログラムが手元に欲しいような気もします
実は全然そういうものを使おうとは考えても見なかったんだけど
そちらの方が楽かもしれません.
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2003-10-10 12:03
ご存知かもしれませんが、ガウスの消去法やLU分解については奥村晴彦さんが書かれたアルゴリズム辞典に載っており、またそのソースコードが奥村晴彦さんのサイトで公開されています(もちろんアルゴリズム辞典にも掲載されている)。
必要であれば、探されてみてはいかがでしょう。
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2003-10-10 13:33
どうもありがとうございます

奥村氏の本は私も持っておりますのでその辺はなんとかなると思います.
取りあえず解を求めるのはプログラムにまかせてみることにします.
式を自分で求めてそれをプログラムに組み込むより手っ取り早いように思えます.
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-10-10 14:04
unibon です。こんにちわ。

引用:

Junさんの書き込み (2003-10-10 13:33) より:
取りあえず解を求めるのはプログラムにまかせてみることにします.
式を自分で求めてそれをプログラムに組み込むより手っ取り早いように思えます.


チャチャですが、いわゆる最先端(あるいは際物)の開発方法論の
サブセットのような取り組みかたですよね。
果たして実現できるのでしょうか、という疑問半分の一方で、
できたらすごいな、といった興味もあります。

なお、数学は良くは分かりませんが、
ちなみに2次元上という制限をもし課すことができるならば、
おそらく中学生位の数学ですよね。
今回の要件だと、3次元への拡張に加えて、
プログラムならではの制約(限られた演算精度内でも解が求まるようにする等)も
必要になるかもしれないので、
結構大変そうですね。
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2003-10-10 17:54
補足しておきますが、ガウスの消去法(or LU分解法)で求めた解をそのまま用いるのは、精度の面で決して好ましいものではありません。求めた解の残差ベクタを利用した反復計算により精度を向上させる方法がありますので、併用されることをお勧めします。
また、求めた解がどの程度の精度であるかを判定するために、与えられた3点との距離がすべて等しい(あるいは誤差範囲内に収まっている)かどうか、および与えられた3点を含む平面上にあるかどうか(平面の方程式に代入してみて左辺=右辺になるかどうか)といったチェックを行う方がよいと思われます。
Jun
大ベテラン
会議室デビュー日: 2003/08/25
投稿数: 141
投稿日時: 2003-10-10 17:54
いや,解を求めると書いたのは数値的に求めるという意味であって式を求める
という意味ではありません.個別の計算については式を求めておいてそれを
プログラム化するほうがいいと思いますがそれでは式を求めるのもデバッグするのも
結構大変だから,それくらいならあちこちに転がっていそうな汎用的な線型方程式を
数値的に解くプログラムを使ってそれをつかって一応動くものを作っておき,暇を
見て式を計算しプログラムを改良するほうが比較的早そうに思ったのです.
いわれるまではこういうことに気がつきませんでした.
精度の問題等は数値を表すクラスの問題なので今は取りあえず動けばいいのです.

スキルアップ/キャリアアップ(JOB@IT)