• ベストアンサー

行列の掛け算

ってどうしてああいう計算方法なのでしょうか? どういう考えからああいう計算方法が生まれたのでしょうか?

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

  • ベストアンサー
  • marpon
  • ベストアンサー率50% (2/4)
回答No.4

>自分なりに解釈したのですが、この解釈で合っているのでしょうか。 だいたいあってると思います。厳密に説明しようとすると抽象的になって余計わかりにくいかもしれまえんので。 >線形写像fというのは関数みたいなものだと思うので、 ほぼ同義ですが、写像の方がやや意味が広いです。 集合Uのどの要素にも集合Vの要素1つを対応付けるとき、これをUからVへの「写像」といいます。特にVが実数または複素数のときに関数ともいいます。 ベクトルu,v、任意の体a,bについて f(a u + b v) = a f(u) + b f(v) が成り立つときにfを線形写像といいます。

eatern27
質問者

お礼

先生が写像は関数のお化けといっていたのですが、fの中が何かと言うような違いだったのですか。 2回目の回答ありがとうございました。

その他の回答 (3)

  • mmky
  • ベストアンサー率28% (681/2420)
回答No.3

「どうしてああいう計算方法なのでしょうか? 」 #1、2さんの説明がありますが、行列式のもとは連立方程式(鶴亀算)を解くところからきています。 「どういう考えからああいう計算方法が生まれたのでしょうか?」たぶん連立方程式の式を足したり引いたりしないで解ける方法を考えたんだと思いますが、頭の中が碁盤の目のようなチェスとか将棋の好きな人だったのかも知れませんね? というこことで、まず連立方程式をといてみましょう。 連立方程式は以下のようにしておきます。 Ax+By=E  (1) Cx+Dy=F  (2) yを消す D×(1) B×(2) ADx+BDy=DE - BCx+BDy=BF --------- (AD-BC)x = DE-BF   (3) x=(DE-BF)/(AD-BC)   (5) xを消す D×(1) B×(2)  ACx+BCy=CE - ACx+ADy=AF  --------- (BC-AD)y =CE-AF   (4) y=-(AF-CE)/(AD-BC)   (6) 答えの(5)、(6)をみると、分母の計算は右下、左上の掛け算 分子も同じにできますね。右下、左上です。 | A B | | E B | | A E | | C D | | F D | | C F | =AD-BC =DE-BF =AF-CE というわけで、このへんな計算をするとカッコ内に係数を入れ替える だけで連立方程式の答えが出るんですね。 ものぐさには、右下、左上だけ覚えとけばOKということで、これが 行列という数学に発展したのですね。 使い勝手は、好き嫌いがありますので、 ということでわかったかな・・・??

eatern27
質問者

お礼

>連立方程式の式を足したり引いたりしないで解ける方法を考えたんだと思います ということは連立方程式で行列という概念を作って、右から掛ける方は列を増やせるぞ、ということで正方行列同士などの掛け算が生まれたのですね。でも、高校では、正方行列同士などの掛け算を習って、その後に、実は連立方程式は行列で表せる。と習ったのですが、高校生に分かりやすいように順番を入れ替えていたのですね。 回答ありがとうございました。

  • siegmund
  • ベストアンサー率64% (701/1090)
回答No.2

eatern27 さん: > 線形写像fというのは関数みたいなものだと思うので、 > y=f(x)のとき(この表現が正しいのかはわかりませんが)、 > xをyにするにはA(を掛ける)という操作を行うと事とする。 > gについても同様にBという操作を行う事とする。 > y=f・g(x)のときにxをyにする操作をAB(を掛ける)という操作にするためには、 > ABの掛け算はああいう計算にならなければならない。 写像と関数は使い分けをする場合もあるようですが,同じ意味でしょう. eatern27 さんの解釈はまさにそのとおりです. もともと,行列は (1) ax + by (2) cx + dy の形の係数を (3) ┌   ┐      │a b│     │c d│     └   ┘ と並べて書いたものでしょう.(1)(2)式を再現するには (4) ┌   ┐┌ ┐ ┌     ┐      │a b││x│=│ax+by│     │c d││y│ │cx+dy│     └   ┘└ ┘ └     ┘ と積の形にして,ご承知のとおりの行列×ベクトルの積の法則をつければ右辺のようになるわけです. で,今度は行列同士の積ですが,行列 A,B とベクトル Z (5)  ┌   ┐    ┌   ┐    ┌ ┐     A=│a b│  B=│e f│  Z=│x│       │c d│    │g h│    │y│      └   ┘    └   ┘    └ ┘ を持ってきて (6) A(BZ) = (AB)Z という法則(結合法則)が常に成り立つようにします. (6)の左辺は既に決められている行列×ベクトルの積の法則で順次計算できます. これと結果が同じになるようにするには AB を (7)   ┌           ┐    AB=│ae+bg af+bh│       │ce+dg cf+dh│       └           ┘ と定義すればよいわけで,ご存知のとおりの行列の積の約束になります. なお.行列は縦ベクトルを横に並べたもの(上の例では2個のベクトル)を見なすこともできるわけで, そちらの立場からも上の行列の積の定義は合理的のように思われます. 一度構成ができてしまえば,「演算規則をこういう風に定義する」になるんでしょうけれどね.

