36
บทที4 ระบบสมการ ในบทนี้จะกลาวถึงการแกระบบสมการ ซึ่งสามารถเขียนเปนรูปแบบทั่วไป คือ 11 1 12 2 1 1 21 1 22 2 2 2 n n n n ax ax ax b ax ax ax b + + + = + + + = K K M M 11 2 2 n n nn n ax ax ax b + + + = K n 4.1 วิธีกราฟ พิจารณาสมการ a 11 x 1 + a 12 x 2 = b 1 a 21 x 1 + a 22 x 2 = b 2 แกสมการทั้งสองหาคา x 2 ไดดังนี11 1 2 1 12 12 a b x x a a =− + 21 2 2 1 22 22 a b x x a a =− + PH 615 83

4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

  • Upload
    ngodat

  • View
    222

  • Download
    5

Embed Size (px)

Citation preview

Page 1: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

บทที่ 4 ระบบสมการ

ในบทนี้จะกลาวถึงการแกระบบสมการ ซึ่งสามารถเขยีนเปนรูปแบบทั่วไป คือ

11 1 12 2 1 1

21 1 22 2 2 2

n n

n n

a x a x a x ba x a x a x b

+ + + =+ + + =

K

K

M M 1 1 2 2n n nn na x a x a x b+ + + =K n

4.1 วิธีกราฟ

พิจารณาสมการ a11x1 + a12x2 = b1 a21x1 + a22x2 = b2

แกสมการทั้งสองหาคา x2 ไดดังนี้

11 12 1

12 12

a bx xa a

⎛ ⎞= − +⎜ ⎟

⎝ ⎠

21 22 1

22 22

a bx xa a

⎛ ⎞= − +⎜ ⎟

⎝ ⎠

PH 615 83

Page 2: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ตัวอยางที่ 4.1 จงใชวิธีกราฟแกสมการ 3x1 + 2x2 = 18

- x1 + 2x2 = 2 วิธีทํา

x2 = 23

− x1 + 9

x2 = 21 x1 + 1

นําสมการทั้งสองไปเขียนกราฟ ที่จุดตัด x1 = 4 และ x2 = 3 ซึ่งเปนคําตอบของสมการ

รูป 4.1 วิธีกราฟ

ตัวอยางที่ 4.2 จงใชวธิีกราฟแกสมการ 2x2 - 6x2 = -18 - x1 + 8x2 = 40

ตรวจสอบคําตอบโดยแทนคากลับลงในสมการ

PH 615 84

Page 3: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

วิธีทํา กําหนดให จากสมการขางตน เขียนใหมไดเปน xx =1 yx =2

1862 −=− yx 1826 1 −−=− xy 331 +=xy ( ) 3

3+=

xxf

⇒ ⇒ ⇒

408 =+− yx 408 2 += xy 582 +=xy ( ) 5

8+=

xxg

นําไปเขียนกราฟ จะได x 50− 49.99−, 50..:=

f x( )x3

⎛⎜⎝

⎞⎟⎠

3+:= g x( )x8

⎛⎜⎝

⎞⎟⎠

5+:=

60 40 20 0 20 40 60

20

10

10

20

f x( )

g x( )

x

จะไดวา 6.91 == xx ( ) ( ) 2.62 === xgxfx เม่ือนําคา และ ที่ไดไปแทนลงในสมการโจทย จะได 1x 2x

( ) ( ) 182.666.92 −=−

( ) ( ) 402.686.9 =+−

PH 615 85

Page 4: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ซึ่งทําใหสมการเปนจริง ดังนั้น 6.91 =x

2.62 =x

เปนคําตอบของระบบสมการ

4.2 วิธีใช หลักของเครเมอร (Cramer’s Rule)

เปนวธิีการที่สามารถชวยแกสมการที่มีจํานวนนอยไดงาย

[ ]11 12 13

21 22 23

31 32 33

a a aA a a a

a a a

⎛ ⎞⎜ ⎟= ⎜ ⎟⎜ ⎟⎝ ⎠

cocfficientmatrix

11 12 13

21 22 23

31 32 33

a a aD a a a

a a a= Determinant

22 23 21 23 21 2211 12 13

31 3232 33 31 33

a a a a a aa a a

a aa a a a= − +

ตัวอยางที่ 4.3 จงหาคา Determinant ของระบบในตวัอยางที่ 4.1

วิธีทํา

( ) ( )3 2

3 2 2 1 81 2

D = = − −−

