- 締切済み
最小二乗法に関する質問
Aの転置行列をtAと書くとき、 (tA)Ac=(tA)b (だだし、cとbは3次元の列ベクトル、Aは3次正方行列、Aとbは既知) についてcを求めたいのですが、Aや(tA)Aが正則でない時、cは求められるのでしょうか。 可能なら、方法を教えて下さい。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- dedenden
- ベストアンサー率52% (9/17)
#2です。 以下の回答で、最後から10行程度の「したがって」以降に記述した、 "G1^2" は、"G1^-1" の誤記で、G1 の逆行列を意味します。
- dedenden
- ベストアンサー率52% (9/17)
以下では、大学の線形代数で習う実対称行列の対角化の知識を前提として 説明します。また、表記の簡便さのため、行列の転置を(tA) ではなく、 A'と書きます。A はn次元正方行列とし、r=rank(A'A)とおきます。 まず、A'A は実対称行列なので、正規直行行列で対角化できて、 A'A=UGU' とかけます。Gは対角行列で、絶対値の大きい固有値から 順に対角に並んでいるとします。A'A は正則ではないので、右下 には、n-r 個の0固有値が並びます。したがって、Gは部分行列に 分解して、以下のように書くこととができます。 G=|G1 0| |0 0| ここで、G1は、rxr の正則対角行列となります。 解くべき問題は、e=|A'Ac-A'b|^2 を最小にするcを見つけることです。 これは、以下のように展開できます。 e=|UGU'c-A'b|^2 =|U'(UGU'c-U'A'b)|^2 =|GU'c-U'A'b|^2 ただし、U'U=I および |UX|^2=|X|^2 の関係を利用しました。 いま、l=U'c および m=U'A'b と置くと、e=|Gl-m|^2 とかけます。 Ul=UU'c=c なので、e を最小にする l を求めることで c を求めること ができます。 次に、lとmのそれぞれを、をr次元と(n-r)次元の部分ベクトルに、 以下のように分解します。 l=| l1 | | l2 | m=| m1 | | m2 | すると、e はさらに以下のように書き換えられます。 e=|G1l1-m1|^2 したがって、eを最小にするlは、l1=G1^2m1を満たすことになります。 一方、l2 は不定となります。 最終的に、求めるべきcは、以下のように記述されます。 c=Ul where l=| G1^2m1 | | l2 | ただし、l2 は任意の(n-r)次ベクトル
- stomachman
- ベストアンサー率57% (1014/1775)
最小二乗法の場合、A(ヤコビアン行列)は行数>列数であって、正方行列ということはありません。
補足
それは知りませんでした。 問題文には確かに「3×2行列A」とあるんですが、 A=[a1,a2,a3] (a1,a2,a3は最初に与えられていて、3次元列ベクトル) となっていたので、「3×3」のミスだと思っていました。 しかし、私が無知だからなのか本当にミスなのか、これではa1,a2,a3のどれを採って3×2行列としたらいいのか分かりません。基底云々の話なのでしょうか。 またAが3×2行列だと、cが2次元列ベクトルになってしまうと思うのですが、それでいいのでしょうか。