• ベストアンサー
  • すぐに回答を!

円の最小二乗法の公式

いくつかのデータから最小二乗法で近似曲線を求めたいのですが、よくわかりません。そのデータ集の近似曲線は円になります。 最小二乗法を調べ、1次、2次関数についてはわかりました。ある点の座標を(x1,y1), (x2,y2)…、近似曲線上の座標を(x1,y’1),(x2,y’2)… とした時、 (y’1-y1)^2 + (y’2-y2)^2 … が最小となるような係数a,b などを偏微分 → 連立方程式で求めるという方法でした。 円についても、同様の方法で r^2 = (x-a)^2 + (y-b)^2 のような近似曲線の式が求められるのでしょうか?1次関数などのように、y’1-y1を求めようとすると、±√ が出てきてしまい、ややこしくなる気がしますが、これを解くしかないのでしょうか?もしくは別の解法があるのでしょうか?詳しく教えていただけたらと思います。よろしくお願いします。

共感・応援の気持ちを伝えよう!

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • inara1
  • ベストアンサー率78% (652/834)

円の場合は中心対称なので、普通の最小二乗法のような y の値の差の2乗でなく、半径の2乗の差の総和をゼロとする方法が良いと思います数学的には適切ではないかもしれませんが、実験データをモデルに当てはめるような目的なら問題ないと思います。乱数で値をばらつかせた100組のデータで実際計算してみましたが、うまくフィッティングできました。 当てはめる円の方程式を    ( x - x0 )^2 + ( y - y0 )^2 = r^2 としたとき、n個のデータ組( xi, yi )に対する半径の2乗の差の総和    S = Σ{ r^2 - ( xi - x0 )^2 - ( yi - y0 )^2 } --- (1) がゼロとなる x0, y0, r の値は    x0 = ( Σxi )/n    y0 = ( Σyi )/n    r = = √{ ( Σxi^2 + Σyi^2 )/n - ( x0^2 + y0^2 ) } になります( x0, y0 はそれぞれ xi, yi の単なる加算平均になります)。 (x0, y0, r の計算方法) x0 と y0 を変化させたとき S が最小となるのは    ∂S/∂x0 = -2*Σ ( xi - x0 ) = -2*( Σxi - Σx0 ) = -2*( Σxi - n*x0 ) = 0    ∂S/∂y0 = -2*Σ ( yi - y0 ) = -2*( Σyi - Σy0 ) = -2*( Σyi - n*y0 ) = 0 となるときなので    x0 = ( Σxi )/n、y0 = ( Σyi )/n --- (2) 一方、式(1)を展開すれば    S = Σ{ r^2 - ( xi - x0 )^2 - ( yi - y0 )^2 }      = n*r^2 -Σxi^2 -Σyi^2 + 2*x0*Σxi + 2*y0*Σyi - n*( x0^2 + y0^2 ) なので、これがゼロとなるためには     r = √[ { Σxi^2 +Σyi^2 - 2*x0*Σxi - 2*y0*Σyi + n*( x0^2 + y0^2 ) }/n ] でなければなりません。 式(2)から     Σxi = n*x0、Σyi = n*y0 なので     r = √[ { Σxi^2 +Σyi^2 - n*( x0^2 + y0^2 ) }/n ]      = √{ ( Σxi^2 + Σyi^2 )/n - ( x0^2 + y0^2 ) }

共感・感謝の気持ちを伝えよう!

その他の回答 (1)

  • 回答No.1

