円の最小二乗法を解説

最小二乗円
  $N$ 個の点集合 (点群)
$$ \tag{1.1} $$ に最もフィットする円を最小二乗法によって求めよ。
解答例
  点群の各点から円の中心までの距離の二乗と、 円の半径の二乗との差の総和が最小になる円を最小二乗円とし、 点群 $(1.1)$ に対して導出する。 その際に、 $(1.1)$ の重心
$$ \tag{1.2} $$ を座標原点にすると、計算量が少なくなることが知られている。 そこで、重心 $(\overline{x}, \overline{y})$ を原点とする座標系 (重心座標系 $G$) を用いることにし、 $G$ で表した点群の位置を $(X_{i},Y_{i})$ とすると、 $(X_{i},Y_{i})$ と $(x_{i}, y_{i})$ の間には
$$ \tag{1.3} $$ の関係がある (下図)。
これより、
$$ \tag{1.4} $$ が成り立つ。
  以上の準備をもとに、ある一つの円を考える。 円の中心は $(c_{x}, c_{y})$ であり、 半径が $r$ であるとする。 円の中心を重心座標系で表したものを $(C_{x}, C_{y})$ と置くと、 $(1.3)$ と同様に
$$ \tag{1.5} $$ の関係がある。 この円の中心と各点との間の距離の二乗と、半径の二乗との差は、
である (下図参考) 。
総和は
である。ここで、便宜上
$$ \tag{1.6} $$ と置いた。
  このように 総和 $S$ は、 $C_{x}, C_{y}, R$ の 3 つの変数に依存する。 これらの変数に対して、 $S$ が最小値をとるためには、 これらに対する $S$ の微分が $0$ でなくてはならない。 すなわち、
$$ \tag{1.7} $$ が成り立たなくてはならない。 これらの式を順番に検討する。まず
であるので、 $(1.7)$ の第一式より、
$$ \tag{1.8} $$ が成り立つ。 これを用いると、
であるので、 $(1.7)$ の第二式と $(1.4)$ より、
$$ \tag{1.9} $$ を得る。 同じように、 $(1.7)$ の第三式と $(1.4)$ より、
$$ \tag{1.10} $$ が成り立つ。ここで便宜上
$$ \tag{1.11} $$ と置くと、 $(1.9)$ と $(1.10)$ はそれぞれ
と表される。 これらを書き換えると、
であることから、 行列を用いて、
とまとめられる。 これより、 $C_{x}$ と $C_{y}$ は
$$ \tag{1.12} $$ と求められる。 ここで二つ目の等号では2行2列の逆行列の公式を用いた。 $C_{x}$ と $C_{y}$ が求められたので、 $(1.8)$ より、
$$ \tag{1.13} $$ と $R$ が求められる。
まとめ
  以上の結果を要約する。 点群 $(1.1)$ の最小二乗円の中心は、
である ($(1.5)$)。 ここで、$\overline{x}$ と $\overline{y}$ は、
である ($(1.2)$)。 また、 $C_{x}$ と $C_{y}$ は
によって求められる ($(1.12)$)。 ここで $T_{mn}$ は
であり ($(1.11)$)、 $X_{i},Y_{i}$ は
である ($(1.3)$)。 また、 半径 $r$ は $(1.6)$ と $(1,13)$ より、
である。

具体例
  6つの点
にフィットする円を最小二乗法で求めよ。
解答例
  上記の議論を用いる。 数値計算を念頭に置いて、 計算結果を小数で表す。 重心の座標は、
である。これより、重心を原点とした座標系における位置は、
である。これを用いて次の総和を計算する。
これらを用いると、 重心を原点とした座標系における円の中心 $(C_{x}, C_{y})$ が
と求まる。これより、もとの座標系における円の中心が
と求まる。 また、円の半径は、
と求まる。以上の結果をプロットしたのが下図である。
6点(赤点)にフィットするように円が配置されている。