球面上の3点P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)と半径rが与えられたとき、球の中心点Pq(xp,yq,zq)を求める方法を教えて下さい。

球面上3点と半径rが条件として与えられた場合、球の中心点は2個ありそうな気もしますが(何らかの条件で...)、よく分かりません。

何方か、宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

中心Pq(xq,yq,zq)、半径rの球の方程式は


(x-xq)^2+(y-yq)^2+(z-zq)^2=r^2 …(A) となります。
球面が3点を通るから、(A)の式に代入すると
(x1-xq)^2+(y1-yq)^2+(z1-zq)^2=r^2 …(1)
(x2-xq)^2+(y2-yq)^2+(z2-zq)^2=r^2 …(2)
(x3-xq)^2+(y3-yq)^2+(z3-zq)^2=r^2 …(3)
となります。
(1)~(3)の式を変形すると、xq,yq,zqについての3元2次連立方程式となるので、xq,yq,zqが各々求められます。
なお、2次方程式の判別式が正の数になる場合は中心が2つとなり、0の場合は1つ(重解)、負の数の場合は存在しないことになります。
    • good
    • 0
この回答へのお礼

”xq,yq,zqについての3元2次連立方程式となる”までは良く理解できました。
しかし、3元2次連立方程式を解くことができません。
大変図々しくて恐縮ですが、xq,yq,zqについての3元2次連立方程式の解法を教えて頂けないでしょうか?
宜しくお願いします。

お礼日時:2002/01/09 18:45

折角なのでコンパス(?)と定規で。


まず、3点を含む平面を考えます。
次に、その平面上で2点間の垂直2等分線を2つ書いて
その交点を求めます。この交点は3点を含む円Aの中心C1になります。
その円Aに垂直に立てたC1を通る直線上に球の中心があるので、
そこまでのの距離を求めます。
中心をとおり直交する2直線を引きます。
ついで、その直線の1本が円Aと交わる点Q1を中心に
求める球の半径で円Bを描き、もう一本の線との交点Q2を求めます。
(このときQ2が無ければ描けません。
 丁度C1=Q2であれば、球は一つです。)
C1Q2が求める長さです。
円Aの中心C1から円に垂直な直線を立て
球の中心を置けば求める球が得られます
(2個、または1個、または0個)。
(求め方からわかるように
 ベクトルの計算と電卓でも解くことができます。)

球の個数については3点を水平になるように配置して
そこに、求める球の半径を持つ球を置いてすり抜けたら0個
ぎりぎりすり抜け無かったら1個
球を支えれたら2個(上下逆にすれば良い)
という感じではないでしょうか?
    • good
    • 1

> xp,yq,zq のうち二つを他の一つで置き換える式を求める方法が分かりません。


え?!
いや、そんな難しい話ではなくて、例えば一般的に、
x,y,zを未知数とする二つの方程式
px+qy+rz+s=0 (1)
lx+my+nz+k=0 (2)
があったら、(1)×n - (2)×r をとって
(pn-lr)x+(qn-mn)y+(sn-kr)=0 とできて、(qn-mn)=0 でなければ
y= ((pn-lr)x+(sn-kr))/(mn-qn)
と、yをxで表せますよね。zも同様、ということなんですが。

暇があれば全部解いてもいいんですけど、そうもいかなくて、
ごめんなさい。

次は二次方程式の解き方を教えてなんて言わないで下さいね。
    • good
    • 0
この回答へのお礼

あっ!
教えていただければ、簡単でした。
つまらない質問にご回答頂きまして、ありがとうございます。

dotcomさんの考え方とranxさんの解き方で、球の中心点を求めることができました。
(エクセルを使って検算して正しい答えが求まったので、方程式も正しく解けたと思います。)

お礼日時:2002/01/11 13:38

こんにちは。



>球面上3点と半径rが条件として与えられた場合、
>球の中心点は2個ありそうな気もしますが
>(何らかの条件で...)、よく分かりません。

 私は、単なる素人なので、こんなコメントをするのは恐縮ですが、