=

PH 615 86

Page 5: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

หลักของเครเมอร เปนวธิีการคํานวณหาผลเฉลยของระบบสมการที่มีจํานวนไมมาก

นัก เชน ถาเรามีสมการ 3 สมการและมีตัวแปรทีต่องการหาคา 3 คา จะได

= 1x Daabaabaab

33323

23222

13121

= 2xD

abaabaaba

33331

23221

13111

= 3xD

baabaabaa

33231

22221

11211

เม่ือ D = 333231

232221

131211

aaaaaaaaa

ตัวอยางที่ 4.4 จงอาศัยหลักของเครเมอร แกสมการ

1 2 3

1 2 3

1 2 3

0.3 0.52 0.010.5 1.9 0.670.1 0.3 0.5 0.04

x x xx x xx x x

+ + = −+ + =+ + = −

PH 615 87

Page 6: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

วิธีทํา

( ) ( ) ( )0.3 0.52 10.5 1 1.9 0.3 0.07 0.52 0.06 1 0.05 0.00220.1 0.3 0.5

D = = − − + = −

ไมเนอร (Minor) คือ

( ) ( )1

1 1.91 0.5 1.9 0.3 0.07

0.3 0.5A = = − = −

( ) ( )2

0.5 1.90.5 0.5 1.9 0.1 0.06

0.1 0.5A = = − =

( ) ( )3

0.5 10.5 0.3 1 0.1 0.05

0.1 0.3A = = − =

1

0.01 0.52 10.67 1 1.90.44 0.3 0.5 0.03178 14.9

0.0022 0.0022x

−= =

− −= −

2

0.3 0.01 10.5 0.67 1.90.1 0.44 0.5 0.0649 29.5

0.0022 0.0022x

−= =

− −= −

3

0.3 0.52 0.010.5 1 0.670.1 0.3 0.44 0.04356 19.8

0.0022 0.0022x

− −= =

− −=

PH 615 88

Page 7: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

4.3 วิธีกําจัดตวัแปร การแกสมการอีกวิธีหนึ่งก็คอื การกําจัดตัวแปรจากสมการ

11 1 12 2 1

21 1 22 2 2

a x a x ba x a x b

+ =+ =

คูณสมการแรกดวย a21 ⇒ a11a21x1 + a12a21x2 = b1a21

คูณสมการสองดวย a11 ⇒ a11a21x1 + a12a21x2 = b1a21 แลวลบกันจะได

22 11 2 12 21 2 2 11 1 21a a x a a x b a b a− = − ทําใหเหลือตวัแปรเพียงตวัเดียว ซึ่งสามารถหาคา ได 2x

11 2 21 12

11 22 12 21

a b a bxa a a a

−=

และ 21 1 12 2

111 22 12 21

a b a bxa a a a

−=

เทียบกับจากหลักของเครเมอร

1 12

2 22 1 22 12 21

11 12 11 22 12 21

21 22

b ab a b a a bxa a a a a aa a

−= =

11 1

21 2 11 1 2 212

11 12 11 22 12 21

21 22

a ba b a b b axa a a a a aa a

−= =

จะไดผลเฉลยตรงกันทั้งสองวิธ ี

PH 615 89

Page 8: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ตัวอยางที่ 4.5 จงใชวิธีกําจัดตัวแปร หาคา จากสมการ 1 2,x x

1 2

1 2

3 2 12 2

x xx x

8+ =− + =

วิธีทํา

( ) ( )( ) ( )1

2 18 2 24

3 2 2 1x

−= =

− −

( ) ( )( ) ( )2

3 2 1 183

3 2 2 1x

− −= =

− −

ซึ่งเทากับวธิีกราฟ

4.4 วิธี Naive Gauss Elimination

วิธีการน้ีใชขยายมาจากวิธีกําจัดตัวแปรจากหัวขอที่ผานมา โดยสามารถนําไปใชกับเซทของสมการที่มีหลายสมการได วิธีนี้เหมาะในการคํานวณโดยใชคอมพิวเตอร จะสามารถหาคาตัวแปรไดอยางรวดเร็ว แตก็มีขอเสียเม่ือสัมประสิทธิต์ังหนึ่งตวัใดเปนศูนย ก็จะทําใหเกิดการหารดวยศูนย ซึ่งจะไมสามารถคํานวณตอไปได วิธีการนี้จึงมีชื่อเรียกวา “naive” Gauss elimination

สมมุติวา มีเซตของ n สมการ

