- 締切済み
楕円の正規化条件
今、楕円の最小二乗法のプログラムを書いているのですが、正規化条件の扱いがよくわかりません。 単純に u = (A B C D E F) (1) ξ = (x^ 2 2xy y^2 2x 2y 1) (2) で、 行列 M = (1 / N ) Σ ξ・ξt (3) ξt:ξの転値 N:Σの数 の最小固有値に対する固有ベクトルをuとして採用するという計算をしているのですが、放物線になってしまいました。 標準的には A^2 + B^2 + C^2 + D^2 + E^2 + F^2 = 1 (4) が正規化条件として使われる、とあるのですが、これをどう扱っていいかわからないのです。 この論文を参考にしています http://www.iim.cs.tut.ac.jp/~kanatani/papers/newlsellipse.pdf
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ramayana
- ベストアンサー率75% (215/285)
「(N^-1)Mu = λu の最小固有値に対する固有ベクトルを求めれば良いのでしょうか?」 N が正則行列(逆行列を持つ行列)と限らないので、(N^(-1))Mu = λu という形への変形は不可能と考えるべきでしょう。引用論文の 2 ページに (3) から (8) まで 6 種類の正規化の例が挙げられていますが、 (5) を除く 5 種類では、 N が非正則行列(逆行列を持たない行列)になります。ANo.3 の N も非正則行列です。 それより、次のようにして普通の固有値の計算に帰着させることができます。まず、M が正則行列であることを仮定します。観測データには誤差が付きものですが、観測データに誤差があれば、M は必ず正則行列になります。 すると、引用論文 2 ページの (15) 式 Mu = λNu は、 M^(-1)N u = (1/λ)u と変形できます。そこで、行列 M^(-1)N の絶対値最大の固有値に対応する固有ベクトルを計算すれば、それが u になるのです。 なお、1/λ は、M^(-1)N の固有値です。もともと絶対値が最小のλを求めることになっていたので、その逆数である 1/λ に関しては、絶対値が最大のものを求めることになります。
- ramayana
- ベストアンサー率75% (215/285)
- ramayana
- ベストアンサー率75% (215/285)
「M の最小固有値に対する固有ベクトルをuとして採用する」という方法では、 Ax^2+2Bxy+Cy^2+2(Dx+Ey)+F=0 で表される曲線が楕円であるという条件、すなわち、Ax^2+2Bxy+Cy^2 の部分が正定値2次形式であるという条件、さらに言い換えれば、AC-B^2>0 であるという条件を、どこにも使っていません。だから、推計結果が放物線や双曲線になっても何の不思議もありません。 A^2 + B^2 + C^2 + D^2 + E^2 + F^2 = 1 の条件の代わりに、引用論文の(8)式 AC-B^2 = 1 を条件とすれば、楕円だけが推計されます。 なお、A^2 + B^2 + C^2 + D^2 + E^2 + F^2 = 1 をどう扱っていいか分からない、ということですが、これは、引用論文の「重み行列N」を単位行列にする、ということです。ご質問の計算は、まさに、N を単位行列にとしておられます。
補足
詳しくありがとうございます。 (8)式を条件とした場合、重み行列Nはどうなるのでしょうか?
- alice_44
- ベストアンサー率44% (2109/4759)
その解法は、よく知らないが、 固有ベクトルを解にするのなら、 長さを決める規則は必要でしょう?
補足
ありがとうございます。 重み行列を使う場合は、 Mu = λNu (15) の最小固有値に対する固有ベクトルを求める、とのことですので (N^-1)Mu = λu の最小固有値に対する固有ベクトルを求めれば良いのでしょうか?