はじめに
点群にフィットする円のことを「最小二乗円」というらしいです。
その最小二乗円を以下の3つのパターンで求めたいと思います。
・普通の最小二乗円(任意の点を通らない)
・ある1点を通る最小二乗円
・ある2点を通る最小二乗円
点群は とします。
イメージしやすいように、以下の図に点群の点の数が4の場合の最小二乗円を描画しています。
緑色が「普通の最小二乗円」、赤色が「ある1点を通る最小二乗円」、青色が「ある2点を通る最小二乗円」です。

普通の最小二乗円
重心 を求めます。
だけ平行移動した座標系の点群を
とします。
の総和は以下の関係があります。
変換前、変換後の座標系における円の中心座標をそれぞれ とすると、以下の式が成り立ちます。
円の半径を とし、
とおきます。
目的関数 を以下のように定めます。
式を簡単にするために とおきます。
を
で微分して、
とおきます。
を
で微分して、
とおきます。
を
で微分して、
とおき、
で微分した結果
を用いると以下の式が成り立ちます。
式 を変形して、
を求めます。
式 より、
が求まったので、これを式
に代入すると
が求まります。
は式
と
により以下のように求まります。
以上より、点群にフィットする円が定まりました。
円が定まらないときについての考察 - 普通の最小二乗円
式 の分母が
の時は計算不能です。
となるのは、 シュワルツの不等式の等号が成り立つときです。
それは、全ての点 と原点を通る直線が存在する時です。この時、元の座標系の全ての点
を通る直線が存在しています。
よって、全ての点 を通る直線が存在しない時に、フィットする円は計算可能であることが分かります。
計算機で「解なし(点群にフィットする円を求められない)」を判定するときは許容誤差用定数 を用いて
とするのではなく、
点群の覆う矩形の対角線の長さ をかけて、
とするなどの工夫が必要かと思います。
ある1点を通る最小二乗円
「普通の最小二乗円」のアルゴリズムを使いまわすため、円が通る点を とおきます。
そうすると、式 が成り立たないので、
が成り立ちません。
は成り立ちます。
変換後の座標系では円が原点を通るので、以下が成り立ちます。
を
で微分して、
とおきます。式
の計算を途中まで使って計算します。
式 と式
は全く同じ式なので、
は式
で求まり、これを式
に代入すると
が求まります。
あとは式 で
が求まります。
以上より、点群にフィットする「ある1点を通る円」が定まりました。
円が定まらないときについての考察 - ある1点を通る最小二乗円
前の議論同様、円が定らないのは全ての点 と原点を通る直線が存在する時です。この時、元の座標系の全ての点
と
を通る直線が存在しています。
よって、全ての点 と
を通る直線が存在しない時に、フィットする円は計算可能であることが分かります。
ある2点を通る最小二乗円
「普通の最小二乗円」のアルゴリズムを使いまわしません。
円が通る2点を とおき、2点の中間点を
とおきます。
ただし、円が通る2点は等しくないものとします。
と
のなす角を
とおくと、
は以下のようになります。
だけ平行移動した後、
回転した座標系の点群を
とします。
式 の逆変換は
回転した後、
だけ平行移動したものです。
式 の写像を
とおきます。
は変換後、
軸上に存在するので、変換後の座標を
とおくと、以下のようになります。
変換前、変換後の座標系における円の中心座標をそれぞれ とします。
変換後の円の中心は、 軸上に存在するので以下の式が成り立ちます。
円の半径を とし、
とおくと、
に以下の関係が成り立ちます。
目的関数 を以下のように定めます。
式を簡単にするために とおきます。
を
で微分して、
とおきます。
式 より、
が求まったので、これを式
に代入すると
が求まります。
は
より、
の平方根を取ることで求まります。
は
を逆変換することで求まります。
以上より、点群にフィットする「ある2点を通る円」が定まりました。
円が定まらないときについての考察 - ある2点を通る最小二乗円
式 の分母が
の時は計算不能です。
となるのは、
全ての点 がX軸上に存在する時です。この時、元の座標系の全ての点
と
と
を通る直線が存在しています。
よって、全ての点 と
と
を通る直線が存在しない時に、フィットする円は計算可能であることが分かります。
TODO
図を挿入する
普通の最小二乗円:変換の図、E用の円の図、円が計算できない場合の図(変換後の座標系⇒変換前の座標系)
1点を通る最小二乗円:同様
2点を通る最小二乗円:変換の図を2段階で書く