11 1 12 2 1 1

21 1 22 2 2 2

.... ......................9.12.... .....................9.12

n n

n n

a x a x a x b aa x a x a x b b

+ + + =+ + + =

M M 1 1 2 2 .... .....................9.12n n nn n na x a x a x b c+ + + =

PH 615 90

Page 9: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

กําจัดตัวแปร

คูณสมการดวย ⇒ = 11

21

aa

nmxaaaxa

aaxa

11

21212

11

21121 ...+++ 1

11

21 baa

ลบออกจากสมการที่สองจะได

21 21 2122 12 2 2 1 2 1

11 11 11

..... n na aa a x a a x ba a

⎛ ⎞ ⎛ ⎞− + + − = −⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠

a ba

หรือ

22 2 2 2.... n na x a x b ′′ ′+ + =

ทําซํ้าตอไปอีกโดยคูณดวย แลวจะได 31

11

aa

a11x1 + a12x2 + …+ a1nxn = b1

a/22 x2 +…+ a/

2n xn = b2/

a/32 x2 +…+ a/

3n xn = b3/

M M a/

n2 x2 +…+ ann/ xn = bn

/ ใชวธิีการเชนนี้ ทําซํ้าหลาย ๆ คร้ังจะได

a11x1 + a12x2 + …+ a1nxn = b1

a/22 x2 +…+ a/

2n xn = b2/

a/33 x3 +…+ a/

3n xn = b3/

M M a//

n3 x3 +…+ a//nn xn = b//

n

PH 615 91

Page 10: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ทําซํ้าตอไปอีกจะได

a11x1 + a12x2 + …+ a1nxn = b1

a/22 x2 +…+ a/

2n xn = b2/

a//33 x3 +…+ a//

3n xn = b// 3

Ο M ( )

nn

nn xa 1− = ( )1−nnb

ซึ่งจะสามารถแทนคายอนกลับเพ่ือหาคา xn กอน

( )

( )

1

1

nn

n nn

bxa

−=

แลวจึงหาคา xn-1, xn-2, … จนสุดทายจะไดคา x1 ตามตองการ สามารถเขียนเปนสมการทั่วไปได คือ

( ) ( )

( )

1 1

11

ni i

i ijj i

i iij

b ax

a

− −

= +−

−=

∑ jx เม่ือ 1, 2,....,1i n n= − −

สรุป ขั้นตอนตาง ๆ ไดดังนี้

⎥⎥⎥

⎢⎢⎢

3

2

1

333231

232221

131211

ccc

aaaaaaaaa

Forward Elimination

⎥⎥⎥

⎢⎢⎢

′′′

′′′′

3

2

1

33

2322

131211

ccc

aaaaaa

⇓ 3 3 33x c a′′ ′′= ( )3 2 23 3 22x c a x a′ ′= − ′′ Back Substitution ( )1 1 12 2 13 3 11x c a x a x a= − −

PH 615 92

Page 11: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ตัวอยางที่ 4.5 จงใช Gauss Elimination แกสมการ

0.3x1 - 0.1x2 – 0.2x3 = 7.85

0.1x1 + 7x2 – 0.3x3 = - 19.3

0.3x1 - 0.2x2 + 10x3 = 71.4 วิธีทํา คูณสมการดวย 0.1/3 แลวหักออกจากสมการจะได

2 37.00333 0.293333 19.5617x x− = −

คูณสมการดวย 0.3/3 แลวหักออกจากสมการจะได

0.3x1 - 0.1x2 – 0.2x3 = 7.85

7.00333x2 – 0.293333x3 = -19.5617

- 0.19000x2 + 10.0200x3 = 70.6150 ตอไปทําให ในสมการหมดไป 2x

คูณสมการดวย - 0.19000/7.00333 แลวหักออกจากสมการจะได

0.3x1 - 0.1x2 – 0.2x3 = 7.85

7.00333x2 – 0.293333x3 = -19.5617

10.0200x3 = 70.0843

หาคา จากสมการ 3x

370.0843 7.0000310.0200

x = =

แทน ลงไปในสมการ 3x

( )27.00333 0.293333 7.00003 19.5617x − = −

PH 615 93

Page 12: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ดังนั้น

x2 = ( )00333.7

00003.7293333.05617.19 +−

= - 2.5000 แทน และ ลงในสมการจะได 2x 3x

( ) ( )10.3 0.1 2.50000 0.2 7.00003 7.85x − − − = ดังนั้น

