人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

matlabで

基本行列
http://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E3%81%AE%E5%9F%BA%E6%9C%AC%E5%A4%89%E5%BD%A2

を簡単に作る方法を教えてください

●質問者: DOISHIGERU
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:MATLAB 行列
○ 状態 :キャンセル
└ 回答数 : 1/1件

▽最新の回答へ

1 ● jan8

Elementary Matrices

Wikipediaにある通り、単位行列を生成して、

* Pi, j は、単位行列の i 行目と j 行目を取り換えた行列

* Qi, c は、単位行列の (i, i) 成分を c にした行列

* Ri, j, c は、単位行列の (i, j) 成分を c にした行列

を生成すれば良いのではないでしょうか?

単位行列の生成はご存知の通りeye(n)です。

---------------------------------------------------------------

基本行列Pの生成例と掛算結果の確認

* Pi, j は、単位行列の i 行目と j 行目を取り換えた行列

(単位行列の2行目と5行目を入れ替えて基本行列P(2,5)を作る例)

---------------------------------------------------------------

>> test = [1 2 3 4 5;2 3 4 5 6;3 4 5 6 7;4 5 6 7 8;5 6 7 8 9]

test =

1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

4 5 6 7 8

5 6 7 8 9

>> p=eye(5)

p =

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

>> p([2,5],:) = p([5,2],:)

p =

1 0 0 0 0

0 0 0 0 1

0 0 1 0 0

0 0 0 1 0

0 1 0 0 0

>> test*p

ans =

1 5 3 4 2

2 6 4 5 3

3 7 5 6 4

4 8 6 7 5

5 9 7 8 6

>> p*test

ans =

1 2 3 4 5

5 6 7 8 9

3 4 5 6 7

4 5 6 7 8

2 3 4 5 6

---------------------------------------------------------------

基本行列Qの生成例と掛算結果の確認

* Qi, c は、単位行列の (i, i) 成分を c にした行列

(単位行列の2行2列目を2に変えて基本行列Q(2,2)を作る)

---------------------------------------------------------------

>> test=ones(5)

test =

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

>> q=eye(5)

q =

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

>> q(2,2)=2

q =

1 0 0 0 0

0 2 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

>> test*q

ans =

1 2 1 1 1

1 2 1 1 1

1 2 1 1 1

1 2 1 1 1

1 2 1 1 1

>> q*test

ans =

1 1 1 1 1

2 2 2 2 2

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

---------------------------------------------------------------

基本行列Rの生成例と掛算結果の確認

* Ri, j, c は、単位行列の (i, j) 成分を c にした行列

(単位行列の2行4列目を2に変えて基本行列R(2,4,2)を作る)

---------------------------------------------------------------

>> test=ones(5)

test =

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

>> r=eye(5)

r =

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

>> r(2,4)=2

r =

1 0 0 0 0

0 1 0 2 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

>> test*r

ans =

1 1 1 3 1

1 1 1 3 1

1 1 1 3 1

1 1 1 3 1

1 1 1 3 1

>> r*test

ans =

1 1 1 1 1

3 3 3 3 3

1 1 1 1 1

1 1 1 1 1

1 1 1 1 1

---------------------------------------------------------------

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