数値解析 - 九州大学(kyushu...

27
数値解析 122015年7月8日(水) 理学部物理学科情報理学コース 1

Upload: others

Post on 19-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

数値解析 第12回

2015年7月8日(水)

理学部物理学科情報理学コース

1

Page 2: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

1.非線形方程式の数値解法

1.1 はじめに

1.2 2分法  

1.3 補間法

1.4 ニュートン法 

1.4.1 多変数問題への応用

1.4.2 ニュートン法の収束性

2.連立1次方程式の解法

2.1 序論と行列計算の基礎 

2.2 ガウスの消去法 

2.3 3重対角行列の場合の解法

2.4 LU分解法 

2.5 特異値分解法

2.6 共役勾配法

2.7 反復法 2.7.1 ヤコビ法 2.7.2 ガウス・ザイデル法

2.7.3 SOR法

講義内容

2

Page 3: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

3. 固有値と固有ベクトルの数値計算

3.1 固有値問題の序論

3.2 ヤコビの方法(対角行列への帰着)

3.3 ギブンスの方法(3重対角行列への帰着)

3.4 ハウスホルダー法(3重対角行列への帰着)

3.5 DKA法(3重対角行列の固有値の計算) 3.6 バイセクション法(3重対角行列の固有値の計算)

 

4. その他の数値計算法

3

Page 4: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

•  出席点5割+期末試験5割

•  講義資料は毎回配布予定です. 欠席した場合,各自でダウンロードしてください.   http://yebisu.cc.kyushu-u.ac.jp/~watanabe   (PDF版をその週の木曜朝までには公開予定)

•  講義開始後約30分で出欠を取ります.

•  研究室: 092-642-2295 •  E-mail: watanabe@cc.(九州大学のドメイン)

Subject に,必ず「数値解析」と記入してください.

成績評価,その他の連絡事項

4

Page 5: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

5

•  7月8日(水) 講義

•  7月15日(水) 休講

•  7月22日(水) 講義

•  7月29日(水) 講義  

•  8月5日(水) 3限目(13:00〜14:30) 定期試験

•  8月末日成績締切

今後の予定

Page 6: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

相似変換の繰り返し

A1 ≡ A

A2 = P1−1A1P1

A3 = P2−1A2P2

!

#

$

%%

&

%%

*

* 0*!

0 **

!

"

########

$

%

&&&&&&&&

対角行列 3重対角行列

* *

* * * 0* * !! ! !

0 ! * ** *

!

"

########

$

%

&&&&&&&&

対角要素→固有値

対角形に収束するまで繰り返す

固有値は3重対角行列に適した別の反復法により求める

一旦,3重対角形に変換する

3.2 ヤコビ法

3.3 ギブンス法

3.4 ハウスホルダー法

3.5 DKA法 3.6 バイセクション法

固有値問題の数値解法

6

Page 7: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

3.4 Householder法   

3重対角行列

* *

* * * 0* * !! ! !

0 ! * ** *

!

"

########

$

%

&&&&&&&&

変換 :A n n× 対称行列

Givens法にならぶ3重対角化の代表的な方法で,演算回数が 行列の次数(n)と明確に関係付けられる.

3重対角化のプロセスは固有値問題以外にも有効に使われ, 「Householder変換」とも呼ばれる.

Alston S. Householder, Unitary triangularization of a nonsymmetric matrix, Journal of the ACM (JACM) , Volume 5, Issue 4 (Oct. 1958) Pages: 339-342

《論文》

7

Page 8: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

2 tP I= − u u

2 22

11

nt

iiu

=

= = =∑u uu

変換行列に次の形を仮定する

u = t(u1,u2 ,!,un ) : 次元ベクトル n

: 正規化

B =

* * 0 ! 0* * * ! *0 * * ! *! ! ! " !0 * * ! *

!

"

######

$

%

&&&&&&

1B P AP−= を考える 相似変換

最初のステップ

行または列を一括で0になるようにする

《参考》Givens法は要素毎

8

Page 9: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

1B P AP−=

1P P−= および A は対称だから

も対称

1 1 1 1( ) ( )t t t tB P AP PA P PAP P AP B− − − −= = = = =

よって

P= tP = P−1

P

( 2 ) 2 ( ) 2t t t t t t tP I I I P= − = − = − =u u u u u u

( 2 )( 2 )2 2 42 2 4 ( )2 2 4

t t t

t t t t

t t t t

t t t

PP PP I IIII I

= = − −

= − − +

= − − +

= − − + =

u u u uu u u u u uu uu u u u u uu uu u u u u u

は対称な直交行列 《証明》

à ▪

9

Page 10: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

u

u =

0*!*

!

"

####

$

%

&&&&

P = P−1 =

1 0 ! 00 * ! *! ! " !0 * ! *

"

#

$$$$

%

&

''''

として

の形のものを選ぶことができたと仮定すると,

第1成分が0

の形は, このとき P 2 tP I= − u u

10

Page 11: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

ここで,任意の行列

GP =

g11 g12 … g1ng21 g22 … g2n! ! " !gn1 gn2 ! gnn

!

"

#####

$

%

&&&&&

1 0 ! 00 * ! *! ! " !0 * ! *

!

"

####

$

%

&&&&

=

g11 * … *

g21 * … *

! ! " !gn1 * ! *

!

"

#####

$

%

&&&&&

G に対して

の1列目は G の1列目と同じとなることがわかる. GP1B P AP−= では 相似変換

の1列目は の1列目と同じであるから, 1P A−1( )B P A P−=

1 ( 2 )tP P I− = = − =a a u u a b

::AB

abの第1列目のベクトル

の第1列目のベクトルとすると

11

Page 12: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

b =

**0!0

!

"

######

$

%

&&&&&&

=

b11b210!0

!

"

#######

$

%

&&&&&&&

となるための B =

* * 0 ! 0* * * ! *0 * * ! *! ! ! " !0 * * ! *

!

"

######

$

%

&&&&&&

bの形は

a = t a11,a21,!,an1( ) と上の形の

( 2 )tI − =u u a b

となる

に対して b

uがあればよい.

u =

0*!*

!

"

####

$

%

&&&&

かつ

したがって,

12

Page 13: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

2 2=x y

( 2 )tI − =u u x y

21=u

2

−=

x yux y

次元ベクトル n任意の 次元ベクトル に対し,ベクトル ,x yであるような

2x(注)行列式と区別するためベクトルノルムを と表記.

をみたす.

13

ベクトル u の取り方

Page 14: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

(I − 2utu)x = (I − 2(x − y)t(x − y)

t (x − y)(x − y))x

= x − 2(x − y)(txx − tyx)

txx −tyx −txy+tyy

= x − 2(txx −tyx)

2(txx −tyx)x − y( )

= y

の証明

1

nt t

i iix y

=

= =∑xy yx

2 2

2 2t t= = =xx x y yyと

を用いると

( 2 )tI − =u u x y

14

Page 15: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

2 22 2 21 11 212 2

1

n

jja b b

=

= = + =∑a b

2

−=

a bua b

において

b212 = a j1

2

j=2

n

とすれば

u =

0*!*

!

"

####

$

%

&&&&

( 2 )tI − =u u a bかつ

b = t b11,b21,0,!,0( )

が満たされるので

となる.

b11 = a11 とすれば

15

Page 16: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

2 2 221 1

2,

n

jj

s b a=

= =∑

2 2 2 2 2 221 21 1 212 2

32 2 2

n

jj

a a s s a a s s=

= − = + + + = +∑w a b

w ≡ a−b =

a11a21a31!an1

#

$

%%%%%%%

&

'

(((((((

b11b210!0

#

$

%%%%%%%

&

'

(((((((

=

0a21 + sa31!an1

#

$

%%%%%%%

&

'

(((((((

11 21,b b を前ページのように選ぶと,

と同符合になるようにとる sの符号は 21a(桁落ちを避けるため)

( 2 )tP I= − u u具体的な の形は,以下のようになる.

まず

2

, −=

a bua b

16

Page 17: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

221

1s a s

α =+

1B P AP−= は次のようにして効率的に計算できる

2 t tP I I α= − = −u u w w

( ) ( )

( )

1

2

t t

t t t t

t t

B P AP

I A I

A A A A

A

α α

α α α

−=

= − −

= − − +

= − +

w w w w

w w w w w w w w

w q q w

Aα=p w2

tα= −q p w pw

Pwを用いると は次のように表せる

ここで,p, q はそれぞれ

17

Page 18: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

1B P AP−=

は対称だから次の形になる

B =

* * 0 ! 0* * * ! *0 * * ! *! ! ! " !0 * * ! *

!

"

######

$

%

&&&&&&

以上から

B

の1列目は b =

**0!0

!

"

######

$

%

&&&&&&

の形になり

18

Page 19: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

A2 =

a11(2) a12

(2) 0 0 ! 0

a21(2) a22

(2) a23(2) a24

(2) ! a2n(2)

0 a32(2) a33

(2) a34(2) ! a3n

(2)

0 a42(2) a43

(2) ! "

" " " ! "0 an2

(2) an3(2) ! ! a11

(2)

!

"

#########

$

%

&&&&&&&&&

2A B≡ と書くことにしてさらに変換することを考える

(2)ijaの要素を 2A とすると

13 2 2 2A P A P−=

この部分はそのままにして

ここを0にしたい

19

次のステップ

Page 20: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

P2 = P2−1 =

1 0 0 ! 00 1 0 ! 00 0 * ! *! ! ! " !0 0 * ! *

"

#

$$$$$$

%

&

''''''

の形は

の形は 2u

u2 =

00*!*

!

"

######

$

%

&&&&&&

したがって

第1, 第2成分が0

2 2 22 tP I= − u uそのための変換行列

20

Page 21: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

とすると 2 3,A A の第2列目のベクトルを (2) (3)2 2,a a

a2

(3) = t a12(3) ,a22

(3) ,a32(3) ,0,!,0( )

の形になるようにしたい

u2 =t 0,0,*,!,*( )

そのためには

( )2(3) (2) (3) (2) (3) (2)12 12 22 22 32 2 2 2

3, , ,

n

jj

a a a a a s s a=

= = = − = ± ∑とすればよい

(2) (3)(2) (3) 2 22 2 2 (2) (3)2 2

2 2 2

−= =

a aa a ua a

かつ

において

( )(2)32a と同符合になるようにする

21

Page 22: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

( )22 (2)2 2

3

n

jj

s a=

=∑

22 (2) (3) 2 (2)2 2 3 2 32 22 2

2 2s a s= − = +w a a

w2 ≡ a2(2) −a2

(3) =

00

a32(2) + s2a42(2)

!an2(2)

#

$

%%%%%%%%

&

'

((((((((

そのとき

2 2 2 2 2 22 t tP I I α= − = −u u w w 2 2 (2)2 32 2

1s a s

α =+

等となる 22

Page 23: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

A3 = P2−1A2P2 =

* * 0 0 ! 0* * * 0 ! 00 * * * ! *0 0 * * ! *! ! ! ! " !0 0 * * ! *

"

#

$$$$$$$

%

&

'''''''

変換後の は下のような形になる 3A

【Householder変換の図形的な意味】

Householder変換は「鏡映」変換 Jacobi,Givensは「回転」 23

Page 24: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

2 t tk k k k k kP I I α= − = −u u w w

11k k k kA P A P−+ =

2n − 回の変換で3重対角行列に変換される

以下同様の変換を繰り返すと

( )22 ( )

1

nk

k jkj k

s a= +

= ∑wk ≡ ak(k ) −ak

(k+1) =

0!0

ak+1,k(k ) + skak+2,k(k )

!ank(k )

#

$

%%%%%%%%%%%

&

'

(((((((((((

2 ( )1,

1k k

k k k ks a sα

+

=+

24

Page 25: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

! =========================================================================== !! THIS SUBROUTINE TRIDIAGONARIZES THE GIVEN SYMMETRIC MATRIX BY !! HOUSEHOLDER'S METHODS. !! ------------------------------------------------------------------------ !! A ... MATRIX TO BE TRIDIAGONARIZED (USED LOWER LEFT TRIANGULAR PART) !! N ... SYSTEM DIMENSION !! AL .. DIAGONAL ARRAY OF TRIDIAGONARIZED MATRIX !! BE .. SUBDIAGONAL ARRAY OF TRIDIAGONARIZED MATRIX !! CO .. NORMALIZATION FACTOR !! ------------------------------------------------------------------------ !! =========================================================================== !SUBROUTINE TRIDIAGONARIZATION(A,N,AL,BE,CO) IMPLICIT NONE

INTEGER,INTENT(IN) :: N REAL(KIND(1D0)),DIMENSION(N,N),INTENT(INOUT) :: A REAL(KIND(1D0)),DIMENSION(N),INTENT(OUT) :: AL,CO REAL(KIND(1D0)),DIMENSION(N-1),INTENT(OUT) :: BE REAL(KIND(1D0)),DIMENSION(:),ALLOCATABLE :: W,P,Q INTEGER :: I,J,K REAL(KIND(1D0)) :: S,T,EPS INTRINSIC SQRT

IF(N<=2) RETURN ! PARAMETER CHECK ALLOCATE(W(N),P(N),Q(N)) ! ALLOCATE WORK ARRAYS EPS=1.0D-25 ! COLUMN THRESHOLD

Householder変換のFortranコード例(1/3)

25

Page 26: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

DO K=1,N-2 ! K-TH HOUSEHOLDER TRANSFOMATION T=0 DO I=K+1,N T=T+A(I,K)**2 END DO S=SQRT(T) IF(A(K+1,K)<0.0D0) S=-S ! TO AVOID ROUNDING ERROR AL(K)=A(K,K) BE(K)=-S IF(T<EPS) CYCLE CO(K)=1.0D0/(T+A(K+1,K)*S) W(K+1)=A(K+1,K)+S DO I=K+2,N W(I)=A(I,K) END DO A(K+1,K)=W(K+1)

DO I=K+1,N T=0.0D0 DO J=K+1,I T=T+A(I,J)*W(J) END DO DO J=I+1,N T=T+A(J,I)*W(J) END DO

P(I)=CO(K)*T END DO

Householder変換のFortranコード例(2/3) 26

Page 27: 数値解析 - 九州大学(KYUSHU UNIVERSITY)ri2t.kyushu-u.ac.jp/~watanabe/LECTURE/NA/12w.pdf3.固有値と固有ベクトルの数値計算 3.1固有値問題の序論 3.2ヤコビの方法(対角行列への帰着)

T=0.0D0 DO I=K+1,N T=T+P(I)*W(I) END DO

S=0.5D0*CO(K)*T DO I=K+1,N Q(I)=P(I)-S*W(I) END DO

DO J=K+1,N DO I=J,N A(I,J)=A(I,J)-W(I)*Q(J)-Q(I)*W(J) END DO END DO

END DO

AL(N-1)=A(N-1,N-1) AL(N)=A(N,N) BE(N-1)=A(N,N-1)

DEALLOCATE(W,P,Q)END SUBROUTINE TRIDIAGONARIZATION

Householder変換のFortranコード例(3/3)

前ページのループの終了

27