思いついたことがあるので書き込みます。
(多分、最終的には前の方々と同じことをやっていることに
 なるとは思うのですが)

空間上の3点P1、P2、P3が与えられて、
それぞれを中心とする半径rの球を考えたとき、
それらの共通部分が「求める球の中心点」ですよね。

2つの球が交わるとき、その交線は普通は円ですよね。
(1点で接するときには、3番目の球面がそれを含めば、
 その点が答えです。解は 1つ。
 3番目の球面がそれを含まなければ解は なしです。)

その円と3番目の球の関係ですが、
・1点で接すれは、解は 1つ。
・まるまる含まれれば(P1,P2,P3のどれか2つが同一点)
 解は 不定。
・離れていて、共通する部分がなければ、解は なし。

一般的な?場合は、球と円とが交われば交点は2つできますので、
解は 2つ。すなわち「求める球の中心点」は2個ある場合があるよ、
ということになるのではないでしょうか。

すでに皆さんが考えられていることかも知れませんが、
お目汚しでした。では。 
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
jun1038さんの方法でも可能だとは思うのですが、
今回はdotcomさんの方法で求めたいと思います。

お礼日時:2002/01/11 13:30

> 3元2次連立方程式の解法を教えて頂けないでしょうか?



dotcomさんの式で、(1)-(2), (1)-(3) を作ると((2)-(3)が適当な場合もあります)
二次の項が消えて、未知数三つの一次方程式が二つできますから、ここから
xp,yq,zq のうち二つを他の一つで置き換える式が求まります。これをdotcomさんの
式の一つ(どれでもいいです)に代入すると、単純な二次方程式となります。

三角形の外心を通り、三点を通る平面に垂直な直線上の点で、元の点からrの距離にあるもの
という考え方もあります。
    • good
    • 0
この回答へのお礼

dotcomさん、ranxさん、ありがとうございます。しかし...

未知数三つの一次方程式は二つ(三つ)できたのですが、
xp,yq,zq のうち二つを他の一つで置き換える式を求める方法が分かりません。
度々ですみませんが、何方か教えて下さい。
宜しくお願いします。

お礼日時:2002/01/09 21:55

このQ&Aに関連する人気のQ&A

r1-z」に関するQ&A: R1-Zの長所と短所

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q球上の任意の点の求め方

中心(0,0,0)、半径rの球があるとき、
球上(球の表面)の任意の点(座標(x,y,z))を求める方法を
教えていただけたらと思います。

どうぞよろしくお願いいたします。

Aベストアンサー

#4です。補足に回答します。
例えば半径1の球上のとある点P(x,y.z)=(1,0,0)を曲座標表示するとどうなるか?という御質問かと理解しました。

線分OPをx-y平面上に正射影したもの(ここでは線分OPそのままですが)とx軸とななす角はθ=0(rad)(いわゆる0度)
線分OPとz軸とのなす角φ=π/2(rad)(いわゆる90度)

従って曲座標表示ではP(r、θ、φ)=(1、0、π/2)

確認のために式に当てはめて元のxyz座標を求めてみると
x=1*sin(π/2)*cos(0)=1*1*1=1
y=1*sin(π/2)*sin(0)=1*1*0=0
z=1*cos(π/2)=1*0=0
元の直角座標系の点P(x,y.z)=(1,0,0)と一致するので正しいことが確認された。

Q球の中心と半径の求め方

カテゴリーでは数学部門だと思うのですが…

現在、ある球体を測定してその物の球の中心と半径を求めようと思っています。

球体の表面をある機械で測定しています。それぞれの機械から計測された3次元の形状データとしては10000点ほど有ります。
そこで、4点をピックアップして球の公式に入れて求めると、全てがかなりばらつきのあるデータが出てきます。

これではどのあたりに球の中心があり半径がどうなのか分かりません。

できれば、統計的、数学的に中心と半径は信頼度が高く求める方法があれば教えて下さい。

ちなみに、4点からのデータから中心と半径を100回求め、平均してもばらつきがひどくてこの方法は使わないようにしています。

