• 検索結果がありません。

第3回 行列の計算 •

N/A
N/A
Protected

Academic year: 2021

シェア "第3回 行列の計算 •"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)

第3回 行列の計算

線形代数のパッケージ

線形代数に関係する作業を実行しやすくするパッケージがあります。

with

コマンド を用いて、

with(linalg):

と入力してください。

行列の定義

各行ベクトルを指定する方法、行列のサイズを指定し 、順に成分を 指定する、または、関数、手続きで指定する方法があります。

a:=matrix([ [1,2,3], [4,5,6],[7,8,9],[10,11,12] ]);

b:=matrix( 4, 2, [2,0,3,-1,6,9,7,1]);

c:=matrix(5,6, (i,j)->i-j^2);

id7:=matrix(7,7, proc(i,j) if i=j then 1 else 0 fi end);

行列の計算

式 命令 和

a + b a+b

a b a-b

スカラー倍

ka k*a

1

k a a/k

ab a &* b

ベキ

a

n

a^n

逆行列

a

−1

a^{-1}

1/a inverse(a)

evalm

コマンド

行列はリスト

(順番に並んだデータ列)

のリストと考えられます。

evalm

コマンド によって、このリストを行列の形で表示してくれ

ます。

augment

コマンド

c := augment(a, b);

によって以下のように2つの行列をくっ

(2)

つけます。

a = Ã

1 2 3 0 −1 1

!

, b = Ã

4 5

−2 2

!

, c = Ã

1 2 3 4 5

0 −1 1 −2 2

!

行列式

正方行列

a

に対して、その行列式は

det(a);

で計算できる。

a:=matrix([ [3,9,1], [2,0,-1], [8,1,1] ]);

det(a);

det(x-a);

練習

(1)

次のような行列

a

を定義せよ.

 

 

 

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

 

 

 

(2) a

2

, a

3 を求めよ.

(3) a

の固有値を求めよ.

例題次の連立方程式を考える.

 

 

 

3x

1

+ x

2

x

3

= 1 2x

1

5x

2

+ x

3

= 0

−x

1

+ 4x

2

+ 2x

3

= −2

行列の形で書くと

 

3 1 −1 2 −5 1

−1 4 2

 

  x

1

x

2

x

3

  =

  1 0

−2

 

(3)

この係数行列が逆を持つかど うかは、行列式が

0

にならないかど うかで 判定できる. 今の場合は行列式が

0

にならないので

  x

1

x

2

x

3

  =

 

3 1 −1 2 −5 1

−1 4 2

 

−1

  1 0

−2

 

を計算することによって解が求められる.

a:= matrix([ [3,1,-1], [2,-5,1], [-1,4,2] ]);

det(a);

b:=matrix(3,1,[1,0,-2]);

evalm(1/a &* b);

逆を持たない場合にも適用可能な方法として、行の基本変形を行う方法 を考える. 次のような行列を作り

 

3 1 −1 1

2 −5 1 0

−1 4 2 −2

 

第1行を

1/3

倍し

,

さらに第1行の

−2

倍を第2行に加え,第1行の

1

倍 を第3行に加え、という作業を繰り返し

 

1 1/3 −1/3 1/3 0 1 −5/17 2/17 0 0 1 −37/50

 

という形が得られる. これより

x

3

= −37/50, x

2

= 2/17 (−5/17)x

3

, x

1

= 1/3 (1/3)x

2

(−1/3)x

3 と求められる.

a:= matrix([ [3,1,-1], [2,-5,1], [-1,4,2] ]);

b:=matrix(3,1,[1,0,-2]);

c:=augment(a,b);

mulrow(c, 1, 1/3);

addrow(%, 1, 2, -2);

addrow(%, 1, 3, 1);

(4)

mulrow(%, 2, -3/17);

addrow(%, 2, 3, -13/3);

d := mulrow(%, 3, 17/50);

x[3]:=d[3,4];

x[2]:=d[2,4]-d[2,3]*x[3];

x[1]:=d[1,4]-d[1,2]*x[2]-d[1,3]*x[3];

sum(a[1,j]*x[j], j=1..3);

sum(a[2,j]*x[j], j=1..3);

sum(a[3,j]*x[j], j=1..3);

行列の基本変形

行列

a

i

行の

k

倍,

i

行と

j

行の交換,

i

行の

k

倍を

j

行に加え る命令は,

mulrow(a, i, k) , swaprow(a, i, j) ,

addrow(a, i, j, k)

を用いる.

練習次の連立方程式を解け。

 

 

 

 

 

 

x

1

+ 2x

2

x

3

+ 3x

4

= −2 2x

1

+ x

2

+ x

3

+ 3x

4

= 1

−x

1

2x

2

+ 3x

3

4x

4

= 1 3x

1

+ 6x

2

+ 6x

4

= −1

,

 

 

 

 

 

 

2x

1

4x

2

+ x

3

x

4

= 1

x

1

+ 2x

2

x

3

+ x

4

= 2

2x

1

+ x

2

+ x

3

+ 2x

4

= −2

x

1

+ 3x

2

+ 2x

3

3x

4

= 0

参照

関連したドキュメント

In: Schaufeli WB, Maslach C, Marek T(Eds), Professional burnout: Recent developmentsintheoryandresearch,Taylor&Francis, Washington,DC,pp1-16,1993. 9) Maslach C, Jackson SE:

学校に行けない子どもたちの学習をどう保障す

日頃から製造室内で行っていることを一般衛生管理計画 ①~⑩と重点 管理計画

[r]

者は買受人の所有権取得を争えるのではなかろうか︒執行停止の手続をとらなければ︑競売手続が進行して完結し︑

自分ではおかしいと思って も、「自分の体は汚れてい るのではないか」「ひどい ことを周りの人にしたので

これも、行政にしかできないようなことではあるかと思うのですが、公共インフラに