• ベストアンサー

行列の積の意味

まだ学習し始めたばかりなので用語が間違っているかもしれないのですが、 行列の積の意味はn次元空間上の或る点を別の位置に移す事を表現しているとも考えられる、 と会ったのですが、よくわかりません。 ”行列のスカラー倍”の場合はベクトルが移動して拡大という考え方(間違っているかも)で納得したのですが、画像のような場合、a,b,c,dは何を意味するのでしょうか?a=x1,b=x2,c=y1,d=y2 といった感じでしょうか?可視化したものを見てみたいのです。

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

  • ベストアンサー
  • bgm38489
  • ベストアンサー率29% (633/2168)
回答No.3

この場合、X座標とY座標からなる2次元配列(x,y)を移動させることになります。 移動に使われる行列が2×2のものであるため、たとえばX座標の移動にはY座標も関係してくる。即ち、xがax+byになるのです。yはcx+dyとなる。即ち、(x,y)が(ax+by,cx+dy)に移動する。 簡単に言えばこういうことです。

Mokutsuno
質問者

お礼

回答ありがとうございます わかりやすかったです。

その他の回答 (2)

  • ddtddtddt
  • ベストアンサー率56% (175/312)
回答No.2

 誤解かも知れませんが「行列の積」の意味が、Aを行列,uをベクトルとしてAuの事だとするなら、普通は「行列とベクトルの積」と呼びます。ベクトルは特殊な行列でもあるんですけれど、主たる用途が違うために普通はこういう言い方をします。  次にuとAuとの関係ですが、質問文の図のようにはなりません。uとAuは普通の解釈で、「位置ベクトル」と考えてOKです。なので、添付図の左のようになります。  で、「行列とベクトルの積の意味」ですが、質問の意図としては「ベクトルに対する行列の作用の仕方を可視化(明確化)したい」と受け取れました。それで行列Aの固有ベクトルというものを考えます。  全てのタイプの行列ではないですが、標準的な行列はみな、平行でない固有ベクトルを必ず2本持ちます。それらをv1,v2とした時、固有ベクトルとはAv1=α・v1,Av2=β・v2となるAの成分から決まるベクトルで、αとβはスカラーであり固有値と呼ばれ、αとβもAの成分から決まります。  ここでAの固有ベクトルv1とv2でuを、u=s・v1+t・v2と表せるのはご存知と思います。s,tはスカラーです。何故ならv1とv2がAの成分から具体的に決まるなら、与えられたuに対してu=s・v1+t・v2が成り立つように、s,tに関する連立一次方程式を解けば良い訳ですから。  それが添付図の右です(図中の赤ベクトル)。これは固有ベクトルv1,v2に平行な座標系(X,Y)でuを表したという事です。  その上で行列Aをベクトルuに作用させます。明らかに、   Au=A(s・v1+t・v2)=A(s・v1)+A(t・v2)=s・Av1+t・Av2 です。そしてAv1=α・v1,Av2=β・v2なのでした。従って、   Au=s・Av1+t・Av2=αs・v1+βt・v2 になります。それを図化すると、添付図の青ベクトルになります。要するにuは、v1方向にα倍,v2方向にβ倍されるだけです。行列のベクトルに対する作用とは、大雑把に言えばこれだけです。  この時行列Aは、(X,Y)系で対角行列diag(α,β)と表現されます(diagの意味は、添付図をご覧ください)。行列の固有ベクトルと固有値なんてものを考えるのは、固有ベクトル方向の座標系で考えると、行列の形が無茶苦茶に簡単になり、その作用が一目瞭然になるからです。これを「固有値問題」と言いますが、本質は「行列の標準形を求める」という問題意識です。  では(X,Y)系で対角行列diag(α,β)と表されたAは、普通の(x,y)系ではどう表現すれば良いのでしょう?。それには座標軸に平行なベクトルの関係を調べれば良いはずです。何故なら同じベクトルuは、(x,y)系でも、   u=x・e1+y・e2 と表せるからです。もちろんe1=(1,0),e2=(0,1)であり、u=(x,y)です。  なので、e1とv1の角度差θ1,e1とv1の長さ比γ1および、e2とv2の角度差θ2,e2とv2の長さ比γ2があれば、(X,Y)系で表現diag(α,β)から出発して、(x,y)系におけるAのあるべき姿を逆算できるはずです。そのためには、θ1,γ1,θ2,γ2と4つのパラメータが必要でした。  少々面倒くさい計算の後、要するに(θ1,γ1,θ2,γ2)という4つのパラメータに対応する、行列Aの成分(a,b,c,d)は決まります。