eatern27
質問者

お礼

(4)で[x y]とx,yを横に並べておけば、掛け算でどっちが縦だっけ?なんて言うことにはならなかったんですけどね。(今はもうありませんが、初めて習った頃は…) でも、そうしてしまうとまた別の所でまた問題が出てきてしまうんでしょうね、きっと。x,yを縦に並べるのが一番問題が生じない形なんですね。 今思うと、行列に始めて出会ったのは中学のときでした(行列という言葉は知りませんでしたが)。塾でやったのですが、1つ1つ何と何を掛けて、それに加えるのは何と何を掛けたやつ…ということをやっていたので頭がパンクしそうでした。 回答ありがとうございました。

  • marpon
  • ベストアンサー率50% (2/4)
回答No.1

質問の内容からして、質問者は高校生くらいと仮定して書きます。 高校では単に数字を長方形に並べたもの、と説明しますので、なんでああいう計算になるのかと思うかもしれません。 理系の人の多くは大学1回生で「線形代数学」というのを学ぶと思うので、そうすれば意味はわかると思います。 大学では行列は線形写像の表現と考えますので、 線形写像fの表現行列をA、線形写像gの表現行列をBとしたとき、線形写像f・gの表現行列がABとなるには、ABの掛け算はああいう計算にならなければならないんです。 ぜんぜん回答になってないかもしれませんし、余計混乱させただけかもしれませんが、ちゃんと意味はあるということです。 とりあえず高校のうちはそういう決まりだとわりきるか、興味があるようだったら書店で「線形代数学」という参考書を買って読むことを勧めます。

eatern27
質問者

お礼

学校ではベクトルの内積の説明はしてくれたのですが、意味は分かりませんでした。だから、実際に答えて頂いても、完全に理解できないだろうなと思いながらも質問したのですが、意味があるということが分かっただけでもよかったです。 回答ありがとうございました。

eatern27
質問者

補足

自分なりに解釈したのですが、この解釈で合っているのでしょうか。 線形写像fというのは関数みたいなものだと思うので、y=f(x)のとき(この表現が正しいのかはわかりませんが)、xをyにするにはA(を掛ける)という操作を行うと事とする。gについても同様にBという操作を行う事とする。y=f・g(x)のときにxをyにする操作をAB(を掛ける)という操作にするためには、ABの掛け算はああいう計算にならなければならない。 全然違うのか、こんな感じでいいのか、だけでもかまいません。

