15
数数数数数数数数 数 11 数 数数数数数数数数数 (3)

数値計算及び実習

  • Upload
    cosmo

  • View
    30

  • Download
    0

Embed Size (px)

DESCRIPTION

数値計算及び実習. 第 11 回 応用プログラミング (3). 応用プログラミング (3). 1. 連立方程式の解法 ・ガウス - ジョルダン法. ガウス - ジョルダン法. 連立一次方程式の解法の1つ. a 11 X 1 + a 12 X 2 + … a 1n X n = b 1 a 21 X 1 + a 22 X 2 + … a 2n X n = b 2 ………………………... a n1 X 1 + a n2 X 2 + … a nn X n = b n. AX=B. 解法. B を A の n+1 行列目に書き足して得られる拡大行列 A e - PowerPoint PPT Presentation

Citation preview

Page 1: 数値計算及び実習

数値計算及び実習

第 11 回 応用プログラミング (3)

Page 2: 数値計算及び実習

応用プログラミング (3)

1. 連立方程式の解法 ・ガウス - ジョルダン法

Page 3: 数値計算及び実習

ガウス - ジョルダン法• 連立一次方程式の解法の1つ

a11X1+a12X2+ … a1nXn=b1

a21X1+a22X2+ … a2nXn=b2

………………………...an1X1+an2X2+ … annXn=bn

AX=B

nn2n1n

n22221

n11211

aaa

aaa

aaa

...

............

...

...

A

n

1

1

b

b

b

B

n

2

1

X

X

X

X

Page 4: 数値計算及び実習

解法• Bを Aの n+1 行列目に書き足して得られる

拡大行列 Ae• Aeが右のような行列になるような操作を行

い、そのときの b1’,b2’…,bn’ が解となる

n

2

1

nn2n1n

n22221

n11211

b

b

b

aaa

aaa

aaa

...

...

............

...

...

eA

'

...

'

'

...

............

...

...

n

2

1

b

b

b

100

010

001

Page 5: 数値計算及び実習

計算の手順 (1)

2X+3Y+ 4Z= 6 ①3X+5Y+ 2Z= 5 ②4X+3Y+30Z=32 ③

第 1 ステップ

32

5

6

30

2

4

3

5

3

4

3

2

①×0.5  →①’② -①’ ×3  →②’③ -①’ ×4  →③’

X+1.5Y+ 2Z=   3 ’① 0.5Y - 4Z= - 5 ’②   - 3Y+22Z= 20 ’③

20

5

3

22

4

2

3

50

51

0

0

1

.

.

Page 6: 数値計算及び実習

計算の手順 (2)

第 2 ステップ

’② ×2  →②”①’ -②” ×1.5  →①”③ -②” ×( - 3)  →③”

X+1.5Y+ 2Z=   3 ’① 0.5Y - 4Z= - 4 ’②   - 3Y+22Z= 20 ’③

20

4

3

22

4

2

3

50

51

0

0

1

.

.

X +14Z= 15 ”①

Y - 8Z= - 8 ”②   - 2Z= - 4 ”③

4

8

15

2

8

14

0

1

0

0

0

1

Page 7: 数値計算及び実習

計算の手順 (3)

第 3 ステップ

”③ ×( - 0.5)  →③”’①” -③”’ ×14  →① ”’②” -③”’ ×( - 8)  →②”’

X +14Z= 15 ”①

Y - 8Z= - 8 ”②   - 2Z= - 4 ”③

4

8

15

2

8

14

0

1

0

0

0

1

X      = - 13 ”’①

  Y     =    8 ”’②       Z=    2 ”’③

2

8

13

1

0

0

0

1

0

0

0

1

Page 8: 数値計算及び実習

解法のまとめ

n

2

1

nn2n1n

n22221

n11211

b

b

b

aaa

aaa

aaa

...

...

............

...

...

eA

(k)kj

)1(kik

)1(kij

)1(kkk

)1(kkj

)1(kik)1(k

ij(k)ij

)1(kkk

)1(kkj(k)

ij

aaa

a

aaaa

a

aa

(i=k)

(i=k)

(n)1nii aX

i=1,2,…,nj=k,k+1,…,n+1

k : 第 k ステップ

Page 9: 数値計算及び実習

解法における注意事項• 拡大行列 Ae に含まれる要素を、その行

に含まれる対角要素で割るとき、その除数となる要素をピボットという

• 解法から明らかなように、ピボットがゼロになると、以後の操作ができなくなる

• 操作の過程で、行と行あるいは列と列を交換してなるべく大きなピボットを採用するようにする → ピボット選択

Page 10: 数値計算及び実習

ピボット選択の例

1635

000002.122500001.13

1124

321

321

321

xxx

xxx

xxx

以下の連立 1 次方程式について、以下の 2 つの解法により得られる解の比較を行う

1) ピボットの選択をしない2) 行交換を行う

Page 11: 数値計算及び実習

1) ピボットの交換を行わない場合

16

000002.12

11

3

2

1

1

500001.1

2

5

3

4

25.2

750002.3

75.2

75.1

25.1

25.0

5.1

000001.0

5.0

0

0

1

Page 12: 数値計算及び実習

6

6

6

6

6

5

106250053.5

10750002.3

108749983.1

108750018.1

1025.1

102499975.6

0

1

0

0

0

1

99999.2

125.2

888.0

0

1

0

0

1

0

0

0

1

Page 13: 数値計算及び実習

2) 行交換を行った場合

11

000002.12

16

1

2

3

2

500001.1

1

4

3

5

16

000002.12

11

3

2

1

1

500001.1

2

5

3

4

入れ替え

Page 14: 数値計算及び実習

8.1

400002.2

2.3

4.1

2.0

6.0

2.1

900001.0

2.0

0

0

1

400002.2

8.1

2.3

2.0

4.1

6.0

900001.0

2.1

2.0

0

0

1

入れ替え

Page 15: 数値計算及び実習

9999999.2

0000000.2

0000001.1

1

0

0

0

1

0

0

0

1

7500035.3

5.1

5.3

2500012.1

166666.1

8333333.0

0

1

0

0

0

1

※ 解は  x1 = 1,    x2=2,   x3=3