การจัดการเรียนการสอน บทที่ 6...
TRANSCRIPT
การจัดการเรียนการสอน
บทที่ 6 ระเบียบวิธีเชิงตัวเลข
กระบวนวิชา ระเบียบวิธีเชิงคณิตศาสตร์ 1(Mathematical Method 1)
ชื่อผู้สอน ผศ.ดร. สมชาย ศรียาบ
เวลาที่ใช้ 11 ชั่วโมง
วัตถุประสงค์
1. นักศึกษาสามารถหารากของฟังก์ชันโดยระเบียบวิธีเชิงตัวเลขได้
2. นักศึกษาสามารถหาค่าอินทิกรัลจำกัดเขตโดยระเบียบวิธีเชิงตัวเลขได้
3. นักศึกษาสามารถหาอนุพันธ์ของฟังก์ชันโดยระเบียบวิธีเชิงตัวเลขได้
4. นักศึกษาสามารถหาคำตอบของสมการเชิงอนุพันธ์สามัญอันดับหนึ่งโดยระเบียบวิธีเชิงตัวเลขได้
กิจกรรมการเรียนการสอน
1. บรรยายที่มาของบทนิยาม และทฤษฎีบทต่างๆในแต่ละหัวข้อ
2. ยกตัวอย่างพร้อมทั้งแสดงวิธีทำในแต่ละหัวข้อ
3. ให้นักศึกษาทำแบบฝึกหัดในท้ายคาบและซักถาม
4. ให้แบบฝึกหัดทบทวนในแต่หัวข้อเพื่อให้นักศึกษากลับไปทำเป็นการบ้าน
สื่อการเรียนการสอน
1. เอกสารประกอบการสอนรายวิชาระเบียบวิธีเชิงคณิตศาสตร์ 1
2. กระดาษและปากกา
3. เครื่องฉายทึบแสง
เอกสารอ้างอิง
1. Mathematical methods for physicists 5th edition, George B. Arfken and Hans J. Weber, Har•
court/Academic Press, USA.
2. Numerical Methods For Mathematics 2nd edition, Science and Engineering, John H. Mathews,
Prentice Hall, USA.
1
บทที่ 6
ระเบียบวิธีเชิงตัวเลข
(Numerical methods)
6.1 การหาค่ารากของฟังก์ชัน
6.1.1 ระเบียบวิธีนิวตัน ราฟสัน (Newton Raphson method)
ถ้า f(x) เป็นฟังก์ชันต่อเนื่องใน [a, b] ให้ x0 ∈ [a, b] เป็นค่าเริ่มต้น โดยที่ f ′(x0) ̸= 0 ระเบียบนิวตัว
ราฟสันเป็นการกระจายอนุกรมเทย์เลอร์รอบจุด x0 ถึงแค่อนุพันธ์อันดับที่หนึ่งดังนั้นจะได้ว่า
f(x) = f(x0) + f ′(x)(x− x0)
เนื่องจากเราต้องการ f(x) = 0 จะได้ว่า
0 =f(x0) + f ′(x0)(x− x0)
x =x0 −f(x0f ′(x0)
เนื่องจากการใช้ x0 จะทำให้เราได้ค่า x1 จะทำให้เราได้
x1 =x0 −f(x0f ′(x0)
ดังนั้นถ้าเราทำซ้ำไป n ครั้ง จะได้ว่า
xn+1 =xn − f(xn)
f ′(xn)(6.1)
ข้อสังเกต การเลือก x0 เราจะใช้ทฤษฎีบทค่ามัชฌิม (Intermediate value theorem)
7
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 8
รูปที่ 6.1: ระเบียบวิธีนิวตัน ราฟสัน
ทฤษฎีบท 1. ทฤษฎีบทค่ามัชฌิม
ถ้า f(x) ต่อเนื่องในช่วง [a, b] และ f(a)f(b) < 0 แล้ว จะมี x0 ∈ [a, b]ที่ทำให้ f(x0) = 0
ข้อสังเกต เราจะตรวจสอบว่าจะจบการซ้ำ เมื่อเรากำหนดค่าความผิดพลาดยินยอม ε และสอดคล้องกับ
เงื่อนไขต่อไปนี้ ข้อใดข้อหนึ่ง
1. |xn+1 − xn| < ε
2. |xn+1 − xn||xn+1|
< ε ค่าความผิดพลาดสัมพัทธ์
3. f(xn+1) < ε
ตัวอย่าง 1.
จงหารากของฟังก์ชัน f(x) = e−x4 (2− x)− 1 โดยวิธีของนิวตัน ราฟสัน
วิธีทำ
จากการทำซ้ำจะได้ค่าทำซ้ำตามตาราง
การทำซ้ำ xn f(x)
1 0.189438 0.726814
2 0.714043 0.075722
3 0.782542 0.001130
4 0.783596 0.000000
ดังนั้น รากของสมการคือ 0.783596
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 9
ตัวอย่าง 2.
จงหารากของฟังก์ชัน f(x) = e−x4 (2− x)− 1 โดยวิธีของนิวตัน เมื่อกำหนด ε = 0.1
การวิเคราะห์ค่าความผิดพลาดในระเบียบวิธีของนิวตัน ราฟสัน
เนื่องจากระเบียบวิธีนิวตัน ราฟสันเป็นการประมาณค่ารากของสมการ f(x) = 0 โดยการประมาณค่าถึง
อนุพันธ์อันดับหนึ่ง ดังนั้นค่าความผิดพลาดจึง มีค่าอยู่ที่เทอมที่มีอนุพันธ์อันดับที่สอง เป็นต้นไป แต่เนื่องจาก
ค่าความผิดพลาดในเทอมอนุพันธ์ที่สามเป็นต้นไป มีค่าน้อยกว่าค่าความ ผิดพลาดในเทอมอนุพันธ์ที่สองมากๆ
ดังนั้นค่าความผิดพลาดของระเบียบวิธีนี้จึงอยู่ที่เทอมอนุพันธ์อันดับที่สองเท่านั้น
เราจะกระจายอนุกรมเทย์เลอร์รอบจุด xn ถึงเทอมอนุพันธ์อันดับที่สองดังนี้
f(x) =f(xn) + (x− xn)f′(xn) +
(x− xn)2
2!f ′′(xn) (6.2)
แทนค่า x = xr จะได้ว่า
f(xr) =f(xn) + (xr − xn)f′(xn) +
(xr − xn)2
2!f ′′(xn)
เนื่องจาก f(xr) = 0
0 =f(xn) + (xr − xn)f′(xn) +
(xr − xn)2
2!f ′′(xn)
0 =f(xnf ′(xn)
+ (xr − xn) +(xr − xn)
2
2!
f ′′(xn)
f ′(xn)
จากระเบียบวิธีของนิวตัน ราฟสัน xn+1 = xn − f(xn
f ′(xn)จะได้ว่า
0 = xn − xn+1 + (xr − xn) +(xr − xn)
2
2!
f ′′(xn)
f ′(xn)
xr − xn+1 =−f ′′(xn)
2!f ′(xn)(xr − xn)
2 (6.3)
เรานิยาม en = xr − xn จากสมการ (6.3) จะได้ว่า
en+1 =−f ′′(xn)
2!f ′(xn)en
2 (6.4)
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 10
รูปที่ 6.2: ระเบียบวิธีซีแคนซ์
6.1.2 ระเบียบวิธีซีแคนซ์ (Secant method)
เนื่องจากระเบียบวิธีนิวตัน ราฟสัน จะเกิดปัญหาเมื่อในกรณีที่ f ′(x) = 0 ดังนั้นจึงมีระเบียบวิธีซีแคนซ์ที่
ปรับปรุงระเบียบของนิวตัน ราฟสัน
จากสูตรของระเบียบนิวตัน ราฟสัน xn+1 = xn − f(xn
f ′(xn)
เราจะแทน f ′(x) = f(x1)−f(x0)x1−x0
เราจะได้ว่า
x2 = x1 −(x1 − x0)f(x1)
f(x1)− f(x0)
xn+1 = xn −(xn − xn−1)f(xn)
f(xn)− f(xn−1)(6.5)
ตัวอย่าง 3.
จงหารากของฟังก์ชัน f(x) = e−x4 (2− x)− 1 โดยวิธีซีแคนซ์ เมื่อ x0 = 3 และ x1 = 2
วิธีทำ
จากการทำซ้ำจะได้ค่าทำซ้ำตามตาราง
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 11
การทำซ้ำ xn f(x)
1 −0.117000 1.179837
2 1.028826 − 0.249080
3 0.829093 − 0.048289
4 0.781058 0.002723
5 0.783622 − 0.000027
6 0.783596 0.000000
ดังนั้น รากของสมการคือ0.783596 ซึ่งต้องทำซ้ำทั้งหมด 6 ครั้ง ซึ่งมากกว่าระเบียบวิธีของนิวตัน ราฟสัน
หมายเหตุ การเลือกค่า x0 และ x1 ที่ดีจะทำให้ ค่า xn ลู่เข้าสู่คำตอบเร็วขึ้น
การวิเคราะห์ค่าความผิดพลาดในระเบียบวิธีซีแคนซ์
พิจารณาจากสูตรของระเบียบซีแคนซ์
xn+1 = xn − (xn − xn−1)f(xn)
f(xn)− f(xn−1)
xn+1 − xr = xn − xr −(xn − xn−1)
f(xn)− f(xn−1)f(xn)
xn+1 − xr =(xn − xr)(f(xn)− f(xn−1))− (xn − xn−1)f(xn)
f(xn)− f(xn−1)
xn+1 − xr =(xn−1 − xr)f(xn)− (xn − xr)f(xn−1)
f(xn)− f(xn−1)
−en+1 =−en−1f(xn) + enf(xn−1)
f(xn)− f(xn−1)
en+1 =en−1f(xn)− enf(xn−1)
f(xn)− f(xn−1)
en+1 = enen−1
(f(xn)en
− f(xn−1)en−1
)
f(xn)− f(xn−1)
en+1 =enen−1(
f(xn)en
− f(xn−1)en−1
)
xn − xn−1· xn − xn−1
f(xn)− f(xn−1)
en+1 = enen−1[f ′(xn)− f ′(xn−1)
xn − xn−1)] · [ (xn − xn−1
f(xn)− f(xn−1))]
en+1 = enen−1f ′′(xnf ′(xn)
(6.6)
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 12
6.2 ระเบียบวิธีเชิงตัวเลขสำหรับอินทิกรัล
6.2.1 พหุนามของนิวตัน (Newton polynomial)
ก่อนที่เราจะหาค่าประมาณของอินทิกรัล เราต้องประมาณฟังก์ชันที่ผ่านจำนวนจุดจำกัด การประมาณ ค่าฟังก์ชัน
มีการประมาณค่าด้วยฟังก์ชันที่ต่างกัน เช่น วิธีสี่เหลี่ยมคางหมูและซิมป์สัน1/3 ใช้พหุนามนิวตัน แต่วิธีของเกาส์ใช้
พหุนามเลอร์จองด์ สมการ (6.7) แสดงพหุนามนิวตัน
f(x) = c0 + c1(x− x0) + c2(x− x0)(x− x1) + . . .+ cn(x− x0)(x− x1) . . . (x− xn−1) (6.7)
โดยที่ c0, c1, . . . , cn คือผลต่างสืบเนื่องไปข้างหน้าของนิวตัน
เมื่อ
c0 =f(x0)
c1 =f [x1, x0] =f(x1)− f(x0)
x1 − x0=
f(x1)− f(x0)
h=
∆f(x0)
h
c2 =f [x2, x1, x0] =f [x2, x1]− f [x1, x0]
x2 − x0=
f(x2−f(x1)x2−x1
− f(x1−f(x0)x1−x0
x2 − x0
c2 =f(x2 − 2f(x1) + f(x0)
2h2=
∆2f(x0)
2!h2
cn =∆nf(x0)
n!hn
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 13
รูปที่ 6.3: กฎสี่เหลี่ยมคางหมู
6.2.2 กฎวิธีสี่เหลี่ยมคางหมู (Trapezoidal rule)
วิธีนี้เป็นการประมาณค่าด้วยฟังก์ชันพหุนามนิวตันเชิงเส้น หรือจะกล่าวว่าเราทราบค่าฟังก์ชันแค่สองจุด คือที่
x0 และ x1 ดังนั้นเราจึงใช้พหุนามนิวตันถึงแค่เทอมที่มี c1 นั่นคือ
f(x) = c0 + c1(x− x0)
ดังนั้น
∫ x1
x0
f(x)dx =
∫ x1
x0
(c0 + c1(x− x0))dx (6.8)
แทนค่า c0 และ c1 ลงไปในสมการ6.7 จะได้ว่า
∫ x1
x0
f(x)dx =
∫ x1
x0
(f(x0) +f(x1)− f(x0)
h(x− x0))dx∫ x1
x0
f(x)dx =h
2(f(x0) + f(x1)) (6.9)
สมการ6.9 คือกฎสี่เหลี่ยมคางหมูสำหรับ n = 2
6.2.3 กฎวิธีสี่เหลี่ยมคางหมูหลายส่วน (Composite trapezoidal rule)
จากรูป 1.4 เราแบ่งพื้นที่ใต้เส้นโค้งออกเป็น n ส่วน ซึ่งประกอบไปด้วยจุด x0, x1, x2, . . . , xn
∫ b
af(x)dx =
∫ x1
x0
f(x)dx+
∫ x2
x1
f(x)dx+ · · ·+∫ xn
xn−1
f(x)dx (6.10)
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 14
รูปที่ 6.4: กฎสี่เหลี่ยมคางหมูหลายส่วน
จากกฎสี่เหลี่ยมคางหมู สมการ (6.8)ทำให้สมการที่(6.9) ดังนี้
∫ b
af(x)dx =
h
2(f(x0) + f(x1)) +
h
2(f(x1) + f(x2)) + · · ·+ h
2(f(xn−1) + f(xn))∫ b
af(x)dx =
h
2(f(x0) + 2f(x1) + 2f(x2) + 2f(x3) + · · ·+ f(xn) (6.11)
สมการ(6.11) คือกฎสี่เหลี่ยมคางหมูสำหรับ n ใดๆ
ตัวอย่าง 4.
จงหาค่า2∫0
(x2 + x)dx เมื่อ n = 4
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 15
การวิเคราะห์ค่าความผิดพลาดของกฎสี่เหลี่ยมคางหมู
เนื่องจากระเบียบวิธีกฎสี่เหลี่ยมคางหมูใช้พหุนามนิวตันในการประมาณค่าฟังก์ชัน f(x) แต่ใช้ถึงแค่เทอม c1
ดังนั้นค่าความผิดพลาดจึงเกิดขึ้นส่วนใหญ่ที่เทอมของ c2 นั่นคือ
E(s) =
∫ x1
x0
c2(x− x0)(x− x1)dx
E(s) =
∫ x1
x0
f ′′(c)
2!(x− x0)(x− x1)dx (6.12)
เราจะเปลี่ยนตัวแปรโดยให้ s = x−x0h สมการที่(6.12) จะได้เป็น
E(s) =f ′′(c)
2!h3
∫ 1
0s(s− 1)ds
E(s) =− 1
12f ′′(c)h3 , x0 < c < x1 (6.13)
หมายเหตุ สูตร(6.13) เรียกว่าค่าความผิดพลาดเฉพาะที่ (Local errors) เนื่องจากแต่ช่วงในการกฎสี่เหลี่ยมคางหมู
มีความผิดพลาดในแต่ละช่วง ดังนั้นจึงมีค่าความผิดพลาดวงกว้าง (Global errors) ตามสมการ
EG(s) = − 1
12f ′′(c)(b− a)h2 (6.14)
ตัวอย่าง 5.
จงวิเคราะห์ค่าความผิดพลาดของ2∫0
(x2 + x)dx เมื่อ n = 4 โดยวิธีกฎสี่เหลี่ยมคางหมู
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 16
รูปที่ 6.5: กฎซิมป์สัน1/3
6.2.4 กฎซิมป์สัน 1/3 (Simpson 1/3)
วิธีนี้เป็นการประมาณค่าด้วยฟังก์ชันกำลังสอง หรือจะกล่าวว่าเราทราบค่าฟังก์ชันแค่สองจุด คือที่ x0, x1
และ x2 ดังนั้นเราจึงใช้พหุนามนิวตันถึงแค่เทอมที่มี c2 นั่นคือ
f(x) = c0 + c1(x− x0) + c2(x− x0)(x− x1)
ดังนั้น
∫ x2
x0
f(x)dx =
∫ x2
x0
(c0 + c1(x− x0) + c2(x− x0)(x− x1))dx (6.15)
แทนค่า c0, c1 และ c2 ลงไปในสมการ6.15 จะได้ว่า
∫ x2
x0
f(x)dx =
∫ x2
x0
(f(x0) + (f(x1 − f(x0)
h)(x− x0) + (
f(x2 − 2f(x1) + f(x0)
2h2)(x− x0)(x− x1))dx
เราจะเปลี่ยนตัวแปรโดยให้ s = x−x0h
∫ 2
0f(x)dx =
∫ 2
0(f(x0)dx+
∫ 2
0(f(x1 − f(x0)
h)sh2ds+ (
f(x2 − 2f(x1) + f(x0)
2h2)
∫ 2
0sh(sh− h)hds∫ 2
0f(x)dx =
h
3(f(x0) + 4f(x1) + f(x2)) (6.16)
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 17
รูปที่ 6.6: กฎซิมป์สัน1/3
หมายเหตุ สูตร 6.16เป็นสูตรของซิมป์สัน1/3 สำหรับ n = 2
6.2.5 กฎซิมป์สัน 1/3 แบบหลายส่วน (Composite Simpson 1/3)
เราจะแบ่ง [a, b] ออกเป็น n ส่วน
∫ b
af(x)dx =
∫ x2
x0
f(x)dx+
∫ x4
x2
f(x)dx+ · · ·+∫ xn
xn−2
f(x)dx∫ b
af(x)dx =
h
3(f(x0) + 4f(x1) + f(x2)) +
h
3(f(x2) + 4f(x3) + f(x4)) + · · ·
+h
3(f(xn−2) + 4f(xn−1) + f(xn))∫ b
af(x)dx =
h
3[f(x0) + 4f(x1) + 2f(x2) + 4f(x3) + · · ·+ 4f(xn−1) + f(xn)] (6.17)
หมายเหตุ สูตร (6.17) เป็นสูตรของซิมป์สัน1/3 สำหรับ n ใดๆ และ ใช้ได้กับ n ใดที่เป็นจำนวนคู่
การวิเคราะห์ค่าความผิดพลาดของกฎซิมป์สัน 1/3
เนื่องจากระเบียบวิธีกฎสี่เหลี่ยมคางหมูใช้พหุนามนิวตันในการประมาณค่าฟังก์ชัน f(x) แต่ใช้ถึงแค่เทอม c2
ดังนั้นค่าความผิดพลาดจึงเกิดขึ้นส่วนใหญ่ที่เทอมของ c3 นั่นคือ
E(s) =
∫ x2
x0
c3(x− x0)(x− x1)(x− x2)dx
E(s) =
∫ x2
x0
f ′′′(c)
3!(x− x0)(x− x1)(x− x2)dx (6.18)
เราจะเปลี่ยนตัวแปรโดยให้ s = x− x0h
สมการ6.18 จะกลายเป็น
E(s) =f ′′′(c)
3!
∫ 2
0sh(sh− h)(sh− 2h)hds = 0
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 18
ดังนั้นค่าความผิดพลาดจะอยู่ที่เทอมของ c4
E(s) =
∫ x2
x0
c4(x− x0)(x− x1)(x− x2)(x− x3)dx
E(s) =
∫ x2
x0
f4(c)
4!(x− x0)(x− x1)(x− x2)(x− x3)dx
E(s) =− h5
90f4(c) , x0 < c < x2 (6.19)
ส่วนค่าความผิดพลาดวงกว้าง จะเป็นไปตามสมการ
EG(s) =− h4
180f4(c) , x0 < c < xn (6.20)
ตัวอย่าง 6.
จงหาค่า2∫0
x5dx เมื่อ n = 2 และ n = 4 โดยวิธีซิมป์สัน 1/3 พร้อมทั้งวิเคราะห์ค่าความผิดพลาด
6.2.6 การอินทิเกรตแบบเกาส์ (Gauss integration)
เนื่องจากการหาค่าอินทิกรัลโดยใช้กฎสี่เหลี่ยมคางหมูก่อให้เกิดความผิดพลาดเนื่องจากขอบเขตของอินทิกรัล
เป็นจาก a ถึง b ตามรูปที่ 6.3 นั้นกว้างเกินไป ดังนั้นระเบียบวิธีการอินทิเกรตแบบเกาส์จึงปรับปรุงขอบเขตการ
อินทิเกรตเพื่อให้ค่าอินทิกรัลมีความเที่ยงตรงมากขึ้น
เราจะพิจารณาอินทิกรัลจาก− 1 ถึง 1ดังในสมการที่ (6.21)
I =
1∫−1
f(c)dc ≈n∑
i=1
wif(ci) (6.21)
เราจะพิจารณาเฉพาะกรณีที่ n = 2
I = w1f(c1) + w2f(c2)
เนื่องจากมีค่าคงที่ที่ไม่ทราบค่า 4 ค่า คือ w1, w2, c1, c2 ดังนั้นเราจึงจำเป็นสร้างเงื่อนไข 4 เงื่อนไข เพื่อหาค่าคงที่ทั้ง
4 ค่านี้ ฟังก์ชันที่จะทำการอินทิเกรตนั้นเป็นฟังก์ชันคงที่ ฟังก์ชันเชิงเส้น ฟังก์ชันกำลังสอง และฟังก์ชันกำลังสาม
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 19
นั่นคือ 1, c, c2, c3 ฟังก์ชันใน 4 รูปแบบนี้ก่อให้เงื่อนไขสมการที่ (6.22)− (6.25)
1∫−1
1dc = 2 = w1 + w2 (6.22)
1∫−1
cdc = 0 = w1c1 + w2c2 (6.23)
1∫−1
c2dc =2
3= w1c
21 + w2c
22 (6.24)
1∫−1
c3dc = 0 = w1c31 + w2c
32 (6.25)
แก้สมการที่ (6.22) − (6.25) จะได้ค่า w1 = w2 = 1 และ c1 = − 1√3, c2 =
1√3
ดังนั้นจะได้ว่า
1∫−1
f(c)dc = f(− 1√3) + f(
1√3) (6.26)
สูตรของเกาส์ที่แสดงในสมการ 6.26 เป็นรูปแบบที่สะดวกแก่การคำนวณกล่าวคือเป็นการอินทิเกรตจาก− 1
ถึง 1 แต่ในทางปฏิบีติการอินทิเกรตจะเป็นจาก a ถึง b ดังนั้นจึงต้องแปลงโคออร์ดิเนตจาก x ไปสู่ ξ
โดยที่ x = a+b2 + b−a
2 ξ ก่อนทำการอินทิเกรต ซึ่งหลังจากแปลงโคออร์ดิเนตแล้วจะได้ว่า
b∫a
f(x)dx =
1∫−1
f(a+ b
2+
b− a
2ξ)(
b− a
2)dξ
= (b− a
2)(f(
a+ b
2− 1√
3
b− a
2) + f(
a+ b
2+
1√3
b− a
2)) (6.27)
ตัวอย่าง 7.
จงหา1∫
−1
x2 + 1dx โดยวิธีของเกาส์เมื่อ n = 2
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 20
ตัวอย่าง 8.
จงหา2∫0
x2 + 1dx โดยวิธีของเกาส์เมื่อ n = 2
6.3 ระเบียบวิธีเชิงตัวเลขสำหรับการหาอนุพันธ์
(Numerical for differentiations)
บางครั้งการหาอนุพันธ์ของฟังก์ชัน f(x) ที่จุด x = a ทำได้ลำบาก ดังนั้นจึงมีระเบียบเชิงตัวเลข มาช่วยในการประมาณค่าการหาอนุพันธ์
6.3.1 ระเบียบวิธีผลต่างสืบเนื่องไปข้างหน้าของนิวตัน (Newton Forward Difference (NFD))
การพิสูจน์สูตรของ NFD สำหรับ f ′(x0) สามารถทำได้โดยการกระจายอนุกรมเทย์เลอร์ของ
f(x0 + h) รอบจุด x0 จะได้สูตรดังนี้
f ′(x0) =f(x0 + h)− f(x0)
h+O(h) (6.28)
เมื่อ O(h) = − h2!f
′′(x0)
การพิสูจน์สูตรของ NFD สำหรับ f ′′(x0) สามารถทำได้โดยการกระจายอนุกรมเทย์เลอร์ของ f(x0+h) และ
f(x0 + 2h) รอบจุด x0 จะได้สูตรดังนี้
f ′′(x0) =f(x0 + 2h)− 2f(x0 + h) + f(x0)
h2+O(h) (6.29)
เมื่อ O(h) = −hf ′′′(x0)
6.3.2 ระเบียบวิธีผลต่างย้อนกลับของนิวตัน( Newton Backward Difference (NBD))
การพิสูจน์สูตรของ NBD สามารถทำได้โดยการกระจายอนุกรมเทย์เลอร์ของ f(x0 − h) รอบจุด x0
จะได้สูตรดังนี้
f ′(x0) =f(x0)− f(x0 − h)
h+O(h) (6.30)
เมื่อ O(h) = h2!f
′′(x0)
การพิสูจน์สูตรของ NBD สำหรับ f ′′(x0) สามารถทำได้โดยการกระจายอนุกรมเทย์เลอร์ของ f(x0−h) และ
f(x0 − 2h) รอบจุด x0 จะได้สูตรดังนี้
f ′′(x0) =f(x0 − 2h)− 2f(x0 − h) + f(x0)
h2+O(h) (6.31)
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 21
เมื่อ O(h) = hf ′′′(x0)
6.3.3 ระเบียบวิธีผลต่างตรงกลาง( Central Difference (CD))
การพิสูจน์สูตรของ CD สามารถทำได้โดยการกระจายอนุกรมเทย์เลอร์ของ f(x0 + h) และ
f(x0 − h) รอบจุด x0 แล้วแก้สมการหา f ′(x0) จะได้สูตรดังนี้
f ′(x0) =f(x0 + h)− f(x0 − h)
2h+O(h2) (6.32)
เมื่อ O(h2) = −h2
3! f′′′(x0)
f ′′(x0) =f(x0 + h)− 2f(x0) + f(x0 − h)
h2+O(h2) (6.33)
เมื่อ O(h2) = −h2
12f4(x0)
ตัวอย่าง 9.
กำหนด f(x) = x2 + 5x จงหา f ′(1) เมื่อกำหนด h = 0.1 โดยวิธีต่อไปนี้
1. NFD
2. NBD
3. CD
ตัวอย่าง 10.
กำหนด f(x) = x2 จงหา f ′′(1) เมื่อกำหนด h = 0.01 โดยวิธีต่อไปนี้
1. NFD
2. NBD
3. CD
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 22
6.4 ระเบียบวิธีเชิงตัวเลขสำหรับสมการเชิงอนุพันธ์อันดับหนึ่ง
(Numerical method for first order ordinary differential equations)
พิจารณาสมการเชิงอนุพันธ์อันดับหนึ่ง y′(x) = f(x, y) เมื่อ y(x0) = a เราต้องการจะหา y(xk) เมื่อ
k = 1, 2, 3, · · ·
6.4.1 ระเบียบวิธีอนุกรมเทย์เลอร์
เรากระจายอนุกรมเทย์เลอร์ถึงเทอมที่มีอนุพันธ์อันดับที่ n รอบจุด x0 เพื่อที่จะหา y(x1) จะได้ตามสมการ
y(x1) = y(x0) + hy′(x0) +h2
2!y′′(x0) + · · ·+ hn
n!yn(x0)
ถ้าเรากระจายอนุกรมเทย์เลอร์ถึงเทอมที่มีอนุพันธ์อันดับที่ n รอบจุด x1 แล้วเราจะได้ y(x2) จะได้ตามสมการ
y(x2) = y(x1) + hy′(x1) +h2
2!y′′(x1) + · · ·+ hn
n!yn(x1)
เราจะทำเช่นนี้ไปเรื่อยจนถึงเราได้เทอมที่เราต้องการนั่นคือ y(xk+1) ตามสมการ 6.34
y(xk+1) = y(xk) + hy′(xk) +h2
2!y′′(xk) + · · ·+ hn
n!yn(xk) (6.34)
ตัวอย่าง 11.
กำหนด y′(x) = x+y(x) , y(0) = 1 จงหา y(0.2) โดยวิธีอนุกรมเทย์เลอร์ ให้กระจายถึงเทอมอนุพันธ์
อันดับที่สาม เมื่อกำหนด h = 0.1
6.4.2 ระเบียบวิธีของออยเลอร์
เป็นการกระจายอนุกรมเทย์เลอร์ถึงเทอมที่มีอนุพันธ์อันดับหนึ่ง
y(xk+1) = y(xk) + hf(xk, yk) +O(h2) (6.35)
หมายเหตุ เราจะให้ yk แทน y(xk) ดังนั้นสมการ
ตัวอย่าง 12.
กำหนด y′(x) = x+ y(x) , y(0) = 1 จงหา y(0.2) โดยวิธีออยเลอร์ เมื่อกำหนด h = 0.1
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 23
6.4.3 ระเบียบวิธีของออยเลอร์ที่ปรัปปรุงแล้ว (Modified Euler)
เป็นการปรับปรุงระเบียบวิธีของออยเลอร์ โดยใช้ f(xk+ 12, yk+ 1
2) แทน f(xk, yk)
yk+1 = yk + hf(xk+ 12, yk+ 1
2) +O(h2) (6.36)
โดยที่
yk+ 12= y(xk) +
h
2f(xk, yk) (6.37)
ตัวอย่าง 13.
กำหนด y′(x) = x + y(x) , y(0) = 1 จงหา y(0.2) โดยวิธีออยเลอร์ที่ปรับปรุงแล้ว เมื่อกำหนด
h = 0.1
6.4.4 ระเบียบวิธีของรุงเงคุตตาอันดับที่สี่ (Runge−Kutta order 4)
เนื่องจากระเบียบวิธีเทย์เลอร์ ออยเลอร์ และระเบียบวิธีออยเลอร์ที่ปรับปรุงแล้วมีข้อจำกัดคือเราต้องเลือกN
ขนาดใหญ่เพื่อจะทำให้ค่าความผิดพลาดมีค่าน้อย และต้องหาอนุพันธ์ของฟังก์ชันด้วย ส่วนระเบียบวิธีรุเงคุตตาให้
ค่าความผิดพลาดในระดับ O(hN ) เหมือนกับระเบียบวิธีเทย์เลอร์ ออยเลอร์ และระเบียบวิธีออยเลอร์ที่ปรับปรุงแล้ว
แต่ไม่ต้องคำนวณหาอนุพันธ์ของฟังก์ชัน ระเบียบวิธีรุเงคุตตาที่นิยมใช้คือ วิธีของรุงเงคุตตาอันดับที่สี่เพราะให้ความ
ถูกต้องที่น่าเชื่อได้ เสถียร และง่ายที่จะเขียนโปรแกรม
y(xi+1) =y(xi) +1
6(k1 + 2k2 + 2k3 + k4)h (6.38)
k1 =f(xi, yi)
k2 =f(xi +1
2h, yi +
1
2hk1)
k3 =f(xi +1
2h, yi +
1
2hk2)
k4 =f(xi + h, yi + hk3)
ตัวอย่าง 14.
กำหนด y′(x) = x + y(x) , y(0) = 1 จงหา y(0.2) โดยวิธี Rung−Kutta order 4 เมื่อ h = 0.1
วิธีทำ
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 24
6.4.5 ระเบียบวิธีหลายขั้น (Multiple step methods)
ระเบียบวิธีต่างๆที่เราได้ศึกษาผ่านมาในหัวข้อ 1.4.1− 1.4.3 ล้วนเป็นระเบียบวิธีเพื่อคำนวณหาค่า yk+1
ที่ตำแหน่ง xk+1 จากผลลัพธ์ yk ที่ตำแหน่ง xk กล่าวคือ เป็นการคำนวณผลลัพธ์ขั้นใหม่โดยค่าคำนวณที่ขั้นเก่า
เพียงขั้นเดียว วิธีการคำนวณแบบนี้เรียกว่าเป็นระเบียบวิธีขั้นเดียว(one− step method) ส่วนระเบียบ วิธีการแบบหลายขั้น
(mulitstep method) เป็นการคำนวณค่าใหม่โดยใช้ค่าคำนวณที่ขั้นเก่าหลายค่า ซึ่งทำให้ ผลลัพธ์ที่ขั้นใหม่ที่มีความแม่นยำมากยิ่งขึ้น
โดยค่าคำนวณขั้นเก่าเราก็หาได้จากระเบียบวิธีขั้นเดียว ระเบียบวิธี หลายขั้นมีหลายวิธี แต่ในที่นี้เราจะศึกษาเฉพาะวิธีของอาดามส์
แบชฟอร์ท (The Adams−Bashforth method)
ระเบียบวิธีของอาดามส์ แบชฟอร์ท (The Adams−Bashforth method)
การพิสูจน์สูตรของอาดามส์ แบชฟอร์ท สามารถทำได้การกระจายอนุกรมเทย์เลอร์และประมาณค่าอนุพันธ์
โดยใช้ระเบียบวิธีผลต่างย้อนกลับของนิวตัน ระเบียบวิธีของอาดามส์ แบชฟอร์ทอันดับสอง สาม สี่ แสดงใน
สมการที่ (6.39) − (6.41)
yk+1 = yk +h
2(3fk − fk−1) (6.39)
yk+1 = yk +h
12(23fk − 16fk−1 + 5fk−2) (6.40)
yk+1 = yk +h
24(55fk − 59fk−1 + 37fk−2 − 9fk−3) (6.41)
ตัวอย่าง 15.
กำหนด y′(x) = y(x) cosx , y(0) = 1 จงหา y(0.25) โดยวิธีของAdams และBashforth อันดับสี่
เมื่อ h = 0.25
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 25
แบบฝึกหัดประจำบทที่ 6
1. จงใช้ระเบียบวิธีนิวตัน ราฟสัน เพื่อหารากของสมการ x− cosx = 0 เมื่อกำหนด x0 = 0
และ ϵ = 0.001
2. จงหารากของสมการ x2−3 = 0 โดยวิธีนิวตัน ราฟสัน และวิธีซีแคนซ์ พร้อมทั้งเปรียบเทียบว่าวิธีใดลู่เข้า
สู่รากของคำตอบได้เร็วกว่ากัน เมื่อ กำหนด x0 = 1 และ x1 = 3 ϵ = 0.001
3. จากสมการ xn+1 = −2 + (1 + c)xn + cx2n ซึ่งมี 1 เป็นรากหนึ่งของสมการ f(x) จงหาค่า c ที่ทำให้
xr − xn+1 = −f ′′(ξ)f ′(ξ)
(xr − xn)2 เมื่อ xr เป็นอีกรากหนึ่งของสมการ
4. กำหนดค่า f(x) ดังตาราง จงหาค่า1.8∫1.0
f(x)dx โดยใช้กฎสี่เหลี่ยมคางหมู เมื่อ h = 0.1 และ h = 0.2
x f(x)
1.0 1.543
1.1 1.668
1.2 1.811
1.3 1.971
1.4 2.151
1.5 2.352
1.6 2.577
1.7 2.828
1.8 3.107
5. ถ้า f(x) = coshx จงวิเคราะห์ค่าความผิดพลาดของ2∫1
f(x)dx โดยใช้กฎสี่เหลี่ยมคางหมูเมื่อ h = 0.1
และ h = 0.2
6. จงหาค่าπ4∫0
tanhxdx โดยวิธีของ Simpson เมื่อ n = 4 พร้อมทั้งวิเคราะห์ค่าความผิดพลาด
7. จงหาค่า3∫0
t2√t2 + 1dt โดยวิธีของ Gauss เมื่อ n = 2
8. กำหนด f(x) = x+ sinx3 จงหาค่า f ′(1.5) เมื่อ h = 0.1 โดยใช้วิธีต่อไปนี้
8.1 Newton forward difference method
8.2 Newton backward difference method
8.3 Central difference method
8.4 จงหาค่า f ′′(1.5) โดยวิธี Central difference method
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 26
9. กำหนด y′(x) = xy จงหาค่า y(1.25) เมื่อ y(1) = 2h = 0.25 โดยวิธีต่อไปนี้ พร้อมทั้งเปรียบเทียบ
กับคำตอบที่แท้จริง
9.1 Euler method
9.2 Modified Euler method
9.3 Rung−Kutta of order four method
9.4 The Adams−Bashforth of order four method เมื่อกำหนด y(0.75) = 1.9342, y(0.5) =
1.9025, y(0.25) = 1.8939
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ
บทที่ 6. ระเบียบวิธีเชิงตัวเลข(NUMERICAL METHODS) หน้า 27
เฉลยแบบฝึกหัดบทที่ 6
1. 0.739085
2. 1.732051 วิธีนิวตัน ราฟสันลู่เข้าเร็วกว่าวิธีซีแคนซ์
3. −2, 1
4. เมื่อ h = 0.1 ,1.8∫1.0
f(x)dx ≈ 1.7683 เมื่อ h = 0.1 ,1.8∫1.0
f(x)dx ≈ 1.7728
5. เมื่อ h = 0.1 ,EG(s) ≤ 0.0063 เมื่อ h = 0.2 ,EG(s) ≤ 0.0251
6. 0.1432
7. 22.2833
8.1 1.0069
8.2 1.0402
8.3 1.0235
8.4 − 0.0166
9.1 1.125
9.2 1.2647
9.3 2.1360
9.4 0.1371
เอกสารประกอบการสอนวิชา 206267 สมชาย ศรียาบ