Mokutsuno
質問者

お礼

回答ありがとうございます。難しいですね、もう少し勉強してから再度取り組みたいと思います。ありがとうございました

noname#223065
noname#223065
回答No.1

 行列の積の演算をよく見てみると、点(x, y)を点(ax+by, cx+dy)に移している、と考えることができます。平面での点を移動させるのが2×2の正方行列だということですね。  1次元で考えてみましょう。直線があり原点0があるとします(数直線みたいなもの)。点xをaxに移すのはa倍しているというaですね。行列で表せば、[a][x]=[ax]となります。1次元では1×1の行列で点を移動させられるわけです(1×1の行列なので全て正方行列になります)。  2次元だと2×2の正方行列で点を移動させられるわけで、1次元の場合のaに相当するのが、画像でお示しの行列になります。  3次元空間でも同じで、3×1の行列で表される点を移せるのが、3×3の正方行列になります。4次元でも5次元でも同様で、正方行列が4×4、5×5と次元の数だけ大きくなるだけのことです。  しかし、正方行列の各要素に特別な意味はありません。点をどう移したいかによって数値が異なるだけのことです。むしろ、各要素に特別な意味がないからこそ、点の移動のさせ方が自由にできるといってもいいかと思います。 P.S.  そのうち、「原点の周りを回転させる行列」(ある点が原点からの距離を同じで位置を変える、つまり円を描く)といったものを習うかもしれません。そのような点の移動の仕方に制限がある場合は、正方行列の各要素に具体性が現れますので、意味を見いだせることも出てくるかと思います。  しかし、お示すのものは「点を動かせますよ」というだけでしかない、言い換えれば自由度が大きいものなので、特に具体的に意味を見いだせないわけです。何でもできる道具については具体的な用途が言えないのと同じようなこと、と申したらいいでしょうか。

Mokutsuno
質問者

お礼

回答ありがとうございます。 何を示すかは自由に変えられる、と云うことですね 詳しく説明してくださりありがとうございます

