エクセル等の表計算ソフトの逆行列関数を使って3点を通る円を求める。(2次元平面内)
まず求める円の式を
x^2+y^2+l*x+m*y+n=0 (一般形 r070719追記)
とすると
l*x+m*y+n=-(x^2+y^2)
なので3点を
p1(x1,y1)、p2(x2,y2)、p3(x3,y3) (表のD4:E6)
とすると
l*x1+m*y1+n=-(x1^2+y1^2)
l*x2+m*y2+n=-(x2^2+y2^2)
l*x3+m*y3+n=-(x3^2+y3^2)
となる。行列の式で書けば (libreofficecalcでmathをオブジェクトとして使用)(r070416新画像に変更)
となり、逆行列を使えば一発で答えが出る。(r070416新画像に変更)
逆行列と配列定数を使用してl,m,nを求める。配列定数を使って前半は3行2列の行列の1列目と2列目を入れ替えて3列目を追加して3列目を1とした。後半は2乗して横方向の和。
D8:D10= =ArrayFormula(mmult(MINVERSE(mmult(D4:E6,{0,1,0;1,0,0})+{0,0,1;0,0,1;0,0,1}),-MMULT(D4:E6^2,{1;1})))
次に中心座標と半径を求める。
D12= =-D8/2
D13= =-D9/2
D14= =((D8^2/4+D9^2/4)-D10)^(1/2)
グラフ用データ
F36= =iferror((-D$9-(D$9^2-4*D36^2-4*D$8*D36-4*D$10)^(1/2))/2,"")
G36= =iferror((-D$9+(D$9^2-4*D36^2-4*D$8*D36-4*D$10)^(1/2))/2,"")
以下略
散布図でグラフ化
元頁(blogger)は2023.04.25 19:22公開
余談2
最初は円の中心のx座標=a、円の中心のy座標=b、円の半径=rとして
(x-a)^2+(y-b)^2=r^2
で考えて身動きが取れなくなったw
x^2+y^2+l*x+m*y+n=0
の式を見かけて「これならできる」と思った。l,m,nを求める段階ではx,yは変数じゃなくてただの定数であると思い至った。他の問題でも使えそうだ。
余談3 没画像 r070416
本文に「libreofficeのmathで作成」とあったがこれは違う気がする。