x1 = ( ) ( )3

00003.72.050000.21.085.7 +−+

= 3.0000 ตัวอยางที่ 4.6 จงเขียนโปรแกรมเพื่อแกสมการ

2x1 – 6x2 = -18 - x1 + 8x2 = 40

วิธีทํา PROGRAM GAUSS_ELE DIMENSION A(50,50),B(50),X(50) PARAMETER (N=2) DATA ((A(I,J),J=1,N),I=1,N)/2.,-6., + -1.,8./ DATA (B(I),I=1,N) /-18.,40./ CALL GAUSS(N,A,B,X) * --------------------------------- WRITE(*,100)

PH 615 94

Page 13: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

100 FORMAT(/, 7X, 'EQUATION NO.', + 7X, 'SOLUTION X', /) DO 20 I=1,N WRITE(*,200) I, X(I) 200 FORMAT(I12, 8X, F16.6) 20 CONTINUE * ---------------------------------- STOP END *--------------------------------------------------------- SUBROUTINE GAUSS(N,A,B,X) DIMENSION A(50,50),B(50),X(50) CALL SCL(N,A,B) DO 100 IP=1,N-1 CALL PIVOT(N,A,B,IP) DO 200 IE=IP+1,N RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,N A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,N A(IE,IP)=0. 400 CONTINUE 100 CONTINUE X(N)=B(N)/A(N,N) DO 500 IE=N-1,1,-1 SUM=0.

PH 615 95

Page 14: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

DO 600 IC=IE+1,N SUM=SUM+A(IE,IC)*X(IC) 600 CONTINUE X(IE)=(B(IE)-SUM)/A(IE,IE) 500 CONTINUE RETURN END *---------------------------------------------------------- SUBROUTINE SCL(N,A,B) DIMENSION A(50,50),B(50) DO 10 IE=1,N BIG=ABS(A(IE,1)) DO 20 IC=2,N AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,N A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *--------------------------------------------------------- SUBROUTINE PIVOT(N,A,B,IP) DIMENSION A(50,50),B(50) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,N

PH 615 96

Page 15: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,N DUMY = A(JP,J) A(JP,J)= A(IP,J) A(IP,J)= DUMY 20 CONTINUE DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *----------------------------------------------------------- เอาทพุทคือ

PH 615 97

Page 16: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

4.4.1 ขอเสียของวิธี Elimination จะมีอยู 3 ขอ คือ 1. สัมประสิทธิ์ตวัใดตวัหนึง่เปนศูนย ทาํใหเกิดการหารดวยศูนย 2. การปดเศษหลาย ๆ คร้ัง ทําใหผลเฉลยคลาดเคลือ่นไป 3. สมการบางสมการมีคาความชันใกลเคยีงกัน ทําใหไมทราบจุดตดัที่แนนอนได ตัวอยางที่ 4.7 จงแกสมการ

1 2

1 2

2 101.1 2 10.4x x

x x+ =+ =

แลวเปลี่ยนคาสัมประสิทธิข์อง ในสมการสองเปน 1.05 แลวแกสมการอีกคร้ัง 1x

วิธีทํา

12(10) 2(10.4) 41(2) 2(1.1)

x −= =

21(10.4) 1.1(10) 3

1(2) 2(1.1)x −= =

เม่ือเปลี่ยน จาก 1.1 เปน 1.05 จะได 21a

12(10) 2(10.4) 81(2) 2(1.05)

x −= =

21(10.4) 1.1(10) 11(2) 2(1.05)

x −= =

จะเห็นไดวา a21 เปลี่ยนไปเพียง 0.05 เทาน้ัน แตผลเฉลยมีคาแตกตางกันมาก

เน่ืองจากวา ทั้งสองสมการมีความชันใกลเคียงกันมาก

PH 615 98

Page 17: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

พิจารณาสมการ

11 1 12 2 1

21 1 22 2 2

11 11 1

12 12

21 22 2

22 22

a x a x ba x a x b

a bx xa aa bx xa a

+ =+ =

= − +

= − +

ถาความชันเกอืบจะมีคาเทากัน

11 21

12 22

a aa a

หรือ

11 22 12 21a a a a≅

11 22 12 21 0a a a a− = ซึ่ง เปน Determinant ของระบบสมการเม่ือนําไปหารเพ่ือหาคาผลเฉลย จะทําใหผลเฉลยมีคาเปลี่ยนไปมาก

11 22 12 21a a a a−

