Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
บทที่ 3
Systems of Linear Algebraic Equations
• สมการเชงิ เสน (Linear Equation) => สมการที่ตัวแปรทุกตัวมีกาํ ลังไมเ กินหน่ึง
• การแกร ะบบสมการเชิงเสน => การหาคา ของตัวแปรทุกตัวในระบบสมการ โดยทจี่ ํานวนตัวแปรทไี่ มร ูคา
และจาํ นวนสมการจะตอ งเทา กัน
• ระบบสมการเชิงเสนท่มี ตี ัวแปร n ตัว สามารถจดั ใหอยใู นรปู เมตริกสจ ัตุรัสขนาด n x n ได
ระบบสมการ
a11x1 + a12x2 + … + a1nxn = c1
a21x1 + a22x2 + … + a2nxn = c2
..
.
.. .
.. .
an1x1 + an2x2 + … + annxn = cn
เมตรกิ ส a1n x1 = c1
a11 a12 … a2n x2 c2
a21 a22 … .
. . .
. . .
. . cn
an1 an2 … ann xn
=> การแกร ะบบสมการเชิงเสนจะใชเ มตริกสเขามาชวย
• มี 4 กลุมวิธที ่จี ะกลา วถึง
- Gauss Elimination Method
- Gauss-Jordan Method และ Matrix Inverse Method
- LU Decomposition Method
- Gauss-Seidel Method
=> ทกุ วิธจี ะใหคาคําตอบท่ีแทจริง (Exact Solution) ยกเวน Gauss-Seidel Method ซึง่ เปน วธิ ี Iteration
จะใหคา คาํ ตอบโดยประมาณ (Approximate Solution)
3-1
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
• ตัวอยา งปญ หาระบบสมการเชงิ เสน
- Reactor ในกระบวนการเคมี
Q1 Q12 R2 Q2
c0 R1 c1 c2
Qc113 Qc332
Q31 R3
c3
=> รคู าความเขมขน c0 และอัตราการไหล Q ทุกตัว
=> ตองการรคู าความเขม ขนของสารเคมใี นแตละ Reactor ไดแ ก c1, c2 และ c3
=> สมดุลสารเคมี
R1 -(Q12+Q13)c1 + Q31c3 = -Q1c0
0
R2 Q12c1 - Q2c2 + Q32c3 = 0
R3 Q13c1 -(Q31+Q32)c3 =
- แรงในโครงสรา ง
100 kN 1 y 100 kN 1
x F1
F3
F1 F3 F1
F3
2 30o 60o 3 H2 2 30o 60o 3
F2 F2
F2
V3
V2
=> ตองการรขู นาดและทิศทางของแรงแตละแรง ไดแ ก F1, F2, F3, H2, V2 และ V3
=> สมดลุ แรง -F1cos30o + F3cos60o
Node 1 -F1sin30o - F3sin60o = -100
F1cos30o + F2 =0
Node 2 F1sin30o + H2 =0
Node 3 -F2 -F3cos60o + V2 =0
F3sin60o =0
+ V3 =0
3-2
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
• ทบทวนเก่ียวกับเมตรกิ ส (Matrix)
- เมตริกสข นาด m x n => จาํ นวน Row x จํานวน Column
[A] = a11 a12 … a1n
a21 a22 … a2n
. Main Diagonal
.
am1 am2 … amn
- การบวกลบเมตริกส => ขนาดตองเทากนั
[A] ± [B] = [C] => cij = aij ± bij
- การคณู เมตรกิ ส => จํานวน Column ของเมตริกสต ัวตั้ง ตอ งเทากับจาํ นวน Row ของเมตรกิ สต ัวคณู
[A]mxn⋅[B]nxl = [C]mxl => c = ∑n
ij aik ⋅ bkj
k =1
a11 a12 b11 b12 c11 c12
a21 a22 ⋅ b21 b22 = c21 c22
a31 a32 c31 c32
- Transpose => การสลับ Row เปน Column และ Column เปน Row
[A]T =
[A] = 11 12 13 11 21
12 22
21 22 23 13 23
- Augmentation => การตอเมตริกสเ ขา ดว ยกนั เมอ่ื ตองการทําอะไรเหมอื นกัน จะไดทําพรอมกัน
[A | C] = a11 a12 a13 | c1
a21 a22 a23 | c2
a31 a32 a33 | c3
- เมตรกิ สจตั ุรัส => เมตริกสทม่ี ีจํานวน Row เทากับจํานวน Column
- เมตรกิ สป ระเภทพเิ ศษของเมตรกิ สจัตรุ สั aij = aji
o Symmetric Matrix => เมตริกสสมมาตร
[A] = 1 5 7
529
793
3-3
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
o Diagonal Matrix => เฉพาะสมาชิกทีอ่ ยูในแนว Main Diagonal เทาน้นั ทมี่ คี า
[A] = a11 0 0
0 a22 0
0 0 a33
o Identity Matrix => เมตรกิ สเอกลกั ษณ aii = 1
[I] = 100
010
001
o Inverse of Matrix => เมตริกสท ค่ี ูณกบั เมตรกิ สต ้ังตน แลวไดเมตรกิ สเอกลักษณ
เมตรกิ สอินเวอรส [A]-1
เมตริกสตั้งตน [A] [A]-1⋅[A]
[A]⋅[A]-1 =
= [I]
=> เมตรกิ สท ่ีสามารถหาเมตริกสอินเวอรส ได เรียกวา Nonsingular Matrix
=> เมตริกสท ่ีไมส ามารถหาเมตริกสอ นิ เวอรสได เรียกวา Singular Matrix
=> เมตรกิ สท เี่ ปน Singular หมายถงึ เมตริกสท ี่สมาชิกของ Row หนง่ึ มีคาเปนจาํ นวนเทาของ
สมาชิกอีก Row หนึง่ หรือสมาชิกของ Column หนึง่ มคี าเปนจํานวนเทาของสมาชิกอกี Column
หน่ึง
o Triangular Matrix a11 0 0
a11 a12 a13 a21 a22 0
0 a22 a23
0 0 a33 a31 a32 a33
Upper Triangle Lower Triangle
o Banded Matrix
[A] = a11 a12 0 0
a21 a22 a23 0
0 a32 a33 a34
0 0 a43 a44
3-4
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
Gauss Elimination Method
• เปน วธิ กี ารแกระบบสมการท่ที ํากนั เปนปกตอิ ยแู ลว น่ันคอื การหาคา ของตวั แปรทลี ะตวั เพียงแตน าํ มาทํา
ใหเ ปนระบบมากยิง่ ข้ึน
• การแกร ะบบสมการ 2 ตวั แปร
สมมตใิ หม ีระบบสมการ
a11x1 + a12x2 = c1
a21x1 + a22x2 = c2
จากสมการที่ 1 จะได
x1 = c1 − a12x2
นําไปแทนในสมการท่ี 2 จะได a11
a + a x21⎜⎜⎛⎝ ⎟⎟⎠⎞ = c2
c1 − a12x2 22 2
a11
x2 = a11c2 − a21c1
a11a22 − a12a21
นํากลับไปแทนในสมการที่ 1 และจดั รูป จะได
x1 = a22c1 − a12c2
a11a22 − a12a21
หรือหากพิจารณาเฉพาะ x2 จะได = − ⎛⎝⎜⎜ a11 ⎟⎞⎟⎠x1 + c1
x2 = a12 a12
x2 − ⎝⎛⎜⎜ a21 ⎠⎞⎟⎟x1 + c2
a22 a22
=> เปรยี บเสมือนวา มีสมการเสนตรง 2 เสน จุดตัดของเสน ตรงท้งั สองคือคาํ ตอบ
=> ตอ งระวงั ปญหากรณีที่ระบบสมการเปน Ill-Conditioned System
x2 -0.5x1 + x2 = 1 x2 -0.5x1 + x2 = 1 x2
-0.5x1 + x2 = 1
-x1 + 2x2 = 2 -0.46x1 + x2 = 1.1
-0.5x1 + x2 = 0.5
x1 x1 x1
ขนานกัน เปนเสนเดียวกนั (Singular) ความชันใกลก ันมาก
=> ไมมคี ําตอบ => มคี าํ ตอบไมรจู บ => ระบจุ ดุ ตัดแนนอนไมได
=> ไวตอการเกิด Round-Off
Error
3-5
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
• Determinant และ Cramer’s Rule
- Determinant => ตวั เลขตัวเดียวที่เปนตวั แทนของเมตริกสจ ัตุรสั
o 2nd Order
[A] = a11 a12
a21 a22
D= a11 a12 = a11a22 – a12a21
a21 a22
o 3rd Order
[A] = a11 a12 a13
a21 a22 a23
a31 a32 a33
D = a11 a12 a13
a21 a22 a23
a31 a32 a33
= a11 a22 a23 - a12 a21 a23 + a13 a21 a22
a32
a32 a33 a31 a33 a31
=> Determinant ของเมตริกสยอยขนาด 2 x 2 เรียกวา Minors
o Determinant ของเมตริกสทเ่ี ปน Singular = 0 (-0.5)(2) – (1)(-1) = 0
เชน D = -0.5 1 =
-1 2
o Determinant ของ Triangular Matrix = ผลคูณของสมาชิกในแนว Main Diagonal
- Cramer’s Rule => อาศัย Determinant ในการหาคา ของตัวแปร
เชน ระบบสมการ [A]⋅[X] = [C]
a11 a12 a13 x1 c1
a21 a22 a23 ⋅ x2 = c2
a31 a32 a33 x3
c3
เมื่อใช Cramer’s Rule จะไดค าของตัวแปรแตละตัวดงั น้ี
D = a11 a12 a13
a21 a22 a23
a31 a32 a33
3-6
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
x1 = c1 a12 a13
c2 a22 a23
c3 a32 a33
D
x2 = a11 c1 a13
a21 c2 a23
a31 c3 a33
D
x3 = a11 a12 c1
a21 a22 c2
a31 a32 c3
D
=> ถา ระบบสมการมมี ากกวา 3 ตวั แปร จะคํานวณยุง ยากและใชเ วลานาน
=> ถา มบี างสมการเปน Singular ซงึ่ กันและกนั จะหาคําตอบไมได เพราะตวั หาร D = 0
=> ในความเปนจรงิ แลว Cramer’s Rule กค็ ือการหาคา ตัวแปรทีละตวั ทท่ี าํ กันอยูแลว เปน ปกตนิ นั่ เอง
Naive Gauss Elimination Method
ตัวอยางที่ 3-1 การหาคา ตัวแปรดว ยวธิ ีการกําจดั ตวั แปรทลี ะตัว กรณี 2 ตัวแปร
3x1 + 2x2 = 18 … (1)
-x1 + 2x2 = 2 … (2)
วิธที ํา
ขนั้ ที่ 1 (1) * -1/3 เพอ่ื ปรบั สมั ประสทิ ธ์ิหนา x1 ใน (1) ใหเหมือนใน (2) “Forward Elimination”
-x1 – 0.67x2 = -6 … (3) “Back Substitution”
(2) – (3) เพ่อื กําจัด x1 และหา (2)’
2.67x2 = 8 … (2)’
สรุประบบสมการ
3x1 + 2x2 = 18 … (1)
… (2)’
2.67x2 = 8
ขน้ั ที่ 2 หาคา ตัวแปรดวยการแทนคายอ นกลบั
x2 = 8 / 2.67 = 3
4
x1 = [18 – 2(3)] / 3 =
3-7
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
• หลักการ (ยกตัวอยางกรณีระบบสมการ 3 ตวั แปร) a11 a12 a13 | c1
- Forward Elimination a21 a22 a23 | c2
กําจัดตัวแปรตัวแรกในสมการที่สองและสาม a31 a32 a33 | c3
กาํ จัดตวั แปรตวั ท่ีสองในสมการทส่ี าม
เหลอื สมการสดุ ทายและตัวแปรตวั สดุ ทา ยตัวเดียว a11 a12 a13 | c1
=> ได Upper Triangular Matrix 0 a22’ a23’ | c2’
0 0 a33’’ | c3’’
- Back Substitution
หาคา ตัวแปรตัวสุดทาย x3 = c3’’ / a33’’
แทนคา ยอ นกลับเพ่อื หาคาตวั แปรตวั ท่ีเหลือ x2 = (c2’-a23’x3) / a22’
x1 = (c1-a12x2-a13x3) / a11
• หลกั การทั่วไปสําหรับระบบสมการ n ตัวแปร = c1 … (1)
= c2 … (2)
- ระบบสมการ
a11x1 + a12x2 + … + a1nxn = cn … (n)
a12x2 + a22x2 + … + a2nxn
.
.
.
an1x1 + an2x2 + … + annxn
- Forward Elimination (2)’ = (2) – [(1) * a21/a11]
รอบท่ี 1 กาํ จดั x1 ในสมการ (2) ถึง (n) (n)’ = (n) – [(1) * an1/a11]
สมการ (2) จะถูกเปลี่ยนเปน (2)’ โดย
.
.
.
สมการ (n) จะถูกเปลยี่ นเปน (n)’ โดย
ระบบสมการท่ีถูกปรบั เปลี่ยนในรอบที่ 1 = c1 … (1)
a11x1 + a12x2 + … + a1nxn = c2’ … (2)’
a22’x2 + … + a2n’xn
. = cn’ … (n)’
.
.
an2’x2 + … + ann’xn
=> ในรอบน้ี สมการ (1) จะเปน Pivot Equation และสมั ประสิทธิ์ a11 จะเปน Pivot Coefficient
3-8
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
รอบที่ 2 กําจดั x2 ในสมการ (3)’ ถงึ (n)’ (n)’’ = (n)’ – [(2)’ * an2’/a22’]
สมการ (n)’ จะถกู เปลีย่ นเปน (n)’’ โดย
=> ในรอบนี้ สมการ (2)’’ จะเปน Pivot Equation และสมั ประสิทธ์ิ a22’ จะเปน Pivot Coefficient
รอบท่ี n-1 กําจัด xn-1 ในสมการ (n)(n-2)
สมการ (n)(n-2) จะถกู เปลยี่ นเปน (n)(n-1) โดย (n)(n-1) = (n)(n-2) – [(n-1)(n-2) * an,n-1(n-2)/an-1,n-1(n-2)]
=> ในรอบนี้ สมการ (n-1)(n-2) จะเปน Pivot Equation และสัมประสทิ ธิ์ an-1,n-1(n-2) จะเปน Pivot
Coefficient
ระบบสมการทีถ่ ูกปรับเปลี่ยนในรอบที่ n-1 (รอบสุดทาย)
a11x1 + a12x2 + … + a1nxn = c1 … (1)
a22’x2 + … + a2n’xn = c2’ … (2)’
. cn(n-1) … (n)(n-1)
.
. =
ann(n-1)xn
- Back Substitution
หาคาตัวแปรตวั สดุ ทา ย
xn = c (n−1)
n
a (n−1)
nn
แทนคา ยอ นกลับเพือ่ หาคา ตัวแปรตัวที่เหลือ
c (i −1) ∑ ( )n
xi = i − a (i −1) ⋅ xj โดย i = n-1, n-2, …, 3, 2, 1
ij
j =i +1
a (i −1)
ii
• ปญหาของวิธี Naive Gauss Elimination
- ทาํ ไมไดถ า Pivot Coefficient ≅ 0 หรอื มขี นาดเล็กมากเม่ือเทียบกับสมั ประสิทธิ์ตัวอ่ืนๆ
=> อาจมกี ารหารดวย 0 เกดิ ขึ้นในข้นั ตอน Back Substitution
=> แกไ ขโดยการทํา Partial Pivoting หรอื การสลับ Row
(การทํา Complete Pivoting คอื การสลับทั้ง Row และ Column)
- ทาํ ไมไ ดถ า เปน Ill-Conditioned System โดยเฉพาะกรณีที่เกือบเปน Singular คอื ความชนั ใกลก นั
มากๆ
=> จะทาํ ให Determinant ของสัมประสทิ ธิ์ ≅ 0 และผลการคํานวณจะไมแ มน ยาํ
=> แกไขโดย 1) การทาํ Scaling – ทาํ ใหสมั ประสทิ ธ์ิตวั ที่มีคามากทส่ี ดุ ในแตละแถว = 1.0
(หารตลอดหรือ Normalize ดว ยสัมประสิทธิ์ตัวท่ีใหญที่สุดในแตล ะแถว)
2) คณู ดว ยคาคงทเี่ พือ่ ใหส ัมประสทิ ธิม์ ีขนาดใหญข ้นึ – Determinant ใหญข้ึน
3-9
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
- ถา ไมท ําการแกไ ข อาจทําใหค าํ นวณไมได หรอื ไดคําตอบท่ผี ิดไปจากคา จรงิ
- บางครง้ั อาจตอ งทําทงั้ Scaling และ Pivoting
บางคร้งั อาจทาํ Scaling เพียงเพ่อื ดูวา จะตอ งทํา Pivoting กบั ระบบสมการต้ังตนหรือไม
- วธิ นี ม้ี ีชื่อวา “Naive” กเ็ พราะวาไมสามารถรองรบั ปญ หาเหลา นไี้ ด
ตวั อยางที่ 3-2 การทํา Partial Pivoting
2x2 + 3x3 = 8
4x1 + 6x2 + 7x3 = -3
2x1 + 0.01x2 + 6x3 = 5
วธิ ีทาํ สมการแรกจะใชเ ปนสมการท่ี 1 ไมไ ด เพราะสมั ประสทิ ธ์หิ นา x1 = 0
สมการสุดทายไมค วรใชเ ปน สมการท่ี 2 เพราะสมั ประสทิ ธห์ิ นา x2 มขี นาดเล็กเมื่อเทียบกับตัวอน่ื
การสลับ Row ใหเ หมาะสม อาจทําไดหลายแบบ เชน
4x1 + 6x2 + 7x3 = -3
2x2 + 3x3 = 8
2x1 + 0.01x2 + 6x3 = 5
หรือ
2x1 + 0.01x2 + 6x3 = 5
4x1 + 6x2 + 7x3 = -3
2x2 + 3x3 = 8
ตัวอยา งที่ 3-3 การทํา Scaling และการคูณดว ยคา คงท่ี
x1 + 2x2 = 10
1.1x1 + 2x2 = 10.4
วธิ ีทาํ ระบบสมการท่ีใหม าเกอื บเปน Singular คือ มีความชนั ใกลเคยี งกนั มาก ตรวจสอบไดจ ากคา Determinant
ของสัมประสิทธิ์ที่มีขนาดเล็ก
D = (1)(2) – (1.1)(2) = -0.2
หลงั จากทํา Scaling จะไดระบบสมการ
0.5x1 + x2 = 5
0.55x1 + x2 = 5.2
แตก รณนี ้ี การทํา Scaling กลบั ทาํ ใหแ ยลง เน่อื งจากคา Determinant กลับเล็กลง (D = -0.05)
หลังจากคูณระบบสมการดวย 10 จะไดระบบสมการ
10x1 + 20x2 = 100
11x1 + 20x2 = 104
กรณนี ีน้ า จะทาํ ใหระบบสมการดีข้นึ เนือ่ งจากคา Determinant มีขนาดใหญข ึ้น (D = -20)
3-10
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
ตวั อยา งที่ 3-4 จงแกระบบสมการตอไปน้ีดว ย Naive Gauss Elimination Method
3x1 - 0.1x2 - 0.2x3 = 7.85
0.1x1 + 7x2 - 0.3x3 = -19.3
0.3x1 - 0.2x2 + 10x3 = 71.4
วธิ ีทาํ จดั รปู เมตรกิ สของระบบสมการ … (1)
… (2)
3 -0.1 -0.2 | 7.85 … (3)
0.1 7 -0.3 | -19.3
0.3 -0.2 10 | 71.4
Forward Elimination … (1)
กาํ จดั x1 ในสมการ (2) และ (3) … (2)’ = (2) – [(1) * 0.1/3]
… (3)’ = (3) – [(1) * 0.3/3]
3 -0.1 -0.2 | 7.85
0 7.0033 -0.2933 | -19.5617
0 -0.19 10.02 | 70.615
กําจดั x2 ในสมการ (3)’ -0.2 | 7.85 … (1)
3 -0.1 -0.2933 | -19.5617 … (2)’
0 7.0033 10.012 | 70.0843 … (3)’’ = (3)’ – [(2)’ * -0.19/7.0033]
00
Back Substitution 70.0843 = 7.0000
x3 =
x2 = 10.012 = -2.5000
x1 = − 19.5617 − (−0.2933)(7) 3.0000
สรุปคําตอบ 7.0033
7.85 − (−0.1)(−2.5) − (−0.2)(7) =
3
x1 = 3.00 x2 = -2.50 x3 = 7.00
3-11
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
Gauss-Jordan Method และ Matrix Inverse Method
Gauss-Jordan Method
• คลา ย Gauss Elimination Method แตแทนท่จี ะทาํ ใหเมตริกสส มั ประสิทธ์ิกลายเปน Upper Triangular
Matrix กท็ ําใหเ ปน เมตริกสเอกลักษณแ ทน ซ่งึ จะทาํ ใหไ มตองทาํ Back Substitution น่นั คอื แทนท่ีจะ
กําจดั ตัวแปรเฉพาะในสมการถัดๆ ไป กท็ าํ การกาํ จดั ตัวแปรในทกุ สมการเลย
• หลักการ (ยกตวั อยางกรณีระบบสมการ 3 ตวั แปร)
- เปล่ยี นเมตริกสสัมประสิทธใิ์ หเปน เมตริกสเ อกลกั ษณด วยการทํา Elimination
a11 a12 a13 | c1 x1 c1‘’’
a21 a22 a23 | c2 x2 = c2‘’’
a31 a32 a33 | c3 x3 c3‘’’
1 0 0 | c1’’’
0 1 0 | c2’’’
0 0 1 | c3’’’
• ขอ ดี => ไมตองทาํ Back Substitution
=> ใชห า Matrix Inverse ไดส ะดวก
• ขอดอย => มีปญ หาคลายกับ Gauss Elimination Method ซ่งึ แกไขไดดวย Pivoting และ Scaling
เชนเดียวกัน
=> เทยี บกับ Gauss Elimination Method แลว จํานวนครงั้ ในการคํานวณเพ่ิมขึ้นประมาณ 50%
ตัวอยางที่ 3-5 จงแกร ะบบสมการตอ ไปน้ดี วย Gauss-Jordan Method
3x1 - 0.1x2 - 0.2x3 = 7.85
0.1x1 + 7x2 - 0.3x3 = -19.3
0.3x1 - 0.2x2 + 10x3 = 71.4
วิธีทํา จัดรูปเมตรกิ สของระบบสมการ … (1)
… (2)
3 -0.1 -0.2 | 7.85 … (3)
0.1 7 -0.3 | -19.3
0.3 -0.2 10 | 71.4
3-12
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
รอบที่ 1 -0.0667 | 2.6167 … (1)’ = (1) / 3
- Normalize สมการ (1) -0.3 | -19.3 … (2)
10 | 71.4 … (3)
1 -0.0333
0.1 7
0.3 -0.2
- กาํ จัด x1 ในสมการ (2) และ (3) … (1)’
1 -0.0333 -0.0667 | 2.6167 … (2)’ = (2) – [(1)’ * 0.1]
0 7.0033 -0.2933 | -19.5617 … (3)’ = (3) – [(1)’ * 0.3]
0 -0.19 10.02 | 70.615
รอบที่ 2 -0.0667 | 2.6167 … (1)’
- Normalize สมการ (2)’ -0.0419 | -2.7932 … (2)’’ = (2)’ / 7.0033
10.02 | 70.615 … (3)’
1 -0.0333
01
0 -0.19
- กําจัด x2 ในสมการ (1)’ และ (3)’ … (1)’’ = (1)’ – [(2)’’ * -0.0333]
1 0 -0.0681 | 2.5236 … (2)’’
0 1 -0.0419 | -2.7932 … (3)’’ = (3)’ – [(2)’’ * -0.19]
0 0 10.012 | 70.0843
รอบท่ี 3 -0.0681 | 2.5236 … (1)’’
- Normalize สมการ (3)’’ -0.0419 | -2.7932 … (2)’’
… (3)’’’ = (3)’’ / 10.012
10 1 | 7.0003
01
00
- กาํ จดั x3 ในสมการ (1)’’ และ (2)’’ | 3.0000 … (1)’’’ = (1)’’ – [(3)’’’ * -0.0681]
100 | -2.5000 … (2)’’’ = (2)’’ – [(3)’’’ * -0.0419]
010 | 7.0003 … (3)’’’
001
สรปุ คําตอบ x1 = 3.00 x2 = -2.50 x3 = 7.00
3-13
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
Matrix Inverse Method
• จากระบบสมการ [A]⋅[X] = [C]
[X] = [A]-1⋅[C]
จะไดคาของตวั แปร
• หลกั การ (ยกตัวอยา งกรณีระบบสมการ 3 ตวั แปร)
- หาอนิ เวอรสของเมตรกิ สสัมประสทิ ธโ์ิ ดยใช Gauss-Jordan Method
a11 a12 a13 | 1 0 0
a21 a22 a23 | 0 1 0
a31 a32 a33 | 0 0 1
1 0 0 | a11-1 a12-1 a13-1
0 1 0 | a21-1 a22-1 a23-1
0 0 1 | a31-1 a32-1 a33-1
- หาคาของตวั แปรจาก [X] = [A]-1⋅[C]
• ขอ ดี => เปน วธิ ที างคณิตศาสตรท่ีตรงไปตรงมา เขา ใจไดง าย
=> เก็บ [A]-1 ไวใชไ ดต ลอด สําหรับกรณที ่รี ะบบสมการมี [A] เหมอื นเดมิ แต [C] เปล่ยี น
• ขอ ดอย => มปี ญ หาคลายกบั Gauss Elimination Method ซ่งึ แกไขไดดว ย Pivoting และ Scaling
เชนเดยี วกนั
=> เทียบกับ Gauss Elimination Method แลว จํานวนครัง้ ในการคํานวณเพ่ิมขน้ึ ประมาณ 50%
• การตรวจสอบวาระบบสมการอาจจะเปน Ill-Conditioned System หรอื ไมด วยการใช Matrix Inverse
- ผลคณู ระหวา ง [A] และ [A]-1 ตองใกลเคียง [I] ถา ไม อาจเปน Ill-Conditioned System
- หาอินเวอรส ของ [A]-1 อีกคร้ัง ตองใกลเคียง [A] ถาไม อาจเปน Ill-Conditioned System
- หลังจากทาํ Scaling เมตรกิ ส [A] และหา [A]-1 แลว พบวาสมาชกิ ใน [A]-1 หลายตัวมคี า มากกวา 1
อาจเปน Ill-Conditioned System
• วิธีทางเลอื กท่ีสามารถใชในการตรวจสอบวาระบบสมการอาจจะเปน Ill-Conditioned System หรือไม
แทนวิธีทกี่ ลา วถึงดานบน คอื การใช Matrix Condition Number ซึง่ เปน เลขตัวเดยี วท่อี าจดูงายกวา
- Matrix Condition Number ||A||⋅||A-1||
Cond [A] =
ถา Cond [A] >>> 1 อาจเปน Ill-Conditioned System
3-14
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
- Norm ของ Matrix สามารถหาได 2 แบบ
o Frobenius Norm หรือ Euclidean Norm
||A||e = nn
∑ ∑ ai2j
i =1 j =1
=> รากท่สี องผลรวมของคากาํ ลังสองของสมาชกิ ทกุ ตัว
=> เปรยี บเสมือนเปนการบอกขนาดของเมตรกิ ส
o Uniform Matrix Norm หรือ Row-Sum Norm
||A||∞ = n
∑max
| aij |
1≤i ≤n
j =1
=> คา ที่มากที่สดุ ของผลรวมของขนาดของสมาชกิ ในแตละแถว
=> นิยมใชม ากกวา Frobenius Norm เพราะคาํ นวณงา ยกวา
ตัวอยา งท่ี 3-6 จงแกระบบสมการตอ ไปนีด้ วย Matrix Inverse Method
3x1 - 0.1x2 - 0.2x3 = 7.85
0.1x1 + 7x2 - 0.3x3 = -19.3
0.3x1 - 0.2x2 + 10x3 = 71.4
วธิ ที ํา จัดรูปเมตริกสข องระบบสมการ
3 -0.1 -0.2 | 1 0 0
0.1 7 -0.3 | 0 1 0
0.3 -0.2 10 | 0 0 1
หาอินเวอรสของเมตริกสสมั ประสิทธิ์ 0.0049 0.0068
1 0 0 | 0.3325 0.1423 0.0042
0 1 0 | -0.0052 0.0027 0.0999
0 0 1 | -0.0108
หาคาของตัวแปร 0.3325 0.0049 0.0068 7.85 3.0004
-0.0052 0.1423 0.0042 ⋅ -19.3 = -2.4881
x1 -0.0108 0.0027 0.0999 71.4 7.0003
x2 =
x3
สรุปคําตอบ x1 = 3.00 x2 = -2.50 x3 = 7.00
3-15
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
LU Decomposition Method
• เปน วธิ หี นึง่ ในกลมุ วิธี Elimination
• เหมาะสําหรับกรณีท่รี ะบบสมการมี [A] เหมอื นเดิม แต [C] เปลี่ยน
• หลักการ (ยกตวั อยางกรณีระบบสมการ 4 ตวั แปร และ Crout Decomposition)
- ระบบสมการ [A]⋅[X] = [C]
- Decomposition => แยก [A] ออกเปน [L] และ [U]
[A] = [L]⋅[U]
โดย [L] = l11 0 0 0 [U] = 1 u12 u13 u14
l21 l22 0 0 0 1 u23 u24
l31 l32 l33 0 0 0 1 u34
l41 l42 l43 l44 0 001
ดงั นน้ั จะสามารถเขยี นระบบสมการไดเปน
[L]⋅[U]⋅[X] = [C]
ถากาํ หนดให [D] เปน เมตรกิ สของคาคงทีท่ ห่ี าไดจ าก
[U]⋅[X] = [D]
จะได
[L]⋅[D] = [C]
- Forward Substitution => หาคา [D] จาก [L]⋅[D] = [C]
l11 0 0 0 d1 c1 d1 = c1 / l11
l21 l22 0 0 ⋅ d2 = c2 => d2 = (c2 – l21d1) / l22
l31 l32 l33 0 d3 c3 d3 = (c3 – l31d1 – l32d2) / l33
l41 l42 l43 l44 d4 c4 d4 = (c4 – l41d1 – l42d2 – l43d3) / l44
- Backward Substitution => หาคา [X] จาก [U]⋅[X] = [D]
1 u12 u13 u14 x1 d1 x1 = d1 – u12x2 – u13x3 – u14x4
0 1 u23 u24 ⋅ x2 = d2 => x2 = d2 – u23x3 – u24x4
0 0 1 u34 x3 d3 x3 = d3 – u34x4
0 0 0 1 x4 d4 x4 = d4
• จดุ สําคัญของวธิ ีนี้ คือ วธิ ีการแยก [A] ใหเปน [L] และ [U] ซ่งึ มี 3 วิธีท่นี ิยมใชกนั ไดแ ก
- Crout Decomposition
- Doolittle Decomposition
- Cholesky Decomposition
3-16
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
• Crout Decomposition
=> สมาชิกในแนวเสนทแยงมมุ ของ [U] มคี า เทา กับ 1
[L]⋅[U] = [A]
l11 0 0 0 1 u12 u13 u14 a11 a12 a13 a14
l21 l22 0 0 ⋅ 0 1 u23 u24 = a21 a22 a23 a24
l31 l32 l33 0 0 0 1 u34 a31 a32 a33 a34
l41 l42 l43 l44 0001 a41 a42 a43 a44
- Column ที่ 1 ของ [L]
l11 = a11 l21 = a21 l31 = a31 l41 = a41
- Row ที่ 1 ของ [U]
l11u12 = a12 l11u13 = a13 l11u14 = a14
u =12 a12
u =13 a13 u =14 a14
l11
l11 l11
- Column ที่ 2 ของ [L]
l21u12 + l22 = a22 l31u12 + l32 = a32 l41u12 + l42 = a42
l22 = a22 – l21u12 l32 = a32 – l31u12 l42 = a42 – l41u12
- Row ท่ี 2 ของ [U]
l21u13 + l22u23 = a23 l21u14 + l22u24 = a24
u =23 a23 − l u21 13 u =24 a24 − l21u14
l22 l22
- Column ท่ี 3 ของ [L]
l31u13 + l32u23 + l33 = a33 l41u13 + l42u23 + l43 = a43
l33 = a33 – l31u13 – l32u23 l43 = a43 – l41u13 – l42u23
- Row ท่ี 3 ของ [U]
l31u14 + l32u24 + l33u34 = a34
u =34 a34 − l31u14 − l32u24
l33
- Column ที่ 4 ของ [L]
l41u14 + l42u24 + l43u34 + l44 = a44
l44 = a44 – l41u14 – l42u24 – l43u34
• รูปทว่ั ไปสาํ หรบั LU Decomposition Method ทใี่ ช Crout Decomposition
- Crout Decomposition
1) li1 = ai1 โดย i = 1, 2, …, n
u1j =
a1j โดย j = 2, 3, …, n
l 11
3-17
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
2) สําหรับ j = 2, 3, …, n-1 โดย i = j, j+1, …, n
l = ∑j−1 k = j+1, j+2, …, n
ij aij − (l ik ukj ) i = 2, 3, …, n
k =1 i = n-1, n-2, …, 1
ujk = j −1 โดย
∑ajk − (l jiuik )
i =1
l jj
3) lnn = n −1
∑ann − (l unk kn )
k =1
- Forward Substitution
1) d1 = c1
l11
2) di = i −1 โดย
∑ci − (l ij d j )
j =1
l ii
- Backward Substitution
1) xn = dn
2) xi = โดยn
∑d i − (uij x j )
j =i +1
• Doolittle Decomposition
=> ตา งกับ Crout Decomposition ตรงที่สมาชิกในแนวเสนทแยงมมุ ของ [L] จะมีคา เทา กบั 1 และสมาชิก
ของ [L] และ [U] จะไดมาจากขน้ั ตอน Forward Elimination ของ Naive Gauss Elimination Method
[L]⋅[U] = [A]
1 0 0 u11 u12 u13 a11 a12 a13
l21 1 0⋅0 u22 u23 = a21 a22 a23
l31 l32 1 0 0 u33 a31 a32 a33
โดย u11 u12 u13 a11 a12 a13
0 u22 u23 = 0 a22’ a23’
0 0 u33 0 0 a33’’
และ 100 10 0
l21 1 0 = f21 1 0
l31 l32 1 f31 f32 1
โดย f =21 a21 f =31 a31 f =32 a3' 2
a2' 2
a11 a11
=> Crout Decomposition คอ นขา งสะดวกกวาเนื่องจากใชเ พียงการคูณเมตริกสเทานั้น
3-18
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
• Cholesky Decomposition
=> ตา งกับ Crout Decomposition ตรงท่ีจะแยก [A] ออกเปน [L] และ [L]T
[A] = [L]⋅[L]T
โดย [L] = l11 0 0
l21 l22 0
l31 l32 l33
=> รปู ทวั่ ไปสําหรบั Cholesky Decomposition
1) l11 = a11
2) lii = i −1 โดย i = 2, 3, …, n
j = 2, 3, …, i-1 และ j < i
∑aii − li2k
k =1
j −1
3) l = โดย∑aij − l ik l jk
ij k =1
l jj
• ขอดี => สะดวก เขา ใจไดงาย โดยเฉพาะสะดวกในการเขยี นโปรแกรมคอมพิวเตอร
=> การคาํ นวณงา ยกวา Gauss Elimination Method และ Gauss-Jordan เน่อื งจากใชเ พียงการ
คณู เมตรกิ สเทานั้น
=> เกบ็ [L] และ [U] ไวใชไดตลอด สาํ หรับกรณีท่ีระบบสมการมี [A] เหมือนเดมิ แต [C] เปล่ยี น
• ขอดอย => มีปญ หาคลายกับ Gauss Elimination Method ซ่งึ แกไขไดดว ย Pivoting และ Scaling
เชนเดยี วกัน
• การใช LU Decomposition Method ในการหาอนิ เวอรสของเมตรกิ สสมั ประสิทธ์ิ [A]-1
=> ในขน้ั ตอน Forward Substitution ใหเปลี่ยนจาก [C] เปน แตละ Column ของเมตรกิ สเอกลักษณ [I]
จากน้นั หา [D] และ [X] ตามปกติ คาตัวเลขใน [X] ที่ไดจะเปนสมาชิกในแตล ะ Column ใน [A]-1
เชน ในระบบสมการ 3 ตวั แปร จะได Column ที่ 1 ของ [A]-1
ใช 1 แทน [C]
0
0
ใช 0 แทน [C] จะได Column ท่ี 2 ของ [A]-1
1
0
ใช 0 แทน [C] จะได Column ที่ 3 ของ [A]-1
0
1
3-19
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
ตวั อยางที่ 3-7 จงแกร ะบบสมการตอไปน้ีดว ย LU Decomposition Method
3x1 - 0.1x2 - 0.2x3 = 7.85
0.1x1 + 7x2 - 0.3x3 = -19.3
0.3x1 - 0.2x2 + 10x3 = 71.4
วธิ ีทาํ Decomposition 01 u12 u13 3 -0.1 -0.2
0⋅0 7 -0.3
l11 0 l33 0 1 u23 = 0.1 -0.2 10
l21 l22
l31 l32 01 0.3 1 -0.0333 -0.0667
0 1 -0.0419
Column ที่ 1 ของ [L] 001
l11 = 3 l21 = 0.1 l31 = 0.3
Row ที่ 1 ของ [U]
l11u12 = -0.1 l11u13 = -0.2
u12 = -0.0333 u13 = -0.0667
Column ที่ 2 ของ [L]
l21u12 + l22 = 7 l31u12 + l32 = -0.2
l22 = 7.0033 l32 = -0.19
Row ท่ี 2 ของ [U]
l21u13 + l22u23= -0.3
u23 = -0.0419
Column ท่ี 3 ของ [L]
l31u13 + l32u23 + l33 = 10
l33 = 10.012
สรปุ [L] = 3 0 0 [U] =
0.1 7.0033 0
0.3 -0.19 10.012
Forward Substitution
300 d1 7.85 d1 = 2.6167
= -19.3 => d2 = -2.7923
0.1 7.0033 0 ⋅ d2
71.4 d3 = 7.0000
0.3 -0.19 10.012 d3
Backward Substitution
1 -0.0333 -0.0667 x1 2.6167 x1 = 3.0004
0 1 -0.0419 ⋅ x2 = -2.7923 => x2 = -2.4999
001 x3 7.0000 x3 = 7.0000
สรปุ คาํ ตอบ x1 = 3.00 x2 = -2.50 x3 = 7.00
3-20
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
Gauss-Seidel Method
• เปนวิธปี ระเภท Iteration มหี ลกั การคลายกับวิธี Simple One-Point Iteration
• เหมาะกบั ระบบสมการขนาดใหญก วา 100 ตัวแปร เนอ่ื งจากไมมปี ญ หา Round-Off Error เหมอื นวธิ ใี น
กลุม Elimination
• เปนวิธที ่ีนยิ มใชมากทีส่ ุดในการแกระบบสมการเชิงเสน
• หลักการ
- ระบบสมการ c1
a11x1 + a12x2 + a13x3 + … + a1nxn = c2
a21x1 + a22x2 + a23x3 + … + a2nxn = .
.. .
.. .
.. cn
an1x1 + an2x2 + an3x3 + … + annxn =
- จดั ระบบสมการใหอ ยูในรปู ทที่ าํ Iteration ได
- เลือกคา เรมิ่ ตนสาํ หรบั ตัวแปรแตล ะตวั และคาํ นวณคา ตัวแปรคาใหมท ลี ะตัว โดยคาตัวแปรคาใหมที่
ไดลา สดุ จะถกู ใชใ นสมการถัดๆ ไปทันที คาตัวแปรคาใหมแตล ะตัวทไี่ ดถอื วาเปน คา ประมาณของ
คาํ ตอบ
=xi +1 c1 − a12x2i − a13x3i − ... − a1n xni
1 a11
=xi +1 c2 − a21x1i +1 − a23x3i − ... − a2n xni
2 a22
=x i +1 c3 − a31 x i +1 − a32 x i +1 − ... − a 3n x i
3 1 2 n
a33
..
..
..
=x i +1 cn − a n1 x i +1 − an2 x i +1 − ... − a n,n −1 x i +1
n 1 2 n −1
ann
- คํานวณ Error ของแตล ะตัวแปร
=ε axn xi +1 − xni × 100%
n
xi +1
n
ถา εaxn < εsxn => หยุดคาํ นวณได และใช xni+1 ในรอบสุดทา ยเปนคาํ ตอบ
ถา ไม เริม่ คํานวณรอบใหมโดยใช xni+1 ในรอบปจจบุ นั เปน xni ในรอบถัดไป
3-21
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
• ขอดี => เขาใจไดง าย
=> เหมาะกบั ระบบสมการขนาดใหญกวา 100 ตวั แปร เนื่องจากไมมีปญ หา Round-Off Error
จากการลบสมการไปมาเหมอื นวธิ ีในกลุม Elimination
• ขอ ดอย => คา ของสมาชิกในแนวเสน ทแยงมมุ หลกั ของเมตรกิ สสัมประสทิ ธจ์ิ ะเปน ศนู ยไมไ ดและไมควรมี
คา เล็กมากเมื่อเทียบกับสมั ประสิทธิต์ ัวอ่ืนๆ แกไขไดด ว ย Pivoting
=> อาจลูเขาหาคําตอบชา ถา ไมเปน Diagonal Dominant คอื ถาสมาชิกในแนวเสนทแยงมมุ
หลักของเมตริกสส มั ประสิทธิ์ไมม คี ามากเม่ือเทยี บกับสัมประสิทธติ์ ัวอื่นๆ
=> อาจไมลเู ขาหาคําตอบ
=> เน่อื งจากเปนวธิ ี Iteration คาํ ตอบท่ไี ดจ ึงเปนคาคาํ ตอบโดยประมาณ
• การตรวจสอบโอกาสในการลูเขาหาคาํ ตอบของ Gauss-Seidel Method
- ถามีระบบสมการ u(x, y, z) = 0 v(x, y, z) = 0 และ w(x, y, z) = 0
การใช Gauss-Seidel Method จะมีโอกาสลเู ขาหาคาํ ตอบสงู เมอ่ื
∂u + ∂v + ∂w < 1
∂x ∂x ∂x
∂u + ∂v + ∂w < 1
∂y ∂y ∂y
∂u + ∂v + ∂w < 1
∂z ∂z ∂z
- การใช Guass-Seidel Method จะมโี อกาศลูเขาหาคําตอบสูงและเร็ว ถา ขนาดของสมาชกิ ในแนวเสน
ทแยงมมุ หลกั ของเมตรกิ สสัมประสทิ ธใ์ิ นแตละแถวมคี ามากกวาผลรวมของสมั ประสิทธติ์ ัวอืน่ ๆ ใน
แถวเดียวกนั > n
|aii|
∑ | aij |
j =1
J≠i
• Relaxation => เทคนคิ ในการลดหรือเพิม่ ความเรว็ ในการลูเขา หาคําตอบ
คาตวั แปรตวั ใหมทค่ี าํ นวณไดจ ะถูกปรบั คาดว ย Weighting Factor λ กอนที่จะนาํ ไปใช
xnew = λ⋅xnew + (1 – λ)⋅xold
=> Underrelaxation (0 < λ < 1) = ลดความเร็ว ทําใหท่ีจะไมลเู ขาหาคําตอบ อาจลเู ขา หาคาํ ตอบได
=> Overrelaxation (1 < λ < 2) = เพิ่มความเร็ว ทาํ ใหที่ลเู ขา หาคําตอบ จะลูเ ขาหาคาํ ตอบเรว็ ข้ึน
=> การใช Gauss-Seidel Method ตามปกตกิ ็คอื กรณที ่ี λ = 1 นน่ั เอง
• Jacobi Iteration Method มหี ลกั การคํานวณเหมือนกับ Gauss-Seidel Method ทกุ ประการ ตา งกนั ตรงที่
Jacobi Iteration Method จะไมใชคา ตวั แปรคา ใหมลาสุดในสมการถดั ๆ ไปทันทใี นรอบเดียวกัน แตจะใช
คาตวั แปรเร่มิ ตนชดุ เดยี วในการหาคาตวั แปรคา ใหมใ หไดครบทกุ ตวั กอนทจ่ี ะใชคาตวั แปรคา ใหมท ้งั หมด
เปน คาเรมิ่ ตนในรอบถัดไปพรอมๆ กนั
=> โดยท่วั ไปแลว Jacobi Iteration Method จะลเู ขาหาคําตอบชา กวา Gauss-Seidel Method
3-22
Lecture Notes – Numerical Methods for Engineers Chapter 3 Systems of Linear Algebraic Equations
ตัวอยางที่ 3-8 จงแกร ะบบสมการตอ ไปนดี้ วย Gauss-Seidel Method
3x1 - 0.1x2 - 0.2x3 = 7.85
0.1x1 + 7x2 - 0.3x3 = -19.3
0.3x1 - 0.2x2 + 10x3 = 71.4
กาํ หนดเง่ือนไขการหยุดคาํ นวณ |εs| < 0.5%
วธิ ีทาํ จดั รูประบบสมการ
x1 =
7.85 − (−0.1)x2 − (−0.2)x3
x2 = 3
x3 = − 19.3 − (0.1)x1 − (−0.3)x3
7
71.4 − (0.3)x1 − (−0.2)x2
10
เลอื กคา เร่มิ ตน x1 = x2 = x3 = 0
รอบที่ 1 = 7.85 − (−0.1)(0) − (−0.2)(0) = 2.6167
x1 = -2.7945
3 = 7.0056
x2
= − 19.3 − (0.1)(2.6167) − (−0.3)(0)
x3
7
= 71.4 − (0.3)(2.6167) − (−0.2)(−2.7945)
10
รอบที่ 2 = 7.85 − (−0.1)(−2.7945) − (−0.2)(7.0056) = 2.9905 (|εa| = 12.50%)
x1 = -2.4996 (|εa| = 11.80%)
3 = 7.0003 (|εa| = 0.08%)
x2
= − 19.3 − (0.1)(2.9905) − (−0.3)(7.0056) (|εa| = 0.32%)
x3 (|εa| = 0.02%)
7 (|εa| = 0.00%)
= 71.4 − (0.3)(2.9905) − (−0.2)(−2.4996)
10
รอบที่ 3 = 7.85 − (−0.1)(−2.4996) − (−0.2)(7.0003) = 3.0000
x1 = -2.5000
x2 3 = 7.0000
x3
= − 19.3 − (0.1)(3.0000) − (−0.3)(7.0003)
สรุปคาํ ตอบ
7
= 71.4 − (0.3)(3.0000) − (−0.2)(−2.5000)
10
x1 = 3.00 x2 = -2.50 x3 = 7.00
3-23