63
線線線線線線線 線線線線 () 1E11M103 線線 線線

線形計算 の基礎( 密 行列)

  • Upload
    petra

  • View
    103

  • Download
    0

Embed Size (px)

DESCRIPTION

線形計算 の基礎( 密 行列). 1E11M103 本山 義史. 行列演算の基礎について. ・行列の四則演算 ・ピボット選択 ・三角分解( LU 分解). 連立一次方程式について. ・ガウスの消去法 ・部分ピボット選択付きガウスの消去法 ・逆行列の計算 ・ LU 分解を用いる方法. 行列の四則演算について。. (1) n 次元ベクトルの加算. プログラミングに利用できる書式にすると、. (2) n×n 型(正方)行列の加算. プログラミングに利用できる書式にすると、. (3) n 次元ベクトルの減算. プログラミングに利用できる書式にすると、. - PowerPoint PPT Presentation

Citation preview

Page 1: 線形計算 の基礎( 密 行列)

線形計算の基礎(密行列)1E11M103 本山 義史

Page 2: 線形計算 の基礎( 密 行列)

行列演算の基礎について・行列の四則演算・ピボット選択・三角分解( LU 分解)

Page 3: 線形計算 の基礎( 密 行列)

連立一次方程式について・ガウスの消去法・部分ピボット選択付きガウスの消去法・逆行列の計算・ LU 分解を用いる方法

Page 4: 線形計算 の基礎( 密 行列)

行列の四則演算について。(1) n 次元ベクトルの加算

nnn b

b

b

a

a

a

c

c

c

2

1

2

1

2

1

プログラミングに利用できる書式にすると、

𝑐 𝑖=𝑎𝑖+𝑏𝑖となる。

Page 5: 線形計算 の基礎( 密 行列)

(2) n×n 型(正方)行列の加算

nnnn

n

n

nnnn

n

n

nnnn

n

n

bbb

bbb

bbb

aaa

aaa

aaa

ccc

ccc

ccc

21

22221

11211

21

22221

11211

21

22221

11211

プログラミングに利用できる書式にすると、𝑐 𝑖𝑗=𝑎𝑖𝑗+𝑏𝑖𝑗となる。

Page 6: 線形計算 の基礎( 密 行列)

(3) n 次元ベクトルの減算

nnn b

b

b

a

a

a

c

c

c

2

1

2

1

2

1

プログラミングに利用できる書式にすると、𝑐 𝑖=𝑎𝑖−𝑏𝑖となる。

Page 7: 線形計算 の基礎( 密 行列)

(4) n×n 型(正方)行列の減算

nnnn

n

n

nnnn

n

n

nnnn

n

n

bbb

bbb

bbb

aaa

aaa

aaa

ccc

ccc

ccc

21

22221

11211

21

22221

11211

21

22221

11211

プログラミングに利用できる書式にすると、𝑐 𝑖𝑗=𝑎𝑖𝑗−𝑏𝑖𝑗となる。

Page 8: 線形計算 の基礎( 密 行列)

(5) n 次元ベクトルの乗算

n

n

b

b

b

aaac

2

1

21

プログラミングに利用できる書式にすると、

𝑐=∑𝑖=1

𝑛

𝑎𝑖𝑏𝑖となる。

Page 9: 線形計算 の基礎( 密 行列)

また、

n

nnnnn

n

n

bbb

a

a

a

ccc

ccc

ccc

212

1

21

22221

11211

プログラミングに利用できる書式にすると、

𝑐 𝑖𝑗=𝑎𝑖𝑏 𝑗となる。

Page 10: 線形計算 の基礎( 密 行列)

(6) n×n 型行列の乗算

nnnnn

n

n

n b

b

b

aaa

aaa

aaa

c

c

c

2

1

21

22221

11211

2

1

プログラミングに利用できる書式にすると、

𝑐 𝑖=∑𝑗=1

𝑛

𝑎𝑖𝑗𝑏 𝑗となる。

Page 11: 線形計算 の基礎( 密 行列)

nnnn

n

n

nnnn

n

n

nnnn

n

n

bbb