ตัวอยางที่ 4.8 ผลของการคูณดวยคาคงที่ เพ่ือทําใหคา determinant มีคามากขึ้น จงหา Determinant

ก) 1 2

1 2

3 2 12 2

x xx x+ = 8

− + =

ข) 1 2

1 2

2 101.1 2 10.4x x

x x+ =+ =

ค) ทําซํ้าขอ ข) โดยคูณสมการดวย 10

PH 615 99

Page 18: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

วิธีทํา ก) D = 3(2) – 2(-1) = 8

มีคามากกวาศูนย ใชไดดี

ข) D = 1(2) – 2(1.1) = -0.2 มีคาเขาใกลศนูย ทําใหผลเฉลยคลาดเคลื่อนไดมาก

ค) คูณสมการดวย 10 (ผลเฉลยเทาเดิม) 1 2

1 2

10 20 10011 20 104

x xx x+ =+ =

( ) ( )10 20 20 11 20D = − = −

มีคามาก โดยที่ผลเฉลยมีคาเหมือนเดิม จึงเปนวิธีการที่จะทําให D มีคามากขึ้น

ตัวอยางที่ 4.9 ให scale สมการในตัวอยาง 4.8 โดยสัมประสิทธิ์มีคามากที่สุดเทากับ 1 แลวคํานวณหา Determinant วิธีทํา ก)

1 2

1 2

0.667 60.5 1

x xx x

+ =− + =

( ) ( )1 1 0.667 0.5 1.333D = − − =

ข) 1 2

1 2

0.5 50.55 5.2

x xx x+ =+ =

( ) ( )0.5 1 1 0.55 0.05D = − = −

PH 615 100

Page 19: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ค) scaling เหมือนขอ ข) 0.05D = − เหมือนกัน

4.4.2 วิธีแกขอเสียของวธีิ Elimination มีอยู 2 วิธี คือ

1. เพ่ิมทศนิยมในการคํานวณ 2. สลับแถว หรือคอลัมน

Partial → สลับแถว

Complete → สลับแถวและคอลัมน ตัวอยางที่ 4.10 อาศัย Gauss elimination แกสมการ

1 2

1 2

0.0003 3.0000 2.00011.0000 1.0000 1.0000

x xx x+ =+ =

เน่ืองจาก มีคาเขาใกลศูนย ใหสลับลําดับของสมการ ผลเฉลยที่แทจริง คือ

และ 11 0.0003a =

11

3x = 22

3x =

วิธีทํา คูณสมการแรกดวย จะได 1

0.0003

1 210.000 6667x x+ =

ทําให หมดจากสมการสอง 1x

2

2

9999 666623

x

x

− = −

=

แทน กลับเขาไปในสมการแรกเพื่อหา 2x 1x

PH 615 101

Page 20: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

1

22.0001 33

0.0003x

⎛ ⎞− ⎜ ⎟⎝ ⎠=

Significant Figures 2x 1x

Absolute Value of Percent relative

Error for 1x 3 4 5 6 7

0.667 0.6667 0.66667 0.666667 0.6666667

-3.33 0.0000 0.3000 0.330000 0.3330000

1099 100 10 1 0.1

สลับ order ของสมการ ซึ่งจะทําใหไดผลเฉลยของสมการที่มีความแนนอนกวา

1 2

1 2

1.0000 1.0000 1.00000.0003 3.0000 2.0001

x xx x+ =+ =

จะได 223

x =

และ 1

213

1x

⎛ ⎞− ⎜ ⎟⎝ ⎠=

PH 615 102

Page 21: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

Significant Figures 2x 1x

Absolute Value of Percent relative

Error for 1x 3 4 5 6 7

0.667 0.6667 0.66667 0.666667 0.6666667

0.333 0.3333 0.33333 0.333333 0.3333333

0.1 0.01 0.001 0.0001 0.00001

จะเห็นไดวา การสลับ order จะใหผลทีน่าพึงพอใจมากกวา

ตัวอยางที่ 4.11 Scaling

ก) แกสมการโดยใช Gauss elimination และ pivoting 1 2

1 2

2 100,000 100,0002

x xx x

+ =+ =

ข) แกสมการโดยการ Scaling ใหสัมประสิทธิส์ูงสดุของแตละแถว = 1 ค) อาศัยการ Scaling สัมประสิทธิ์ เพ่ือที่จะพิจารณาวา การ pivot จําเปนหรือไม