関連するQ&A

  • mathematicaの行列の掛け算に関して

    mathematicaで行列の掛け算をしたいのですが、 2x2行列同時の計算は普通にできるのですが、 1x2行列と2x1行列の計算ができません。行列の大きさが変わる場合どのようにすればいいのでしょうか? (3,5)*(45 14)^T (Tは転置行列として解釈してください。) 実行しようとしたら互いに長さが等しい同時のオブジェクトしか結合できませんとでます。

  • 行列の掛け算と逆行列にて最も少ない計算量は?

    宜しくお願い致します。 行列の計算の評価を探しています。 n×n実行列A,Bの掛け算ABと逆行列A^-1を計算するのに一番少ない計算法はどのくらいで評価できるのでしょうか? Time(ABの計算)=O(??), Time(A^-1の計算)=O(??) よろしければそのサイトもご紹介頂けましたら有難いです。

  • 行列の掛け算

    こんにちは。 今回のプログラムは4×4の行列と1×4の行列を掛け合わせて、 その結果を出力するというものです。 読み込むデータはdata[l][j]で 中身は 1 2 3 4 5 2 3 4 5 1 3 1 4 5 6 2 3 1 9 7 といった形になっています。 最初の 1 2 3 4 2 3 4 5 3 1 4 5 2 3 1 9 が4×4の行列になっていて、それに 4 5 5 9 を掛け合わせるというものです。その結果を まずx[0][j]にいれ、その結果と 1 2 3 4 2 3 4 5 3 1 4 5 2 3 1 9 をもう一度掛け合わせその結果を x[1][j]にいれ、 x[k][j]を出力するというプログラムです。 行列の掛け算の部分のプログラムは以下の通りです。 sprintf(fname,"impulse[%d].txt",c); fp = fopen(fname,"a"); for(k=0;k<2;k++){ for(j=0;j<4;j++){ for(l=0;l<4;l++){ x[k][j] +=data[l][j] * data[5][l]; data[5][l] = x[k][j]; fprintf(fp,"%8.8f\n",x[k][j]); } } } fclose(fp); です。これだと結果がすべて0となって出力されてしまいます。どこがいけないのでしょうか。

  • かわった掛け算

    ある部族での掛け算の方法です. その部族では数字を2倍にするか半分にするか という計算しかなく,分数の概念もないそうです. しかし,どんな掛け算でも行うことができるのです. 例えば,27*43 を計算するときには 27と43から始まる数列を作ります.  27 43  13 86   6 172   3 344   1 688 このように,左の列は数字を半分にし(奇数時の余りは無視) 右の列は数字を2倍していきます. これを左の列の数字が1になるまで続けたあと, 左の列が偶数になる行を取り除きます. 今の例では (6 172) です. そうしておいて,残った行の右の列の数字の和を計算すると解を得ます. 今は,  43 + 86 + 344 + 688 = 1161 です. 一般の場合に,この方法で正しい解が得られることを証明できません. どなたかご教示お願いします.

  • マクロの行列の掛け算ができません

    エクセルでマクロ勉強中の初心者です。 マクロで行列A(3行4列)、行列B(4行2列)の掛け算のプログラム(下記)を作っているのですが 「インデックスが有効範囲にありません」というエラーメッセージが出てしまいます。 エクセルで関数(MMULT)で同様の計算をするときちんと計算できるのですが・・・。 どなたか教えてください。 よろしくお願いいたします。 Sub s1() ' 次元の設定 Dim A(3, 4), B(4, 2), C(3, 2) N1 = 3: N2 = 4: N3 = 3 ' データの入力 (行列AとBの設定) For I = 1 To N1: For J = 1 To N2 A(I, J) = Worksheets("s1").Cells(I, J) Next J: Next I For I = 1 To N2: For J = 1 To N3 B(I, J) = Worksheets("s1").Cells(I, J + 5) Next J: Next I ' ベクトルの内積 For I = 1 To N1 For J = 1 To N3 For K = 1 To N2 C(I, J) = C(I, J) + A(I, K) * B(K, J) Next K Next J Next I ' 結果の出力 For I = 1 To N1 For J = 1 To N3 Worksheets("s1").Cells(I + 6, J + 7) = C(I, J) Next J Next I End Sub

  • √の足し算掛け算

    いまさらなんですが√の計算の仕方が全然思い出せません。 √同士の計算や√と整数の計算方法(√2×100とか) を教えてください! お願いします

  • OpenCVの行列の掛け算

    OpenCVで行列同士の掛け算をしようとしています. 4×1の行列と4×4の行列を cvMullで掛け算しようとすると 行と列の次元が合わないので掛け算できません 二つの行列を掛け算する方法はありますか?

  • 行列

    久しぶりに行列の計算を行わないといけなくなったのですが,計算方法をすっかり忘れてしまいました.そこで,以下の計算を行うにはどうすればよいかご教示願えないでしょうか? 例 A=(1,1) A=(2,1) A=(3,1) ↑3行2列の行列だと思ってください. この行列を逆行列にする方法がどうにも思い出せません. 因みにこれは,1次式が3つありこれらを連立方程式で解くという段階での逆行列計算だと お考えください. よろしくお願いいたします.

  • 三角関数と√の掛け算

    物理の計算で式がちゃんとたてられて間違いなく式は下記の (sinθ-μcosθ)g・√2h/g(sinθ-μcosθ)sinθ となりました。 純粋にこれを計算したいのですが結果が √2{1-(μcosθ/sinθ)}gh となるらしいのですが平方根と普通の定数との掛け算の方法を度忘れしてしまいこの結果を導く途中式がまったくわかりません。 雰囲気としては(sinθ-μcosθ)gを平方すればいいというのは考えで浮かぶのですが (sinθ-μcosθ)gをどう平方すればいいのかがわかりません。 ご教授お願い申し上げます。

  • かけ算と割り算ですが

    すいません下記の計算方法を教えてください。 20÷3×6= 解く順番の意味がよくわかりません。 解き方の説明もいただけるとありがたいです。