関連するQ&A

  • 行列の積 内積 の関係について

    行列の積 内積 の関係について 行列の積と内積は同じであると説明があったのですが、 よく分かりません・・・ 例えば、A=(3、-2,1),B=(4,6,7)のベクトルの内積は A・B=(3×4)+(-2×6)+(1×7)=7となるのですが、 行列の積は(1行3列)×(1行3列)で計算できません。 どちらかのベクトルを転置化すれば計算できるのですが・・・ 列ベクトルや行ベクトルは転置しても同じベクトルなのでOKと言う事でしょうか? 内積の演算結果はスカラー(数値)で、行列の積の演算結果は 行列と認識しているのですがこの認識は誤りでしょうか? 列ベクトルや行ベクトルの積の場合はスカラーとなるのでしょうか? A=(3、-2,1),B=(4,6,7)において、ベクトルBを転置化してtBとすれば A×tB=(7)となります。これはスカラーとなりますでしょうか? (追加質問) また、以前ノルムに関して質問させて頂きました。 ご回答頂いた内容で大凡理解できたのですが、追加で一点だけ質問させて下さい。 VのベクトルAに対して、ノルムは ||A||=√(A・A)とされますが、これを||A||=√(A^2)と表記するのはおかしいのでしょうか?

  • 行列の積を関数を使って求める・・?

    2つの行列の行と列を入力し、積を計算するプログラムを関数を使って書きたいのですが、上手く行きません。どこをどのように直したらよいか教えてください!お願いします!! 以下が私が書いたプログラムです。 #include<stdio.h> #define NUMBER 10 int first(int x1,int x2,int y1,int y2,int i,int j,int k) { int a[NUMBER][NUMBER] = {0}; int b[NUMBER][NUMBER] = {0}; int c[NUMBER][NUMBER] = {0}; do{ printf("2つの行列の行と列を入力してください\n"); scanf("%d", &x1); scanf("%d", &x2); scanf("%d", &y1); scanf("%d", &y2); if(x1 != y2){ printf("行列の積は計算できません\n"); } }while(x1 != y2); printf("行列Aの要素を入力してください\n"); for(i=0; i<x1; i++){ for(j=0; j<x2; j++) scanf("%d", &a[i][j]); } printf("行列Bの要素を入力してください\n"); for(j=0; j<y1; j++){ for(k=0; k<y2; k++) scanf("%d", &b[j][k]); } } int second(int x1,int x2,int y1,int y2,int i,int j,int k) { int a[NUMBER][NUMBER] = {0}; int b[NUMBER][NUMBER] = {0}; int c[NUMBER][NUMBER] = {0}; for(i=0; i<x1; i++){ for(k=0; k<y2; k++){ for(j=0; j<x2; j++) c[i][k] = c[i][k] + a[i][j]*b[j][k]; } } for(i=0; i<x2; i++){ for(k=0; k<y2; k++) printf("%3d", c[i][k]); printf("\n"); } } int main(void) { int a[NUMBER][NUMBER] = {0}; int b[NUMBER][NUMBER] = {0}; int c[NUMBER][NUMBER] = {0}; printf("行列の積を計算します\n %d\n", first(x1,x2,y1,y2,i,j,k)); printf("行列Aと行Bの積は\n %3d",second(x1,x2,y1,y2,i,j,k)); }

  • 4次元空間の3つのベクトルが互いに直交する条件

    以前、 4次元空間の4つのベクトルが張る空間が1次元、2次元、3次元、4次元である条件 http://oshiete1.goo.ne.jp/qa3519203.html において、いろいろ教えていただけました。 同様にすれば、4次元空間の3つのベクトルが張る空間が1次元、2次元、3次元である条件、が成分を用いて書けることになります。 ところで、いくつかのベクトルが張る空間が1次元というのは、すべてのベクトルが平行ということです。 今回、それとは逆に「すべてのベクトルが互いに直交する」という条件を考えてみたいと思います。 4次元空間にゼロベクトルでない4つのベクトルを考えます。 a↑=(a[1],a[2],a[3],a[4]) b↑=(b[1],b[2],b[3],b[4]) c↑=(c[1],c[2],c[3],c[4]) d↑=(d[1],d[2],d[3],d[4]) とします。 a↑、b↑、c↑、d↑の4つのベクトルが互いに直交する条件は、 4つのベクトルでできる立体=超立方体 なので、行列式の絶対値は、各辺の積と等しく、 |a↑ b↑ c↑ d↑|^2=|a↑|^2* |b↑|^2* |c↑|^2*| d↑|^2 とかけます。成分でも書けます。 a↑、b↑の2つのベクトルが互いに直交する条件は、 内積を用いて、 a↑・b↑=0 とかけます。成分でも書けます。 最後に、a↑、b↑、c↑の3つのベクトルが互いに直交する条件を、できるだけ簡素に書きたいとき、どういった書き方になるのでしょうか? すべての組の内積が0というのより、なんらかの行列式を用いて書きたいのですが。

  • 行列の要素にベクトルの成分をいれる?

    ベクトルの成分を行列にするというのは習いました。 では、ベクトルを並べて 例えば 2次元のベクトルA,BとベクトルC,Dがあり、それぞれを並べて ( (2,1) , (3.5) ) と ( (2,4), (1.6) ) というようにして、A,Cの内積、B,Dの内積が入った行列を導出するようなことはできますか? (A,B)・(C,D) = (A・C , B・D) 仮にベクトルの成分行列を要素に持つ行列があると仮定して、(C,D)行列を転置すれば行列の 掛け算はできますが、内積を行うようなこうはできるのでしょうか。

  • ベクトル積とスカラー積の関係式の証明について

    ×はベクトル積 ・はスカラー積を表してます。 ベクトル記号は省略します。 (A×B)×C=-(B・C)A+(A・C)B A=(●、△、□)、B= のように成分を考えての証明はできました。 ベクトル(A×B)×CがベクトルA、Bの平面内にあり、ベクトルCと直交する事を使って証明できるみたいなのですが、それはどのように証明すればよいのでしょうか? よろしくお願いします。

  • 4次元空間の4つのベクトルが張る空間が1次元、2次元、3次元、4次元である条件

    4次元空間にゼロベクトルでない4つのベクトルを考えます。 a↑=(a[1],a[2],a[3],a[4]) b↑=(b[1],b[2],b[3],b[4]) c↑=(c[1],c[2],c[3],c[4]) d↑=(d[1],d[2],d[3],d[4]) とします。 これらのベクトルで張られる空間が1次元、2次元、3次元、4次元である条件を求めたいのです。 各ベクトルを並べて行列(a↑ b↑ c↑ d↑)を作り、基本変形で階数を計算するというアルゴリズムではなく、各成分の代数的な関係を求めたいのです。 4つのベクトルで張られる空間が4次元のとき、超体積が0ではないので、行列式 |a↑ b↑ c↑ d↑|≠0 4つのベクトルで張られる空間が1次元のとき、すべて平行なので、 a↑∥b↑∥c↑∥d↑ a[1]:a[2]:a[3]:a[4]=b[1]:b[2]:b[3]:b[4]=c[1]:c[2]:c[3]:c[4]=d[1]:d[2]:d[3]:d[4] (a[1]/a[4],a[2]/a[4],a[3]/a[4])=(b[1]/b[4],b[2]/b[4],b[3]/b[4]) =(c[1]/c[4],c[2]/c[4],c[3]/c[4])=(d[1]/d[4],d[2]/d[4],d[3]/d[4]) このあと、一つの式にする、つまり、イコールを一つだけにしてきたいのですが、複雑そうです。行列式またはシグマ記号を使って、表記できないでしょうか? 4つのベクトルで張られる空間が2次元、3次元のとき、それぞれの各成分にはどういった関係式があるのでしょうか?

  • 正則行列・張られる空間

    A=(1,5,-2,-1),B=(0,2,-4,3),C=(1,1,6,-7),D=(-2,-8,0,5)とおく。(C,D)=(A,B)Pを満たすような正則行列P(基底変換の行列)を求めて、A,Bによって張られるベクトル空間とC,Dによって張られるベクトル空間とが同じであることを示せ! 本の問題にあったのですが、解答が無くて、どのように解けば良いのか見当が付きません。 Pについては逆行列のことですか? よろしくお願います。

  • 行列の和の逆行列について

    情報処理系の数学(カルマンフィルタとか)では(A+B+C)^(-1)とか(A+BCF)^(-1)のように行列の和(あるいは行列と行列の積の和)の逆行列の表式があり、公式のようなものが与えられていたりします。その中で例えば(A+B+C)^(-1)でA,B,Cとは何かと言うと行列(普通は正方行列?)なわけですが、例えば単に1つの値(スカラー)であった場合は逆数というのは自然な拡張としてあり得ると思います。1行1列の行列の対角成分だけの行列と見なすわけです。これはいいだろうと思います。問題はAなどがベクトルだったときです。これは計算できないということでいいでしょうか。ベクトルだったら1行N列の行列(N行1列でも)ということであり、逆行列が定義できないということになるでしょうか。カルマンフィルタなどではベクトルではないかと思うものが式の中に入っているのですが。Rで実験してみるとAの逆行列はsolve(A)だけで求まります。Aがスカラーだったら予想どおり逆数なります。ベクトルだったらエラーです。やはりベクトルだと当然ダメということでしょうか。

  • 行列の問題を教えてください。

    行列の問題で解けなくて困っています. よろしければ教えていただけないでしょうか。 行列に関係する以下の問い(1)~(4)に答えよ。 (1)2行2列の行列をAとする。さらにその固有値をλ1,λ2(λ1≠λ2)とし、それぞれに付随する固有ベクトルを(x1,y1)と(x2,y2)とする。 P≡ |x1 x2| |y1 y2| と置くと、固有値と固有ベクトルの定義から AP=P|λ1 0| |0 λ2| と書ける。ここから、 A=P|λ1 0|P^-1 | 0 λ2| および A^n=P|λ1 0|^nP^-1 |0 λ2| となることを示せ。ここでP^-1はPの逆行列、nは正の整数、A^nは行列Aのn乗を示す。 (2)固有値が1と-1である2行2列の行列Bがある。この行列のn乗B^nを求めよ。さらにその逆行列(B^n)^-1を求めよ。B^nと(B^n)^-1の両方において、nが偶数と奇数で答えが異なるので、両者を区別して答えを示せ。必要なら2つの正則な正方行列B1、B2の積の逆行列が (B1B2)^-1=B2^-1B1^-1 となることを使え。 (3)固有値が1と-1で、それぞれに付随する固有ベクトルが(2,1)と(1,1)である2行2列の行列Cを求めよ。 (4)xとyを未知数とする次の連立方程式 |3 -4|^21 |x| =|10| |2 -3| |y| |7| を解け。ここで |3 -4|^21 |2 -3| は行列 |3 -4| |2 -3| の21乗を表す。 という問題です。 計算過程、解答のほうをどうかよろしくお願いいたします。

  • 高校数学の行列です

    A=(a,b,c,d)(行列で順に左上、右上、左下、右下の順)(a,b,c,d∈R),A≠kE(k∈R),A≠Oとする (1)Aの固有値λと固有ベクトル↑xが存在する条件はλが固有方程式λ^2-(a+d)λ+ad-bc=0(1)の解であることを証明せよ (2)(1)が異なる実数の固有値(λ=)α、βをもつとき、それらに対する固有ベクトル (↑x=)↑x1,↑x2は1次独立であることを証明せよ (3)特にb=cのとき、(2)において↑x1⊥↑x2であることを証明せよ (1)はA↑x=λ↑x,↑x≠↑0(⇔A↑x//↑x(広義平行),↑x≠0) ⇔(A-λE)↑x=↑0,↑x≠↑0 ⇔(a-λ,b,c,d-λ)(x,y)=(0,0),(x,y)≠(0,0) ⇔det(A-λE)=(a-λ)(d-λ)-bc=0 ⇔λ^2-(a+d)λ+ad-bc=0 となっていたのですが ⇔(a-λ,b,c,d-λ)(x,y)=(0,0),(x,y)≠(0,0)ここまでは分かりましたが、 この次の⇔det(A-λE)=(a-λ)(d-λ)-bc=0これは何で言えるんですか? (x,y)は0では無いですが、行列って互いに0でなくても掛けたら0になることはありますよね、それに0になったとしてもdetも0になるんですか? (2),(3)は解説を読むと分かって参考のようにして ケーリーハミルトンの定理 A^2-(α+β)A+αβE=Oが成り立つから↑0でない任意の平面ベクトル↑xに対して A(A↑x-β↑x)=α(A↑x-β↑x) A(A↑x-α↑x)=β(A↑x-α↑x) よって(A↑x-β↑x)//↑x1,A(A↑x-α↑x)//↑x2とあったのですが (A↑x-β↑x)//↑x1,A(A↑x-α↑x)//↑x2が何故成り立つのか分かりません その後すなわち行列(A-βE),(A-αE)によって任意のベクトル↑xはそれぞれα、 βの固有ベクトル↑x1,↑x2にへ行くなベクトルに変換されるとあったのですが、これも何の事か良くわからないのですが、詳しい説明をよろしくお願いします (注)として行列Aが固有値α、β(α≠β)と固有ベクトル↑x1,↑x2をもつ場合、平面上の任意のベクトル↑xを↑x1,↑x2に平行なそれぞれのベクトル↑p,↑qに直和分解して↑x=↑p+↑qとする  このとき、行列P=1/(α-β)×(A-βE),Q=1/(β-α)×(A-αE)はそれぞれ↑xを↑x1,↑x2上へ平行射影する1次変換である  すなわち P↑x=↑p,Q↑x=↑q 特に行列Aが対称行列のときP,Qは正射影の行列になるとあるのですが ↑qに直和分解して↑x=↑p+↑qとする までは分かりますが、この後の説明 がさっぱりわかりません、詳しくお願いします