プロが教える店舗&オフィスのセキュリティ対策術

今エクセルで行列を使って問題を解いています。

問題は
行列X、A、Yがあり、Xは1行4列、Aは1行2列、Yは1行4列です。
X・A=Y という式があり、Aの行列は未知数a,bの要素からなっています。
X,Yはそれぞれ数値として要素が決まっています。

ここからはヒントとして表示されていました。
そこでXの逆行列を両辺の左からかけるとAは求まるはずですが、
Xは正方行列ではないので、Xの転置行列を左からかけます。
X(T)・Xは正方行列になるのでこれを行列Pとおくと
Pの逆行列を求められ、右辺にP^-1をかけるとAが求まる。

というものです。

エクセルで書かれている通りにやってみて、エラーになるので調べてみると、XとXの転置行列の積の行列式は要素にかかわらず0になるようです。
実際に数値ではなく、abcdでやってみたところ0のようです。
この場合、逆行列は存在しないのではないかと思いますが、このヒントが間違っているとはあまり思えず、困っています。

補足ですが、この問題は最小二乗法をエクセルで行列を用いて行うという趣旨です。
もとのデータとして(x、y)の座標が4点与えられており、行列Xはxの要素を縦にならべたもの、Aは最小二乗法で求める一次関数式のパラメーターa,bで、YはXと同様座標のy要素です。
私の理解が間違っていて、何行何列という部分に誤りがあるなどの指摘があれば、ぜひお願いいたします。
そもそもある行列とその転置行列の積の逆行列は存在するのかどうかもお願いします。


締め切りが近く、ちょっとあせっています。
よろしくお願いします!!

A 回答 (2件)

>行列X、A、Yがあり、Xは1行4列、Aは1行2列、Yは1行4列です。


>X・A=Y という式があり、Aの行列は未知数a,bの要素からなっています。

行列Xは2行4列ではないですか?このままでは行列計算できませんよ。


>実際に数値ではなく、abcdでやってみたところ0のようです。

当たり前です。Excelにおいて文字はデータが0です。これで計算すれば
0になるに決まっています。


2行4列の数字の行列(A1からB4)と1行4列(G1からG4)の数字があれば
例えばD1、D2を指定して以下の式を入力、Shift+Ctrl+Enterで

{=MMULT(MINVERSE(MMULT(TRANSPOSE(A1:B4),A1:B4)),MMULT(TRANSPOSE(A1:B4),G1:G4))}

と計算するとでます。({}はExcelの行列計算で範囲入力したときの{}です)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
補足ですが、実際にやってみたのは手での計算です。
私の間違いはそもそも式の建て方にあったことがわかりました。
おっしゃるとおり2行4列でした。
そのようにしたらうまくいきました。
まだまだ勉強不足です。
ありがとうございました!

お礼日時:2007/10/30 20:34

a+bx=y


-----------
a+bx1≒y1
a+bx2≒y2
a+bx3≒y3
a+bx4≒y4
-----------
a・1+bx1≒y1
a・1+bx2≒y2
a・1+bx3≒y3
a・1+bx4y≒4
------------------
[1 x1][a]  [y1]
[1 x2][b]≒[y2]
[1 x3]    [y3]
[1 x4]    [y4]
   X・A=Y 
--------------------------------------------
[ 1 1 1 1][1 x1][a] [ 1 1 1 1][y1]
[x1 x2 x3 x4][1 x2][b]=[x1 x2 x3 x4][y2]
        [1 x3]          [y3]
        [1 x4]          [y4]

         X(T)XA=X(T)Y 
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
みなさんおっしゃるとおり、最初のXを2行4列にしていないことが間違いでした。
詳しい説明、ありがとうございました。

お礼日時:2007/10/30 20:35

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