そこで、10点をピックアップして、最小二乗法から中心と半径を100回求め、平均する方法をしたりしました。
まだ、この方法が有用かなと思いましたが…
データのばらつきが少ないからいいのかなと思いました。

大変理解していただくには難しい内容かもしれません。随時、応えさせていただきますので、色々なご意見宜しくお願いいたします。

カテゴリーでは数学部門だと思うのですが…

現在、ある球体を測定してその物の球の中心と半径を求めようと思っています。

球体の表面をある機械で測定しています。それぞれの機械から計測された3次元の形状データとしては10000点ほど有ります。
そこで、4点をピックアップして球の公式に入れて求めると、全てがかなりばらつきのあるデータが出てきます。

これではどのあたりに球の中心があり半径がどうなのか分かりません。

できれば、統計的、数学的に中心と半径は信頼度が高く求める方法があ...続きを読む

Aベストアンサー

#2です。

本件は球の中心位置と半径を正確に求めるのが目的かと思っていましたが、機械の測定誤差を評価・検証する場合には別の考慮も必要になります。

一般に計測装置の誤差にはノンリニアリティー、スパン誤差、オフセット誤差、バラツキなどがありますが、バラツキ以外は装置によっては補正をかけることも可能です。

球を使った場合はノンリニアリティー以外の評価が可能で、半径の誤差がスパン誤差に、中心位置の誤差がオフセット誤差に、また #2手順(2)の rms がバラツキの標準偏差 σ に対応します。また半径の異なる複数の球を使えばノンリニアリティーの評価も可能になります。測定のバラツキが他の誤差評価に影響を与えないようにするには測定点数 n を大きく取る必要があります。n の目安は

rms/√n << 要求されるスパン誤差、オフセット誤差評価の標準偏差

で求められます。<< は3~10程度の比と考えてください。
 
>この教えていただいたニュートン法でのループを減らし、または誤差二乗和(二乗平均誤差)を利用すれば今回の私が求めたいと考えていることに近づけるのでしょうか?

n = 10000程度のデータでしたらパソコンでの計算ではループ回数=15で異常データ排除ループを入れてもおそらく数秒で終る程度ですからループ回数を減らす必要はなさそうですし、またバラツキが不明の場合は#2手順(2)の終了判定は使わないでループ回数を固定するほうがよいでしょう。装置の性格によっては異常データは排除しない方が良い場合もありますし、異常データを排除する場合は異常データを含めた rms も評価の対象にすべきです。

#2です。

本件は球の中心位置と半径を正確に求めるのが目的かと思っていましたが、機械の測定誤差を評価・検証する場合には別の考慮も必要になります。

一般に計測装置の誤差にはノンリニアリティー、スパン誤差、オフセット誤差、バラツキなどがありますが、バラツキ以外は装置によっては補正をかけることも可能です。

球を使った場合はノンリニアリティー以外の評価が可能で、半径の誤差がスパン誤差に、中心位置の誤差がオフセット誤差に、また #2手順(2)の rms がバラツキの標準偏差 σ に対応します...続きを読む

Q4点を通る球の式を求めたい。

4点を通る球の式を求めたいのですが、
ネットなどを調べてもやり方が分からず、悩んでおります。
与えられた4点a,b,c,dから円の中心の座標(A,B,C)が求まれば、そこから半径rも求まり、
(x-A)^2+(y-B)^2+(z-C)^2=r^2
という式が導けると思うのですが。
考えた方法としては、
3点を通る平面の式
3点A:(x1,y1,z1)、B:(x2,y2,z2)、C:(x3,y3,z3)
{(y2-y1)(z3-z1)-(y3-y1)(z2-z1)}(x-x1)+{(z2-z1)(x3-x1)-(z3-z1)(x2-x1)}(y-y1)+{(x2-x1)(y3-y1)-(x3-x1)(y2-y1)}(z-z1)=0
を利用して、
点(a,b,c),(b,c,d),(c,d,a)を通る平面の式を求めて、その3平面が交わる点が球の中心座標。
または、球は中心座標から、与えられた4点までの距離がすべて同じなので、2点間の距離の公式を用いて、
与えられた4点への距離がすべて等しい点を求めることが出来るのではないか。
というのが思いついたのですが、実際にそれを解こうとすると出来ません。
どなたか、方法をご存じの方いらっしゃらないでしょうか?

