Relaxation
Techniques for Solving
Linear Systems
Numerical
Computation and
Analysis
นำเสนอโดย
ด.ช. ที่หนึ่ง เทพปาน (แชมป์) ม.4/2 เลขที่ 17
ระเบียบวิธีผ่อนปรนสืบเนื่อง
Successive Over-Relaxation Method
ระเบียบวิธีการผ่อนปรนสืบเนื่อง
ภาพรวม
• คล้ายกับระเบียบวิธีการทำซ้ำแบบ Jacobi และแบบ Gauss-Seidel
• สร้างความสัมพันธ์เวียนเกิด (Recurrency Relations)
• มี “ค่าน้ำหนัก”
• ค่าน้ำหนัก สามารถมีค่าอยู่ระหว่าง 0 ถึง 2
• - อยู่ระหว่าง 0 ถึง 1 จะเรียกว่า การผ่อนปรนพร่องสืบเนื่อง (Under-
Relaxation)
• - อยู่ระหว่าง 1 ถึง 2 จะเรียกว่า การผ่อนปรนเกินสืบเนื่อง (Over-
Relaxation)
• - เท่ากับ 1 จะเรียกว่า ระเบียบวิธีการทำซ้ำแบบ Gauss-Seidel
ทบทวน : ระเบียบวิธีทำซ้ำแบบ Jacobi
● ทำการเขียนสมการย่อยให้อยู่ในรูป
● กำหนดค่าเริ่มต้นของ x
● คำนวณโดยเริ่มจากค่า และแทนลงในสมการ
● คำนวณค่า ใหม่จากสมการอีกครั้ง
● ค่าความผิดพลาดทียอมรับได้
[
𝑎11 𝑎1 2 𝑎1 3
𝑎2 1 𝑎22 𝑎23
𝑎3 1 𝑎32 𝑎33
]{
𝑥1
𝑥2
𝑥3
}=
{
𝑏1
𝑏2
𝑏3
}
ทบทวน : ระเบียบวิธีทำซ้ำแบบ Gauss-Seidel
● ขั้นตอนเหมือนกันกับระเบียบวิธีทำซ้ำแบบ Jacobi
● ค่าใหม่ของ ที่คำนวณได้จากสมการย่อย จะถูกนำมาใช้
ใน การคำนวณค่า
ระเบียบวิธีการผ่อนปรนสืบเนื่อง
(Successive Relaxation Method)
■ Definition (นิยาม/คำจำกัดความ)
The residual vector (r) for จะมีความเกี่ยวเนื่องกับ
ระบบสมการเชิงเส้นดังนี้
เป็นค่าประมาณของคำตอบของระบบสมการเชิงเส้น
ในรูป “Ax = b” โดยที่ค่าประมาณของของตัวแปร x
เป็นสมาชิกในปริภูมิ n มิติของจำนวนจริง ( )
คือ ค่าน้ำหนัก หรือ ตัวประกอบถ่วงน้ำหนัก
ซึ่ง เป็นพารามิเตอร์สำหรับการคิดคำนวณใน
ระเบียบวิธีการผ่อนปรนสืบเนื่อง
● 0< <1
(Successive Under-Relaxation
Method)
● 1< <2
(Successive Over-Relaxation Method)
● = 1
(Gauss-Siedel Iterative Techniques)
ระเบียบวิธีการผ่อนปรนสืบเนื่อง
(Successive Relaxation Method)
มีการปรับเปลี่ยนเป็นการถ่วงน้ำหนักระหว่างค่าของตัวแปรเก่าจากรอบที่แล้วกับค่าของตัวแปร
ใหม่ในรอบปัจจุบัน ซึ่งอยู่ในรูปดังนี้
โดยที่ ดำเนินการตามระเบียบวิธีการทำซ้ำแบบ Gauss-Seidel และ ค่าถ่วงน้ำหนัก อยู่
ระหว่างค่า 0 ถึง 2
สรุปขั้นตอนการคำนวณ ระเบียบวิธีการผ่อนปรนสืบเนื่อง
(Successive Relaxation Method)
1. ทำการเขียนสมการย่อยให้อยู่ในรูป
2. คำนวณโดยเริ่มจากเดาค่า
3. ค่าใหม่ของ ที่คำนวณได้จากสมการย่อย xi จะถูกนำมาใช้ใน การคำนวณค่า
4. ค่าใหม่ของ ที่คำนวณได้จะต้องมีการคูณตัวถ่วงน้ำหนัก
ทฤษฎีบทที่เกี่ยวข้องกับระเบียบวิธีการผ่อนปรนสืบเนื่อง
■ ทฤษฎีบท Kahan
■ ทฤษฎีบท Ostrowski-Reich
ถ้า มีค่าอยู่ ในช่วง (0,2) แล้วระเบียบวิธีผ่อนปรนเกินสืบเนื่องจะลู่เข้าสำหรับทุกเวกเตอร์ค่าตัวแปรเริ่มต้น
และถ้าสมาชิกในแนวเส้นทแยงมุมทุกตัวไม่มีค่าเท่ากับ 0 แล้ว นั่นหมายความว่าระเบียบวิธี
ผ่อนปรนเกินสืบเนื่องจะลู่เข้า ก็ต่อเมื่อ มีค่าอยู่ ในช่วง (0,2) เช่นเดียวกัน
ถ้าหากเมทริกซ์เป็นเมทริกซ์แบบ Positive Definite Matrix และค่าน้ำหนัก ( )มีค่าอยู่ ในช่วง (0,2) แล้วระเบียบ
วิธีผ่อนปรนเกินสืบเนื่องจะลู่เข้าสำหรับทุกเวกเตอร์ค่าตัวแปรเริ่มต้น
เพิ่มเติม*** และถ้าเมทริกซ์เป็นเมทริกซ์เฮอร์มิเชียนที่หาผกผันได้ ซึ่งทุกสมาชิกในแนวทแยงมุมเป็นจำนวนจริง
บวก จะได้ว่าระเบียบวิธีผ่อนปรนเกินสืบเนื่องจะลู่เข้าสำหรับทุกเวกเตอร์ค่าตัวแปรเริ่มต้นใด ๆ
Example1
จาก Ax = b
กำหนดให้ 4x1 + 3x2= 24,
3x1 + 4x2 − x3 = 30,
− x2 + 4x3 = -24,
ซึ่งมีคำตอบ (3,4, 5)
− t
ให้เปรียบเทียบจำนวนครั้งในการทำซ้ำระหว่างวิธีการของ Gauss-Seidel และวิธีการ SOR โดยใช้
ω=1.25 และจุดเริ่มต้น x(0)
=(1,1,1)t
สำหรับทั้งสองวิธี
Example1
วิธีการของ Gauss-Seidel
สำหรับ k = 1, 2, … ,
จะได้
x1
(k)
= 0.75
− x2
(k-1)
+ 6
x2
(k)
= 0.75
− x1
(k)
+ 0.25x3
(k-1)
+ 7.5
x3
(k)
= 0.25x2
(k)
6
−
วิธีการ SOR
เมื่อ ω=1.25
จะได้
x1
(k)
= 0.25
− x1
(k-1)
0.9375
− x2
(k-1)
+ 7.5
x2
(k)
= 0.9375
− x1
(k)
0.25
− x2
(k-1)
+ 0.3125x3
(k-1)
+ 9.375
x3
(k)
= 0.3125x2
(k)
0.25
− x3
(k-1)
7.5
−
จาก Ax = b
กำหนดให้ 4x1 + 3x2 = 24,
3x1 + 4x2 − x3 = 30,
− x2 + 4x3 = -24, ที่ (3,4, 5)
− t
โดย ω=1.25 และ x(0)
=(1,1,1)t
Example1
Gauss-Seidel SOR
จากตารางแสดงการคำนวณผลลัพธ์ในแต่ละรอบ จะเห็นว่าวิธี Gauss-Seidel ต้องทำซ้ำทั้งหมด 34 ครั้ง เพื่อให้ได้ความแม่นยำถึง 7 ตำแหน่งทศนิยม ขณะที่วิธี SOR ทำซ้ำเพียง 14 ครั้ง
k x1
(k)
x2
(k)
x3
(k)
0 1.0000000 1.0000000 1.0000000
1 5.2500000 3.8125000 -5.0468750
2 3.1406250 3.8828125 -5.0292969
3 3.0878906 3.9267578 -5.0183105
… … … …
32 3.0000001 3.9999999 -5.0000000
33 3.0000001 3.9999999 -5.0000000
34 3.0000000 4.0000000 -5.0000000
35 3.0000000 4.0000000 -5.0000000
k x1
(k)
x2
(k)
x3
(k)
0 1.0000000 1.0000000 1.0000000
1 6.3125000 3.5195313 -6.6501465
2 2.6223145 3.9585266 -4.6004238
3 3.1333027 4.0102646 -5.0966863
… … … …
12 2.9999993 4.0000001 -4.9999996
13 3.0000001 4.0000000 -5.0000001
14 3.0000000 4.0000000 -5.0000000
15 3.0000000 4.0000000 -5.0000000
Code Program1 for the Example1
ผลลัพธ์
Code Program1 for the Example1 (cont.)
ผลลัพธ์เมื่อ w=1 (Gauss-Seidel Method)
Code Program2 for the Example1
Code Program2 for the Example1 (cont.)
กำหนดตัวแปรเริ่มต้นดังนี้ x=1, w=1.25 ผลลัพธ์
Code Program2 for the Example1 (cont.)
เปรียบเทียบการทำงานกับ Gauss-Seidel Method
กำหนดตัวแปรเริ่มต้นดังนี้ x=1, w=1
ผลลัพธ์
การหาค่าถ่วงน้ำหนักที่เหมาะสม
ทฤษฎีบท
● ถ้า เป็นเมตริกซ์สามเหลี่ยมแนวแทยงกำหนดบวก ที่มีรัศมีสเปกตรัม แล้ว จะมีค่าถ่วงน้ำ
หนัก ที่เหมาะสมที่สุดสำหรับระเบียบวิธีผ่อนปรนเกินสืบเนื่องเท่ากับ
และจะได้ว่า
Example 2
จงหาค่าถ่วงน้ำหนักที่เหมาะสมที่สุดสำหรับระเบียบวิธีผ่อนปรนเกินสืบเนื่องสำหรับเมตริกซ์
Example 2
1. จากโจทย์จะพบว่าเมตริกซ์เป็นเมตริกซ์สามเหลี่ยมแทยงและสมมาตร
2. คำนวณหา determinant ของ leading principal sub matrix จะได้
3. เนื่องจาก determinant ของ leading principal sub matrix ทุกตัวของ มากกว่า 0
จะได้ว่า เป็นเมตริกซ์กำหนดบวก
𝐴=
[
4 3 0
3 4 −1
0 − 1 4 ]
Example 2 (cont.)
5. คำนวณหารัศมีสเปกตรัม โดย
𝐴=
[
4 3 0
3 4 −1
0 − 1 4 ]
Example 2 (cont.)
5. คำนวณหารัศมีสเปกตรัม โดย (ต่อ)
𝐴=
[
4 3 0
3 4 −1
0 − 1 4 ]
Example 2 (cont.)
5. คำนวณหารัศมีสเปกตรัม โดย (ต่อ)
6. คำนวณหา โดย
𝐴=
[
4 3 0
3 4 −1
0 − 1 4 ]
Thankyou
💗💗💗💗💗💗💗💗💗

ระเบียบวิธีทำซ้ำแบบผ่อนปรนสืบเนื่องสำหรับแก้ระบบสมการเชิงเส้นหลายตัวแปร