この人頭いいなと思ったエピソード

Aの転置行列をtAと書くとき、
 (tA)Ac=(tA)b 
 (だだし、cとbは3次元の列ベクトル、Aは3次正方行列、Aとbは既知)
についてcを求めたいのですが、Aや(tA)Aが正則でない時、cは求められるのでしょうか。
可能なら、方法を教えて下さい。

A 回答 (3件)

#2です。



以下の回答で、最後から10行程度の「したがって」以降に記述した、
"G1^2" は、"G1^-1" の誤記で、G1 の逆行列を意味します。
    • good
    • 0

以下では、大学の線形代数で習う実対称行列の対角化の知識を前提として


説明します。また、表記の簡便さのため、行列の転置を(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)次ベクトル
    • good
    • 0

最小二乗法の場合、A(ヤコビアン行列)は行数>列数であって、正方行列ということはありません。

この回答への補足

それは知りませんでした。
問題文には確かに「3×2行列A」とあるんですが、
 A=[a1,a2,a3]
 (a1,a2,a3は最初に与えられていて、3次元列ベクトル)
となっていたので、「3×3」のミスだと思っていました。

しかし、私が無知だからなのか本当にミスなのか、これではa1,a2,a3のどれを採って3×2行列としたらいいのか分かりません。基底云々の話なのでしょうか。
またAが3×2行列だと、cが2次元列ベクトルになってしまうと思うのですが、それでいいのでしょうか。

補足日時:2007/11/27 12:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!