円の最小二乗法を解説

最小二乗円
  $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)$ の最小二乗円の中心位置 $(c_{x}, c_{y})$ を求めるためには、 はじめに重心
と ($(1.2)$)、 重心座標系での位置
を計算する ($(1.3)$)。 これを用いて、
を計算し ($(1.11)$)、
によって ($(1.12)$)、 $C_{x}$ と $C_{y}$ を計算し、 最後に
計算すると ($(1.5)$)、 中心位置が得られる。
  半径 $r$ については、 $(1.6)$ と $(1.13)$ より、
を計算すると得られる。

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