本当のところ、最小二乗法はデータの構造がどうなっているかを推定する 必要があります。実際、 >(y’1-y1)^2 + (y’2-y2)^2 … が最小 これは誤差が目的変数に直接と仮定しているからです。 Y=f(x)+ε Σε^2=Σ{Y-f(x)}^2 最小二乗法はだから、各データから最小の『距離』の式が出るわけでは なく、Y軸方向の誤差が最小になるような式を与える係数が算出されます。 なので、最小二乗法関連の本やURLを見ると例外なく直線から上下に 誤差を示す矢印が出ていると思います。(直線から垂直ではなく) 逆に言えば誤差に触らないような式変形なら割と自由に出来ます。 円の式が r^2=(x-a)^2+(y-b)^2+ε ならば r^2=x^2-2ax+a^2+y^2-2by+b^2+ε (x^2+y^2)=-2ax-2by+(a^2+b^2-r^2)+ε これは Z=AX+BY+C  (ただし、Z=x^2+y^2,X=-2x,Y=-2y) に回帰しているのと変わりません。 これでA,B,Cを計算した後、変形して円の式に戻せばいいのです。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 最小二乗法の問題

    (x、y)についてのん組のデータ(x1、y1).......(xn、yn)が直線y=ax+bの近似できるとき、aとbを最小二乗法により求めよ。

  • gnuplotでの最小二乗法について。

    他のカテで質問したのですが、 こちらの方が関係性が深いと思い移動しました。 y,x1,x2 を測定データとして、線形関数 y=a*x1-b*x2 におけるパラメータ a,b をgnuplotを使って最小二乗法で求めたいのですが、参列のデータ(x1,x2,y)を用意して、 f(x)=a*x1-b*x2 fit f(x) "data.dat" via a,b とうった時点で、undefined variable: x1 とエラーが出てしまいます。 どうすればよいでしょうか。よろしくお願いします。

  • 最小二乗法でa、bを求める公式を教えてください

    最小二乗法について良くわからないのですが、教えてください! y=a/(x+b)の場合で、n個のx、yのデータがあります。 最小二乗法で、aとbを求める。 という問題なのですが、aとbを求める公式を教えてください!

  • 3次元の最小二乗法

    A(x1,y1,z1)とB(x2,y2,z2)とC(x3,y3,z3)とD(x4,y4,z4)の点で 最小2乗法ほうを使い直線近似したいのですが、どのような式になりますかご存知の方教えていただけますか?

  • 最小二乗法とデータのばらつきを除去

    実験データに最小二乗法を適用して近似関数(y=ax+b)を求めたいです。 しかし,実験データにはばらついた値があり,得られた近似関数も それらの値によって,おおきくずれてしまいます。 そこで,何らかの方法でばらついた値を排除していき, 信頼できる近似関数を求めたいと思います。 聞いたところ,正規分布か何らかの方法で, 信頼区間(95%)以外のデータを除去すれば良いと のことですが,具体的な方法が分かりません。 実験データyi,xiと最小二乗法でy(=a*xi+b)から どのような処理をすればよいのか教えてください。 よろしくお願いします。

  • 最小二乗法

    n組のデータ (xi, yi) を,特定点(X0, Y0) を通る直線 y = ax+b でフィッティングしたい。最小二乗法で係数a,bを求めるため の式を導きなさい。 という問題で 各データの残差を二乗した和が最小になるときのa,bを求めるのですが 特定点(X0,Y0)を通るにはどうすればよいでしょうか? ただ単に、特定点を通らずフィッティングするやりかたはわかるのですが・・・。 よろしくお願いします。

  • 最小二乗法

    円x^2+y^2=1上の点Pにおけるこの円の接線とx軸、y軸との交点をそれぞれA,Bとして、 Pが第一象限を動くとき、線分ABの長さLを求めよ。 なお、Lの最小値の存在理由も述べよ。 というもんだいなのですが、 線分ABはy=txとなるので、このtを最小二乗法でもとめるんだと思うのですが、 最小二乗法の理論値、実測値などが、まだ良くわかりません。 と言いますか、傾きが最小ならLは最小で合ってますでしょうか? 傾きが45°のときが怪しくなってきたのですが・・・ また、最小値の存在理由ってどうやったら説明できるのですか? よかったら、教えてください。

  • 最小二乗法における有効数字について

    最小二乗法における有効数字について質問があります. 直線近似を行うとします.最小二乗法を用いるデータの有効数字を考慮して,最小二乗法により求められた直線の傾きa,切片b の有効数字が決まると思うのですが,どのようにこの有効数字を決定すれば良いのでしょうか?

  • 最小二乗法の応用について

    実験により、xに対するyの値をxの値をかえながら、N回測定した。測定したxに対するyの関係をグラフに描くと、次の二次関数で表現するのが適当であることがわかった。 y=ax*x+bx+c この時、最小二乗法によりパラメータa、b、cの値を求める式を導出せよ。という問題なのですが、どのようにしたら最小二乗法で求めることができるのですか? どうか教えてください

  • 非線形最小二乗法のmarquardt法とsimplex法に関して

    ほぼ一定の周期を持つデータがあり、それに対してy = a*cos(b*X+c)+d*X+eという形の近似式を求めたいと思っております。 いろいろ調べてみると非線形最小二乗法を利用して、求めればいいことが分かりました。 しかし非線形最小二乗法にはmarquardt法とかsimplex法などがあることが書かれていたのですが、それらの処理法が何をどうしているのか、参考書を見ても、よく分からず、脳が悲鳴をあげています。 この非線形最小二乗法のmarquardt法とsimplex法に関して、違いと求め方を素人でも分かるような形で教えていただくことができましたら、どうかご教授よろしくお願い致します。