bbb

bbb

aaa

aaa

aaa

ccc

ccc

ccc

21

22221

11211

21

22221

11211

21

22221

11211

プログラミングに利用できる書式にすると、

𝑐 𝑖=∑𝑘=1

𝑛

𝑎𝑖𝑘𝑏𝑘𝑗となる。

また、

Page 12: 線形計算 の基礎( 密 行列)

ピボット選択について

 連立一次方程式や逆行列の計算の際に、係数行列の第 k 列の第 k 行目以降の要素の中で絶対値が最も大きいものを探し、それが第 l 行にあれば第 k 行と第 l 行全体を入れ替えるという操作のこと。

nnnnn

n

n

b

b

b

x

aaa

aaa

aaa

2

1

21

22221

11211

 左辺の係数行列 についてピボット選択を行う際に、右辺の同じ行についても入れ替えを行えば、の未知数の順番は変化しない。→ このような式の両辺に対してピボット選択を行うことは、行列を展開した時の式の順序を入れ替えることに相当しており、結果には影響を与えない。

Page 13: 線形計算 の基礎( 密 行列)

 ピボット選択を行列表現で行うときには、次に示す置換行列を用いる。正方行列の第行と第行(あるいは第列と第列)を入れ替える時、置換行列は単位正方行列の第行と第行を入れ替えたものになっている。 また、置換行列はという性質がある。

1000

0010

0100

0001

P

 正方行列の行を入れ替えるときは置換行列を左からかけ、列を入れ替えたい時には置換行列を右からかける。

← 第行

← 第行

Page 14: 線形計算 の基礎( 密 行列)

(例題)

 次の行列の第1行と第2行を入れ替える置換行列を示せ。また、置換行列を左からかけることによって、行列の第1行と第2行が入れ替わることを示せ。

101312

172118

456

A

Page 15: 線形計算 の基礎( 密 行列)

(解答)

置換行列は次のようになる。

100

001

010

P

この置換行列を行列の左からかけると次のような結果になる。

101312

456

172118

101312

172118

456

100

001

010

Page 16: 線形計算 の基礎( 密 行列)

三角分解( LU 分解)について

 行列が与えられたとき、その行列を下三角行列と上三角行列の積の形に分解することを三角分解( LU 分解)という。LU 分解にはいくつかの方法が考えられているが、一般的によく知られているクラウト法について説明する。 今、行列を下三角行列と上三角行列に分解することを考える。

nn

n

n

nnnnnnnn

n

n

u

uu

uuu

lll

ll

l

aaa

aaa

aaa

00

00

00

222

11211

21

2221

11

21

22221

11211

Page 17: 線形計算 の基礎( 密 行列)

 下三角行列の対角成分を1にする方法と上三角行列の対角成分を1にする方法の2種類あるが、ここでは下三角行列の対角成分をとする。

Page 18: 線形計算 の基礎( 密 行列)

 行列の要素の値については、まずの値に注目して次のように下三角行列、上三角行列のを計算する。

Page 19: 線形計算 の基礎( 密 行列)

 下三角行列および上三角行列のそれぞれ以下の式を用いて計算を行う。

 クラウド法はわかりやすい方法ではあるが、ピボット選択を行うことができない。 LU 分解は連立一次方程式の解法に利用されることが多いので、ピボット演算を適用した方が望ましい。 ピボット選択を含んだ LU 分解法としては、部分ピボット付きガウスの消去法に基づいた方法が知られている。

Page 20: 線形計算 の基礎( 密 行列)

(例題)

次の行列クラウト法を用いて LU 分解せよ。

172118

101312

456

A

Page 21: 線形計算 の基礎( 密 行列)

(解答)

行列

333323321331223212311131

23221321222212211121

131112111111

33

2322

131211

333231

2221

11

00

00

00

172118

101312

456

ulululululul

ululululul

ululul

u

uu

uuu

lll

ll

l

Page 22: 線形計算 の基礎( 密 行列)

両辺の各要素を対応させると次のような等式が得られる。

 

下三角行列の対角成分の値を1と考えると、 