4点を通る球の式を求めたいのですが、
ネットなどを調べてもやり方が分からず、悩んでおります。
与えられた4点a,b,c,dから円の中心の座標(A,B,C)が求まれば、そこから半径rも求まり、
(x-A)^2+(y-B)^2+(z-C)^2=r^2
という式が導けると思うのですが。
考えた方法としては、
3点を通る平面の式
3点A:(x1,y1,z1)、B:(x2,y2,z2)、C:(x3,y3,z3)
{(y2-y1)(z3-z1)-(y3-y1)(z2-z1)}(x-x1)+{(z2-z1)(x3-x1)-(z3-z1)(x2-x1)}(y-y1)+{(x2-x1)(y3-y1)-(x3-x1)(y2-y1)}(z-z1)=0
を利用して、
点(a,b,c),(b,c,d),(...続きを読む

Aベストアンサー

線分AB, BC, CDのぞれぞれに対して、
「線分の中点を通り、線分に垂直な平面」
を考えて、その3平面の交点が中心
という考え方で求められると思います。

これは、
(x-A)^2+(y-B)^2+(z-C)^2=r^2
に4点の座標を入れた4つの式を作り
  (文字4つ、式4つの連立方程式)
  <それを(1)~(4)式とします>
(1)-(2)式、(2)-(3)式、(3)-(4)式を考えたもの
  <A^2, B^2, C^2の項および文字rは消えるので、
   もはや単なる3元1次方程式です>
と同義です。

もちろんそれは、「2点間の距離の公式を用いて、与えられた4点への距離がすべて等しい点を求める」というのとも同義です。

Q円の中心座標の問題の解き方を教えてください。

円の中心座標の問題の解き方を教えてください。

問題
3点A(1,-2,1) B(3,1,7) C(2,0,6)を通る円の中心座標を求めよ

解く方針は以下のようにしました。
中心座標をO(X,Y,Z)とおき、AB、BCとCAの中点をそれぞれ点D,E,Fとして
OD,OE,OFはそれぞれAB、BC、CAと直交することから内積を利用して中心Oを求めようとしましたが、
解けませんでした。

よろしくお願いします。

Aベストアンサー

3点が1平面上にあって、これらを通る円というのは気がつきませんでした。
3点A(1,-2,1) B(3,1,7) C(2,0,6)を通る円はこの平面では円でもxy平面に投影すると楕円になるところがにくいところです。

(解答)
円の中心座標をP(x,y,z)、半径をrとすると
(x-1)^2+(y+2)^2+(z-1)^2=r^2 (1)
(x-3)^2+(y-1)^2+(z-7)^2=r^2  (2)
(x-2)^2+y^2+(z-6)^2=r^2    (3)

(2)-(3)より
x+y+z=19/2 (4)
(1)-(3)より
x+2y+5z=17  (5)

点P(x,y,z)、A(1,-2,1)、 B(3,1,7)、 C(2,0,6)
が1平面状にあることから

行列式
|x, y,z,1|
|1,-2,1,1| = 0
|3, 1,7,1|
|2, 0,6,1|

4行目を各行から引いて
|x-2, y,z-6,0|
| -1,-2, -5,0| = 0
| 1, 1, 1,0|
| 2, 0, 6,1|

|x-2, y,z-6|
| -1,-2, -5| = 0
| 1, 1, 1|

展開して

3x-4y+z=12 (6)

(4)、(5)、(6)を連立して
x=80/13
y=51/26
z=18/13

3点が1平面上にあって、これらを通る円というのは気がつきませんでした。
3点A(1,-2,1) B(3,1,7) C(2,0,6)を通る円はこの平面では円でもxy平面に投影すると楕円になるところがにくいところです。

(解答)
円の中心座標をP(x,y,z)、半径をrとすると
(x-1)^2+(y+2)^2+(z-1)^2=r^2 (1)
(x-3)^2+(y-1)^2+(z-7)^2=r^2  (2)
(x-2)^2+y^2+(z-6)^2=r^2    (3)

(2)-(3)より
x+y+z=19/2 (4)
(1)-(3)より
x+2y+5z=17  (5)

点P(x,y,z)、A(1,-2,1)、 B(3,1,7)、 C(2,0,6)
が1平面状にあることから

行列式
|...続きを読む

Q球の中心の求め方

今(X1,Y1,Z1)(X2,Y2,Z2)(X3,Y3,Z3)の三つの座標と半径rが分かっています.
この座標の中心(Xq,Yq,Zq)は(X-Xq)^2+(Y-Yq)^2+(Z-Zq)^2=r^2を元に連立方程式を立てれば解けるらしいのですが私には難しくて解けません.
この解(例:Xq=???)を知っている方がいらっしゃいましたらどうか教えてください.

Aベストアンサー

(X1-Xq)^2+(Y1-Yq)^2+(Z1-Zq)^2=r^2 …(1)
(X2-Xq)^2+(Y2-Yq)^2+(Z2-Zq)^2=r^2 …(2)
(X3-Xq)^2+(Y3-Yq)^2+(Z3-Zq)^2=r^2 …(3)

(1)-(2)
(X1-X2)*(X1+X2-2Xq)+(Y1-Y2)*(Y1+Y2-2Yq)+(Z1-Z2)*(Z1+Z2-2Zq)=0 …(4)
(1)-(3)
(X1-X3)*(X1+X3-2Xq)+(Y1-Y3)*(Y1+Y3-2Yq)+(Z1-Z3)*(Z1+Z3-2Zq)=0 …(5)
(4),(5)を(Yq,Zq)について連立方程式として解き、
その(Yq,Zq)を(1)に代入してできるた
Xqの二次方程式を解いてXqを求めて下さい。

文字定数ばかりの一般式の導出ですので、式の項数が非常に多くなりますので計算間違いしないように根気よく計算してください。その場合、球面上の3点の任意の2つが一致しない条件や一直線上に並ばない条件やr>0の条件など、文字を使う上で忘れがちな条件を考慮する必要があるかと思います。

なお、文字変数でなくすべて、具体的な数字の定数であれば、計算は非常に楽に、球の中心座標が出せるでしょう。

やたらに、沢山の文字定数を使って一般化した公式を求めようとするのも考え物です。せっかく導いた公式が余りにも長すぎて暗記ができない、書き写すのに転記ミスが沢山発生するのでは、その公式は使い物になりませんね。Xqの式を数式処理ソフトで実際に計算してみましたが、ここに掲載できるような長さの式にはなりませんね(半角文字の1600文字より遥かに長い式です。)。

(X1-Xq)^2+(Y1-Yq)^2+(Z1-Zq)^2=r^2 …(1)
(X2-Xq)^2+(Y2-Yq)^2+(Z2-Zq)^2=r^2 …(2)
(X3-Xq)^2+(Y3-Yq)^2+(Z3-Zq)^2=r^2 …(3)

(1)-(2)
(X1-X2)*(X1+X2-2Xq)+(Y1-Y2)*(Y1+Y2-2Yq)+(Z1-Z2)*(Z1+Z2-2Zq)=0 …(4)
(1)-(3)
(X1-X3)*(X1+X3-2Xq)+(Y1-Y3)*(Y1+Y3-2Yq)+(Z1-Z3)*(Z1+Z3-2Zq)=0 …(5)
(4),(5)を(Yq,Zq)について連立方程式として解き、
その(Yq,Zq)を(1)に代入してできるた
Xqの二次方程式を解いてXqを求めて下さい。

文字定数ばかりの一般式の導出ですので、式の項数が非常に多くなりますので...続きを読む

Q空間上の円の方程式について

空間上にある、3点P1(x1,y1,z1),P2(x2,y2,z2)
P3(x3,y3,z3)を通る円の方程式を求めよ。

平面の方程式は、法線ベクトルにより
求められる所までは分かっています。
空間における円の方程式は、球と平面の
交線で表せるというのは、わかったのですが、
この後、どーすれば良いのかが分かりません。

どなたか、よろしくお願いします。

Aベストアンサー

3点を通る円の方程式でしょ?球じゃなくて。
適当な座標変換
(X,Y,Z)' = A (x,y,z)'
('は転置、Aは実数値の3×3行列で、AA' = I (単位行列))を使って、与えられた3点が
(X1,Y1,0), (X2,Y2,0), (X3,Y3,0)
に変換されるようにすれば、(このようなAは何通りもあります。)
Z=0の平面上の3点を通る円を決める問題になります。

 円の方程式
(X-B)^2 + (Y-C)^2 = R^2
は、3次元で見るとZが出てこない訳ですから、(球ではなく)軸がZ軸と平行な円柱を表しています。この方程式(つまりB,C,Rの値)が得られたら、これと、方程式
(X,Y,0)' = A (x,y,z)'
(Z=0の平面を表します。)とを連立させれば、X,Yが直ちに消去でき、x,y,zを含む2本の方程式が得られます。

Q3元連立2次方程式解けません!!

3次元空間において,ある点P(X,Y,Z)が存在するとき,
点A(x_1,y_1,z_1),点B(x_2,y_2,z_2),点C(x_3,y_3,z_3),点D(x_4,y_4,z_4)と
各点から点Pまでの距離PA=d_1,PB=d_2,PC=d_3,PD=d_4 を用いて
点Pの座標を表したいのですが,なかなかそれらしい式にまとまりません..

ちなみに立式すると以下のようになります.
変数はX,Y,Zでその他は定数とします.
変数が3つの場合連立式は3つでよかったような気がするのですが
一応4つの式が出来上がったので並べておきます.

d_1=√(x_1-X)^2+(y_1-Y)^2+(z_1-Z)^2
d_2=√(x_2-X)^2+(y_2-Y)^2+(z_2-Z)^2
d_3=√(x_3-X)^2+(y_3-Y)^2+(z_3-Z)^2
d_4=√(x_4-X)^2+(y_4-Y)^2+(z_4-Z)^2

上記の式をX,Y,Zについて解いていただきたいです.
よろしくお願いします.

Aベストアンサー

(d_1)^2 = (x_1 - X)^2 + (y_1 - Y)^2 + (z_1 - Z)^2 …[1]
(d_2)^2 = (x_2 - X)^2 + (y_2 - Y)^2 + (z_2 - Z)^2 …[2]
(d_3)^2 = (x_3 - X)^2 + (y_3 - Y)^2 + (z_3 - Z)^2 …[3]
(d_4)^2 = (x_4 - X)^2 + (y_4 - Y)^2 + (z_4 - Z)^2 …[4]
から2式の組を3組取り出して、辺々引き算すれば、
X^2, Y^2, Z^2 の項が消えて、X, Y, Z の一次式が3本できます。
これを3元3連立一次方程式と見れば、X, Y, Z が決まります。

例えば、[1] - [2] で
2(x_1 - x_2) X + 2(y_1 - y_2) Y + 2(z_1 - z_2) Z = (x_1)^2 - (x_2)^2 + (y_1)^2 - (y_2)^2 + (z_1)^2 - (z_2)^2 - (d_1)^2 + (d_2)^2
とか、そんな感じ。あと、[2] - [3] と [3] - [4] で3本とか。

そうして得られた X, Y, Z は、単なる必要条件ですから、
最後に [1] ~ [4] のどれか1本へ代入して、
解であることを確認しておかねばなりません。
好き勝手に d_1 ~ d_4 を与えると、解が存在しない場合もありますから。

(d_1)^2 = (x_1 - X)^2 + (y_1 - Y)^2 + (z_1 - Z)^2 …[1]
(d_2)^2 = (x_2 - X)^2 + (y_2 - Y)^2 + (z_2 - Z)^2 …[2]
(d_3)^2 = (x_3 - X)^2 + (y_3 - Y)^2 + (z_3 - Z)^2 …[3]
(d_4)^2 = (x_4 - X)^2 + (y_4 - Y)^2 + (z_4 - Z)^2 …[4]
から2式の組を3組取り出して、辺々引き算すれば、
X^2, Y^2, Z^2 の項が消えて、X, Y, Z の一次式が3本できます。
これを3元3連立一次方程式と見れば、X, Y, Z が決まります。

例えば、[1] - [2] で
2(x_1 - x_2) X + 2(y_1 - y_2) Y + 2(z_1 - z_2) Z = (x_1)^2 - (...続きを読む

Q3次元座標を原点中心に回転したい

任意のゼロでないベクトル(a,b,c)を原点中心に回転し、z軸に合致させるとする。同じ回転移動を3次元座標上の任意の点(x,y,z)に対して行った時の移動後座標が知りたいのです。

計算と結果を教えて下さい。

Aベストアンサー

A No. 1 です。補足。

「回転行列」
http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/knowledge/tech07.html

ロドリゲスの公式もあります。

Q三角形の外接円の中心座標を求めるプログラム

三点の座標(x1,y1),(x2,y2),(x3,y3)が与えられたときに、三角形の外接円の中心座標と半径を求めるプログラムが欲しいです。

垂直二等分線の交点を求めるやり方は既に知っているのですが、連立方程式になってしまいます。
ですので出来ればこれを一発で求められる連立じゃない式が欲しいのですが、ご存じないでしょうか?

x = 何とか
y = 何とか
みたいな感じです。

Javaでやろうとしていますが、計算式さえわかれば自分で書けると思うので、中心座標のx,yを求める式を教えて下さい。

過去質問を探してみましたが、みんな連立方程式で解けば良いとおっしゃっていまして…

Aベストアンサー

地道に解いた結果をもちいれば良いと思います。
中心を(p,q)とおくと

(x-p)^2+(y-q)^2=R^2
に(x1,y1),(x2,y2),(x3,y3)を代入して
(x1-p)^2+(y1-q)^2=R^2 (1)
(x2-p)^2+(y2-q)^2=R^2 (2)
(x3-p)^2+(y3-q)^2=R^2 (3)

(1)-(2)
(x1-p)^2-(x2-p)^2+(y1-q)^2-(y2-q)^2=0
(x1-x2)(x1+x2-2p) + (y1-y2)(y1+y2-2q)=0
-2(x1-x2)p -2(y1-y2)q +x1^2 -x2^2 +y1^2 -y2^2 =0

(1)-(3)
-2(x1-x3)p -2(y1-y3)q +x1^2 -x3^2 +y1^2 -y3^2 =0


p = {(y1-y3)(y1^2 -y2^2 +x1^2 -x2^2) +(y1-y2)(y1^2 -y3^2 +x1^2 -x3^2)} / {2(y1-y3)(x1-x2)+2(y1-y2)(x1-x3)}

q = {(x1-x3)(x1^2 -x2^2 +y1^2 -y2^2) +(x1-x2)(x1^2 -x3^2 +y1^2 -y3^2)} / {2(x1-x3)(y1-y2)+2(x1-x2)(y1-y3)}


とかなり複雑な式になりました。
計算がどこかで間違っているかもしれませんが、残念ながらあまり美しくはなりませんね。

地道に解いた結果をもちいれば良いと思います。
中心を(p,q)とおくと

(x-p)^2+(y-q)^2=R^2
に(x1,y1),(x2,y2),(x3,y3)を代入して
(x1-p)^2+(y1-q)^2=R^2 (1)
(x2-p)^2+(y2-q)^2=R^2 (2)
(x3-p)^2+(y3-q)^2=R^2 (3)

(1)-(2)
(x1-p)^2-(x2-p)^2+(y1-q)^2-(y2-q)^2=0
(x1-x2)(x1+x2-2p) + (y1-y2)(y1+y2-2q)=0
-2(x1-x2)p -2(y1-y2)q +x1^2 -x2^2 +y1^2 -y2^2 =0

(1)-(3)
-2(x1-x3)p -2(y1-y3)q +x1^2 -x3^2 +y1^2 -y3^2 =0


p = {(y1-y3)(y1^2 -y2^2 +x1^2 -x2^2) +(y1-y2)(y1^2 -y3^2 +x1^2 -x3^2)} / {2(y1...続きを読む

Q球の最小二乗法について

はじめまして.
工学部の学生です.

球の中心座標と半径を求める最小二乗法について教えてください.お願いします.

私も,エクセルを使って式を立てて計算したのですが,中心がどうしてもずれてしまいます.

|Σx^2 Σxy Σzx Σx | |a|  |-Σ(x^2+y^2+z^2)x|
|Σxy Σy^2 Σzy Σy | |b| = |-Σ(x^2+y^2+z^2)y|
|Σzx Σyz Σz^2 Σz | |c|  |-Σ(x^2+y^2+z^2)z|
|Σx  Σy  Σz   n | |d|  |-Σ(x^2+y^2+z^2)|
この式をクラーメルの公式を使って解いて
x=-a/2
y=-b/2
z=-c/2
r=√{(a^2+b^2+c^2)/4-d}

で,計算したのですが,答えがうまく求まりません.
どなたか教えていただけないでしょうか.

Aベストアンサー

こちらで計算すると(50,50,0)、半径50になりましたのでやはりExcelの入力ミスです。
さすがに結果だけではどこで間違っているかは想像つきませんので私の計算例を
書いておきますので参考ください。

以下、A1-A200,B1-B200,C1-C200にデータが入っているとして(200まで埋まっている必要なし)
記入するセル番号 記入式あるいは操作 で書いておきます。
このまま書き込みをコピペでもいいです。

D1 =SUMSQ(A1:C1)
D2-D200 D1をコピーしてペースト
E1 =SUMPRODUCT($A1:$A200,A1:A200)
F1-G1 E1をコピペ
E2 =SUMPRODUCT($B1:$B200,A1:A200)
F2-G2 E2をコピペ
E3 =SUMPRODUCT($C1:$C200,A1:A200)
F3-G3 E3をコピペ
E4 =SUM(A1:A200)
F4-G4 E4をコピペ
H1 =E4
H2 =F4
H3 =G4
H4 =COUNT(A1:A200)
I1 =-SUMPRODUCT(A1:A200,$D1:$D200)
I2 =-SUMPRODUCT(B1:B200,$D1:$D200)
I3 =-SUMPRODUCT(C1:C200,$D1:$D200)
I4 =-SUM(D1:D200)
J1-J4 =MMULT(MINVERSE(E1:H4),I1:I4) ・・・・★
K1 =-J1/2
K2 =-J2/2
K3 =-J3/2
K4 =(SUMSQ(J1:J3)/4-J4)^0.5

これでK1-K4に中心の座標と半径が出てきます。
なお、★の部分はExcelに行列を入力する時に必要な操作として
J1-J4を選択して反転させておく。J1に上の式を記入する(確定はさせない)
Ctrl+Shiftを押しながらリターンキーを押す操作が必要です。(詳しくはURL)
これで書かれた数字をA1-C6に入れると上記の結果が得られました。
ついでに中心(2,5,11)、半径10の球の座標を乱数を交えて20個ばかり
発生させて計算しましたが、
2.004285734
5.147072292
11.03049431
9.812454843
になりました。

参考URL:http://www.nishitech.ac.jp/~zhou/text/Planing/No10/Excel.htm

こちらで計算すると(50,50,0)、半径50になりましたのでやはりExcelの入力ミスです。
さすがに結果だけではどこで間違っているかは想像つきませんので私の計算例を
書いておきますので参考ください。

以下、A1-A200,B1-B200,C1-C200にデータが入っているとして(200まで埋まっている必要なし)
記入するセル番号 記入式あるいは操作 で書いておきます。
このまま書き込みをコピペでもいいです。

D1 =SUMSQ(A1:C1)
D2-D200 D1をコピーしてペースト
E1 =SUMPRODUCT($A1:$A200,A1:A200)
F1-G1 E1をコ...続きを読む


人気Q&Aランキング