อยางไรก็ตามใหแกสมการโดยอาศัยสัมประสิทธิค์าเดิม ใชเลขนัยสําคัญ 3 หลักคําตอบที่ถูกตอง คือ , หรือถาใชเลข 3 หลัก 1 1.00002x = 2 0.99998x = 1 2 1.00x x= =

วิธีทํา

ก) โดยไมใชการ Scale 1 2

2

2 100,000 100,00050,000 50,000x x

x+ =

− = −

ซึ่งจะได , คา มีError 100% เน่ืองจากการปดทศนิยม 1 1.00x = 2 0.00x = 1x

PH 615 103

Page 22: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

Scaling 1 2

1 2

0.00002 12x x

x x+ =

+ =

ข)

Pivot แถวแรก 1 2

1 2

20.00002 1x x

x x+ =

+ =

จาก Forward elimination ได

1 2

2

21.00

x xx+ ==

จะได ซึ่งตรงกับคาที่แทจริง 1 2 1x x= =

ค) สัมประสิทธิข์องการ Scale บงชี้วาจําเปนที่จะตองใช Pivot เราจะทําการ Pivot

แตใช คาสัมประสิทธิเ์ดิม 1 2

1 2

22 100,000 100,000x xx x+ =+ =

จาก Forward elimination ได 1 2

2

2100,000 100,000x x

x+ =

=

ซึ่งจะไดวา 1 2 1x x= =

ดังนั้นการ Scale เปนประโยชนตอการพิจารณาวาPivotจําเปนหรือไม แตไมจําเปนที่

จะตอง Scale เพ่ือใหไดคําตอบที่ถูกตอง ตัวอยางที่ 4.12 จงแกสมการตอไปน้ี

0.77x1 + x2 = 14.25 1.2x1 + 1.7x2 = 20 ก) โดยวิธีกราฟ ข) จากกราฟที่ได จงพิจารณาภาวะของระบบสมการ

ค) จงเขียนโปรแกรมโดยใชวิธี Gauss elimination เพ่ือแกสมการน้ี

PH 615 104

Page 23: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

วิธีทํา ก) กําหนดให , จากสมการขางตน เขียนใหมไดเปน xx =1 yx =2

25.1477.0 =+ yx 25.1477.01 +−= xy ( ) 25.1477.0 +−= xxf

⇒ ⇒

207.12.1 =+ yx 7.1

202.12

+−=

xy ( )7.1

202.1 +−=

xxg

นําไปเขียนกราฟ จะได x 50− 49.99−, 50..:=

f x( ) 0.77− x 14.25+:= g x( )1.2− x 20+( )

1.7:=

60 40 20 0 20 40 60

40

20

20

40

60

f x( )

g x( )

x

PH 615 105

Page 24: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ข) จะไดวา

761482.381 ≅= xx ( ) ( ) 596339.152 −≅== xgxfx

เน่ืองจากวากราฟทั้งสองมีความชันใกลเคียงกัน จึงทําใหการหาจุดตัดจากการ

คาดคะเนทําไดยาก คารากของระบบสมการจึงเปนเพียงคาประมาณหยาบๆ ค) PROGRAM GAUSS DIMENSION A(50,50),B(50),X(50) PARAMETER (N=2) DATA ((A(I,J),J=1,N),I=1,N)/0.77,1., + 1.2,1.7/ DATA (B(I),I=1,N) /14.25,20./ CALL GAUSS(N,A,B,X) * --------------------------------- WRITE(*,100) 100 FORMAT(/, 7X, 'EQUATION NO.', + 7X, 'SOLUTION X', /) DO 20 I=1,N WRITE(*,200) I, X(I) 200 FORMAT(I12, 8X, F16.6) 20 CONTINUE * ---------------------------------- STOP END *--------------------------------------------------------- SUBROUTINE GAUSS(N,A,B,X) DIMENSION A(50,50),B(50),X(50)

PH 615 106

Page 25: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

CALL SCL(N,A,B) DO 100 IP=1,N-1 CALL PIVOT(N,A,B,IP) DO 200 IE=IP+1,N RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,N A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,N A(IE,IP)=0. 400 CONTINUE 100 CONTINUE X(N)=B(N)/A(N,N) DO 500 IE=N-1,1,-1 SUM=0. DO 600 IC=IE+1,N SUM=SUM+A(IE,IC)*X(IC) 600 CONTINUE X(IE)=(B(IE)-SUM)/A(IE,IE) 500 CONTINUE RETURN END *---------------------------------------------------------- SUBROUTINE SCL(N,A,B) DIMENSION A(50,50),B(50) DO 10 IE=1,N BIG=ABS(A(IE,1))