この値をもとにして、他の要素の値を計算する。      

Page 23: 線形計算 の基礎( 密 行列)

100

230

456

123

012

001

172118

101312

456

三角分解した結果は次のようになる。

Page 24: 線形計算 の基礎( 密 行列)

ガウスの消去法について。

 直接法の中でよく知られている連立一次方程式の解法として、ガウスの消去法がある。この方法は前進消去(前進差分)といわれる処理と後進代入といわれる処理に別けて行われる。 いま、次の連立一次方程式について考える。

nnnnnn

nn

nn

bxaxaxa

bxaxaxa

bxaxaxa

2211

22222121

11212111

Page 25: 線形計算 の基礎( 密 行列)

nnnn

nn

nn

bxa

bxaxa

bxaxaxa

''

'''

''''

22222

11212111

この式を

 上記のような形式の連立一次方程式に変換する処理のことを前進消去と呼ぶ。また、前進消去によって得られた式を下から順について解く処理を後退代入という。

Page 26: 線形計算 の基礎( 密 行列)

説明のため、前のページの式を次のように行列表現する。

nnnnnn

n

n

b

b

b

x

x

x

aaa

aaa

aaa

2

1

2

1

21

22221

11211

Page 27: 線形計算 の基礎( 密 行列)

( Step 1)

 まず、左辺の係数行列の第に注目する。第以下の式を用いる。

),,1(

),,1(

),,1(

njibbb

nkjaaa

nkia

a

kii

kjijij

kk

ik

 上記の計算をなり、次のような式に変換されている。

Page 28: 線形計算 の基礎( 密 行列)

nnnn

n

n

b

b

b

x

x

x

a

aa

aaa

'

'

'

'00

''0

'''

2

1

2

1

222

11211

 前進消去が終わった段階で得られた式について、対角成分は必ずしも1であるとは限らない!!

Page 29: 線形計算 の基礎( 密 行列)

( Step 2)

 前進消去によって得られた式(前ページ)をもとにして、式を下から順に以下のように後退代入を行うことにより、解

)1,,1('

''

'

'

1

nka

xab

x

a

bx

kk

n

kjjkjk

k

nn

nn

Page 30: 線形計算 の基礎( 密 行列)

(例題)

 ガウスの消去法の基本アルゴリズムを用いて、次の連立方程式の解を求めよ。

27172118

16101312

8456

321

321

321

xxx

xxx

xxx

Page 31: 線形計算 の基礎( 密 行列)

(解答)

27

16

8

172118

101312

456

3

0

8

560

230

456

Page 32: 線形計算 の基礎( 密 行列)

最後に3行目2行目2→3行目を行うと、

3

0

8

100

230

456

前進消去によって得られた式をもとに、後退代入を行う。   このようにして解

Page 33: 線形計算 の基礎( 密 行列)

部分ピボット選択付きガウスの消去法について。

ピボット選択をガウスの消去法に適用する方法がある。

( Step 1)

 前進消去の際にピボット選択を行う。大きな要素を探す。もし絶対値の最大値が方程式の両辺について

( Step 2)

計算を行う。

Page 34: 線形計算 の基礎( 密 行列)

)

  Step1と Step2の計算が終了すると、左辺の係数行列は上三角行列になっている。

( Step 3)

 以下、後退代入処理となる。この部分についても基本アルゴリズムと同じである。前進消去によって得られた式を下から順に、以下の式を用いて処理を行うことにより、解

)1,,1('

''

'

'

1

nka

xab

x

a

bx

kk

n

kjjkjk

k

nn

nn

Page 35: 線形計算 の基礎( 密 行列)

(例題)

部分ピボット選択付きガウスの消去法を用いて次の連立方程式を解け。

27172118

16101312

8456

321

321

321

xxx

xxx

xxx

Page 36: 線形計算 の基礎( 密 行列)

(解答)

3

2

1

172118

101312

456

x

x

x

 ピボット選択により、1行目と3行目の入れ替えを行う。1行目と3行目の入れ替えを行うための置換行列

001

010

100

1P

Page 37: 線形計算 の基礎( 密 行列)

27

16

8

172118

101312

456

1

3

2

1

1 P

x

x

x

P

𝑃1を左から両辺にかけると、

 入れ替えたあとで、2行目2行目、3行目3行目とする。この変換行列を

1018

6

0118

12001

1G

Page 38: 線形計算 の基礎( 密 行列)

これを用いて次のように表現できる。

27

16

8

172118

101312

456

11

3

2

1

11 PG

x

x

x

PG

ここまでを計算した結果は次のようになる。

[18 21 17

0 −1 −43

0 −2 −53] [𝑥1𝑥2𝑥3 ]=[ 27−2−1]

Page 39: 線形計算 の基礎( 密 行列)

 次にピボット選択により、2行目と3行目の入れ替えを行う。2行目と3行目の入れ替えを行うための置換行列

010

100

001

2P

 置換行列を用いて入れ替えを表現すると次のようになる。

𝑃2[18 21 17

0 −1 −43

0 −2 −53

][𝑥1𝑥2𝑥3]=𝑃2[ 27−2−1]

Page 40: 線形計算 の基礎( 密 行列)

 入れ替えたあとで、3行目2行目3行目を行う。この変換行列を

𝐺2=[1 0 00 1 0

0 −121 ]

これを用いて次のように表現することができる。

𝐺2𝑃2[18 21 17

0 −1 −43

0 −2 −12

][𝑥1𝑥2𝑥3]=[ 27−1− 32]

Page 41: 線形計算 の基礎( 密 行列)

前進消去によって得られた式をもとに、後退代入を行う。

このようにして、

Page 42: 線形計算 の基礎( 密 行列)

逆行列の計算について

 ガウスの消去法の前進消去を応用して、前進消去終了後の左辺の係数行列が単位行列になるように変換することもできる。 この場合には、後退代入を行うことなしに連立方程式の解を求めることができる。この手法を掃き出し法(ガウス・ジョルダンの消去法)という。 掃き出し法を用いて、逆行列を求めることができる。

100

010

001

21

22221

11211

X

aaa

aaa

aaa

nnnn

n

n

 この行列行列

Page 43: 線形計算 の基礎( 密 行列)

 基本演算とピボット演算だけを利用して次のような式に変換したとき、右辺に作られた行列

nnnn

n

n

bbb

bbb

bbb

X

21

22221

11211

100

010

001

nnnn

n

n

bbb

bbb

bbb

A

21

22221

11211

1

Page 44: 線形計算 の基礎( 密 行列)

 ここで、左辺の係数行列を単位行列に変換する際には各列に対して次式を用いる。今、第する。

次式において、左辺と右辺は中央の分離線によって分けられている。

100

010

001

21

22221

11211

nnnn

n

n

aaa

aaa

aaa

Page 45: 線形計算 の基礎( 密 行列)

最終的な目標として、次のように単位行列が左半分に移ることである。

nnnn

n

n

bbb

bbb

bbb

21

22221

11211

100

010

001

Page 46: 線形計算 の基礎( 密 行列)

(例題)

次の行列の逆行列を求めよ。

531

842

642

A

Page 47: 線形計算 の基礎( 密 行列)

(解答)

100

010

001

531

842

642

102

1011

002

1

210

200

321

 1行目1行目としたあとで、2行目1行目22行目、3行目1行目3行目という演算を行う。

Page 48: 線形計算 の基礎( 密 行列)

2行目と3行目を入れ替える。

011

102

1

002

1

200

210

321

011

102

1

202

3

200

210

101

1行目2行目21行目

Page 49: 線形計算 の基礎( 密 行列)

 3行目3行目としたあとで、1行目+3行目→1行目、2行目3行目2→2行目という演算を行う。

02

1

2

1

112

1

22

11

100

010

001

 逆行列は次のようになる。

02

1

2

1

112

1

22

11

531

842

6421

Page 50: 線形計算 の基礎( 密 行列)

LU 分解を用いる方法について

 置換行列と変換行列を用いると、ガウスの消去法の前進消去の過程は次のように表すことができる。

𝐺𝑛−1𝑃𝑛−1⋯𝐺1𝑃1𝐴𝑥=𝐺𝑛−1𝑃𝑛−1⋯𝐺1𝑃1𝑏

式で表現すると、の左から挿入して漸化を 11 )(

iii PIPP

となる。

ただし、

1iP

Page 51: 線形計算 の基礎( 密 行列)

 左辺の係数行列ようになる。

𝑈𝑥=𝐺𝑛− 1𝐻𝑛− 2𝑃𝑏

これより、次式を得る。

 

上式のもとの連立方程式

 

Page 52: 線形計算 の基礎( 密 行列)

 ここまでで LU 分解は終了し、次に LU 分解の結果を利用して連立一次方程式を解くことを考える。 前ページの最後の式は次のように変形できる。

  

 ここで

  

 下三角行列の要素をこの連立方程式の解

    

Page 53: 線形計算 の基礎( 密 行列)

 次に連立一次方程式

  

を解くことによって、与えられた連立一次方程式の解を得ることができる。この場合の後退代入は次のようになる。

    

Page 54: 線形計算 の基礎( 密 行列)

(例題)

 次の連立方程式を行列表現し、部分ピボット選択付きガウスの消去法に基づき LU 分解せよ。また、 LU 分解した結果をもとに連立一次方程式の解を求めよ。

27172118

16101312

8456

321

321

321

xxx

xxx

xxx

Page 55: 線形計算 の基礎( 密 行列)

(解答)

27

16

8

172118

101312

456

3

2

1

x

x

x

 上式は次のように表すことができる。

  

 ピボット選択によって1行目と3行目の入れ替えを行う。1行目と3行目の入れ替えを行うための置換行列は次のようになる。

001

010

100

1P

Page 56: 線形計算 の基礎( 密 行列)

 行を入れ替えたあとで、2行目1行目2行目、3行目1行目3行目とする。この変換行列

1018

6

0118

12001

1G

 ここまでの演算は

  

 また、上式の

Page 57: 線形計算 の基礎( 密 行列)

27

16

8

3

520

3

410

172118

11

3

2

1

PG

x

x

x

 次にピボット選択により、2行目と3行目の入れ替えを行う。2行目と3行目の入れ替えを行うための置換行列、

010

100

001

2P

Page 58: 線形計算 の基礎( 密 行列)

 行を入れ替えたあとで、3行目2行目3行目を行う。この変換行列を

12

10

010

001

2G

 これを用いて、

27

16

8

2

120

3

510

172118

1122

3

2

1

22 PGPG

x

x

x

PG

と表すことができる。

Page 59: 線形計算 の基礎( 密 行列)

 

12

1

3

2

013

1001

)( 112122 PGPGL

 上式左辺の係数行列

PLPPPGPGPGPG 112

1121221122 )(

より、下三角行列を求める。

Page 60: 線形計算 の基礎( 密 行列)

12

1

3

2

013

1001

)( 112122 PGPGL

置換行列の積

010

001

100

12PPP

Page 61: 線形計算 の基礎( 密 行列)

 まず、用いて、次のように計算できる。

2

3)1(

2

127

3

216

1273

18

27

3

2

1

y

y

y

 最後に

118

317)2(2127

22

335

1

3

2123

3

2

3

x

x

x

Page 62: 線形計算 の基礎( 密 行列)

 このようにして解

 連立一次方程式を一回解くだけなら、ガウスの消去法を利用した方がよい場合が多いが、解くべき問題によっては同じ係数行列で定数項の値だけを変えて連立一次方程式を繰り返して計算しなければならない場合がある。 その時は、 LU 分解法を用いるのが一般的になっている。

Page 63: 線形計算 の基礎( 密 行列)

クラウト法による解法について。

 次の連立一次方程式を考える。

  

 係数行列連立一次方程式は次のようになる。

  

  LU 分解した結果は、(基本)ガウスの消去法に基づく LU 分解の場合と全く同じ式になる。クラウト法の場合も「ピボット選択付きガウスの消去法に基づく LU 分解」アルゴリズムの置換行列前進代入および後退代入を行えばよい。