27
การจัดการเรียนการสอน บทที่ 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 ระเบียบวิธีเชิงตัวเลข¸šทที่6.pdf · บทที่

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

การจัดการเรียนการสอน

บทที่ 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

บทที่ 1

บทนำสู่สมการเชิงอนุพันธ์สามัญ

2

บทที่ 2

ทบทวนสมการเชิงอนุพันธ์อันดับหนึ่ง

3

บทที่ 3

สมการเชิงอนุพันธ์อันดับสองและสูงกว่า

4

บทที่ 4

ฟังก์ชันชนิดพิเศษ(Special functions)

5

บทที่ 5

สมการเชิงอนุพันธ์ย่อย

(Partial Differential Equations)

6

บทที่ 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 สมชาย ศรียาบ