PH 615 107

Page 26: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

DO 20 IC=2,N AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,N A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *--------------------------------------------------------- SUBROUTINE PIVOT(N,A,B,IP) DIMENSION A(50,50),B(50) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,N AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,N DUMY = A(JP,J) A(JP,J)= A(IP,J) A(IP,J)= DUMY 20 CONTINUE

PH 615 108

Page 27: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *----------------------------------------------------------- ตัวอยางที่ 4.13 จงเขียนโปรแกรมภาษาฟอรแทรนโดยใชวธิี Gauss elimination พรอมทั้ง partial pivoting เพ่ือแกสมการตอไปน้ี (ซึ่งมีคําตอบคือ x1 = x2 = x3 = 1)

x1 + x2 – x3 = 1

6x1 + 2x2 + 2x3 = 10

-3x1 + 4x2 + x3 = 2 วิธีทํา PROGRAM GAUSS DIMENSION A(50,50),B(50),X(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/1.,1.,-1., + 6.,2.,2., + -3.,4.,1./ DATA (B(I),I=1,N) /1.,10.,2./ CALL GAUSS(N,A,B,X) * --------------------------------- WRITE(*,100) 100 FORMAT(/, 7X, 'EQUATION NO.', + 7X, 'SOLUTION X', /) DO 20 I=1,N WRITE(*,200) I, X(I)

PH 615 109

Page 28: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

200 FORMAT(I12, 8X, F16.6) 20 CONTINUE * ---------------------------------- STOP END *--------------------------------------------------------- SUBROUTINE GAUSS(N,A,B,X) DIMENSION A(50,50),B(50),X(50) CALL SCL(N,A,B) DO 100 IP=1,N-1 CALL PIVOT(N,A,B,IP) DO 200 IE=IP+1,N RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,N A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,N A(IE,IP)=0. 400 CONTINUE 100 CONTINUE X(N)=B(N)/A(N,N) DO 500 IE=N-1,1,-1 SUM=0. DO 600 IC=IE+1,N SUM=SUM+A(IE,IC)*X(IC) 600 CONTINUE X(IE)=(B(IE)-SUM)/A(IE,IE)

PH 615 110

Page 29: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

500 CONTINUE RETURN END *---------------------------------------------------------- SUBROUTINE SCL(N,A,B) DIMENSION A(50,50),B(50) DO 10 IE=1,N BIG=ABS(A(IE,1)) DO 20 IC=2,N AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,N A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *--------------------------------------------------------- SUBROUTINE PIVOT(N,A,B,IP) DIMENSION A(50,50),B(50) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,N AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I

PH 615 111

Page 30: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,N DUMY = A(JP,J) A(JP,J)= A(IP,J) A(IP,J)= DUMY 20 CONTINUE DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *----------------------------------------------------------- ตัวอยางที่ 4.14 จงเขียนโปรแกรมเพื่อแกสมการ

0.5x1 – x2 = -9.5 0.26 x1 - 0.5x2 = -4.7

วิธีทํา อาศัยโปรแกรมในตวัอยาง 4.13 โดยเปลี่ยนระบบสมการ เอาทพุท คือ

PH 615 112

Page 31: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ตัวอยางที่ 4.5 จงเขียนโปรแกรมโดยวิธ ี naive – Gauss elimination เพ่ือแกสมการ

-12x1 + x2 – x3 = -20

-2x1 - 4x2 + 2x3 = 10

x1 + 2x2 + 2x3 = 25

วิธีทํา อาศัยโปรแกรมในตวัอยาง 4.13 โดยเปลี่ยนระบบสมการ PROGRAM GAUSS_ELE DIMENSION A(50,50),B(50),X(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/-12.,1.,-1., + -2.,-4.,2., + 1.,2.,2./ DATA (B(I),I=1,N) /-20.,10.,25./ CALL GAUSS(N,A,B,X)

• ---------------------------------

• เอาทพุทคือ ดังนั้น x1 = 1, x2 = 2 และ x3 = 10

PH 615 113

Page 32: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ตัวอยางที่ 4.16 จงเขียนโปรแกรมโยวิธ ี naive – Gauss elimination เพ่ือแกสมการ

4x1 + x2 – x3 = -2

5x1 + x2 + 2x3 = 4

6x1 + x2 + x3 = 6

วิธีทํา อาศัยโปรแกรมในตัวอยาง 4.13 โดยเปลี่ยนระบบสมการ PROGRAM GAUSS_ELE DIMENSION A(50,50),B(50),X(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/4.,1.,-1., + 5.,1.,2., + 6.,1.,1./ DATA (B(I),I=1,N) /-2.,4.,6./ CALL GAUSS(N,A,B,X) * --------------------------------- เอาทพุทคือ ดังนั้น x1 = 3, x2 = -13, x3 = 1

PH 615 114

Page 33: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

4.5 วิธีเกาส-จอรแดน (Gauss – Jordan) วิธีการของเกาส-จอรแดนจะคลายกับวธิกีารของเกาส ขอแตกตางอยูตรงที่วาหลังจากการกําจัดตัวแปรแลว เมทริกซที่ไดจะเปน identity matrix ตัวอยางที่ 4.17 ใชเทคนิคเกาส-จอรแดนแกสมการ

1 2 3

1 2 3

1 2 3

3 0.1 0.2 7.850.1 7 0.3 19.30.3 0.2 10 71.4

x x xx x xx x x

− − =+ − = −− + =

วิธีทํา

3 0.1 0.20.1 7 0.3 19.30.3 0.2 10

− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦

Normalize แถวแรกดวยการหารดวย 3

1 0.0333333 0.0666670.1 7 0.3 19.30.3 0.2 10

− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦

ทําให หมดจากสมการสอง โดยการหัก 0.1 เทาของสมการหนึ่ง จากสมการสองและเชนเดียวกัน หัก 0.3 เทาของแถวแรก จากแถว 3 จะทําให ในแถว 3 หมดไป

1x

1x

1 0.0333333 0.0666670 7.00333 0.293333 19.56170 0.190000 10.0200

− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦

PH 615 115

Page 34: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

ตอไป Normalize แถวสองโดยการหารดวย 7.00333

1 0.0333333 0.0666670 1 0.0418848 2.793200 0.190000 10.0200

− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦

ทําใหเทอม หมดจากสมการหน่ึงและสามจะได 2x

1 0 0.06806290 1 0.0418848 2.793200 0 10.01200

−⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥⎣ ⎦

ตอไป Normalize แถวสามโดยการหารดวย 10.01200

1 0 0.06806290 1 0.0418848 2.793200 0 1

−⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥⎣ ⎦

ทําใหเทอม หมดจากสมการหน่ึงและสองจะได 3x

1 0 00 1 0 2.500010 0 1

⎡ ⎤⎢ ⎥− −⎢ ⎥⎢ ⎥⎣ ⎦

PH 615 116

Page 35: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

สรุป ขั้นตอนของวิธีเกาส-จอรแดน

⎥⎥⎥

⎢⎢⎢

3

2

1

333231

232221

131211

ccc

aaaaaaaaa

( )

( )

( )⎥⎥⎥

⎢⎢⎢

n

n

n

ccc

3

2

1

100010001

x1 = ( )nc1 x2 = ( )nc2 x3 = ( )nc3

PH 615 117

Page 36: 4.1 วิธี กราฟ - e-book.ram.edue-book.ram.edu/e-book/p/PH615(51)/PH615-4.pdf · baba a b x aaaa aa aa ... =− −(cax ax a) 92 PH 615 . ตัวอย ี่างท

แบบฝกหัดบทที่ 4

1. จงแกสมการตอไปน้ี โดยวิธีกราฟ

0.5x1 – x2 = -9.5

0.26x1 – 0.5x2 = -4.7 2. จงแกสมการตอไปน้ี โดยวิธีกําจัดตวัแปร

0.77x1 + x2 = 14.25

1.2x1 + 1.7x2 = 20 3. กําหนดเซทของสมการ

2x2 + 5x3 = 1

2x1 + x2 + 2x3 = 1

3x1 + x2 = 2 ก) จงหา determinant จงใชหลักของเครเมอร หาคา xi ข) แทนคา xi กลับลงในสมการ เพ่ือตรวจสอบคําตอบ ค)

4. จงแกสมการตอไปน้ี 4x1 + x2 – x3 = -2

5x1 + x2 + 2x3 = 4

6x1 + x2 + x3 = 6 ก) โดยวิธีกําจัดเกาส ใชวิธีสลับแถว (partial pivoting) ข) เขียนโปรแกรม

PH 615 118