Issuu on Google+

การอินทิเกรตเชิงตัวเลขโดยวิธีซิมป์ สัน 1/3 แบบปรับปรุ ง (Numerical Integrations by an Adaptive Simpson’s 1/3 Method)

นางสาวกัญญารัตน์ ฉายชัยภูมิ นางสาวจันทรวรรณ อัชฌาศัย นางสาวฐิติรัตน์ บุญช่วยชู

โครงงานนี้เป็ นส่ วนหนึ่งของการศึกษาตามหลักสู ตรปริ ญญาวิทยาศาสตรบัณฑิต สาขาวิชาคณิ ตศาสตร์ประยุกต์ ภาควิชาคณิ ตศาสตร์คณะวิทยาศาสตร์ประยุกต์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ ปี การศึกษา 2554 ลิขสิ ทธิ์ของภาควิชาคณิ ตศาสตร์ คณะวิทยาศาสตร์ ประยุกต์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ


การอินทิเกรตเชิงตัวเลขโดยวิธีซิมป์ สัน 1/3 แบบปรับปรุ ง (Numerical Integrations by an Adaptive Simpson’s 1/3 Method)

นางสาวกัญญารัตน์ ฉายชัยภูมิ นางสาวจันทรวรรณ อัชฌาศัย นางสาวฐิติรัตน์ บุญช่วยชู

โครงงานนี้เป็ นส่ วนหนึ่งของการศึกษาตามหลักสู ตรปริ ญญาวิทยาศาสตรบัณฑิต สาขาวิชาคณิ ตศาสตร์ประยุกต์ ภาควิชาคณิ ตศาสตร์คณะวิทยาศาสตร์ประยุกต์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ ปี การศึกษา 2554 ลิขสิ ทธิ์ของภาควิชาคณิ ตศาสตร์ คณะวิทยาศาสตร์ประยุกต์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ


ชื่อโครงงาน

:

การอินทิเกรตเชิงตัวเลขโดยวิธีซิมป์ สัน 1/3 แบบปรับปรุ ง (Numerical Integrations by an Adaptive Simpson’s 1/3 Method)

โดย

:

สาขาวิชา : ภาควิชา : คณะ : อาจารย์ที่ปรึ กษา : ปี การศึกษา :

น.ส. กัญญารัตน์ ฉายชัยภูมิ น.ส. จันทรวรรณ อัชฌาศัย น.ส. ฐิติรัตน์ บุญช่วยชู คณิ ตศาสตร์ประยุกต์ คณิ ตศาสตร์ วิทยาศาสตร์ประยุกต์ อาจารย์สันติพงษ์ ประสาททอง 2554

ได้รับอนุมตั ิให้นบั เป็ นส่วนหนึ่งของการศึกษาตามหลักสูตร ปริ ญญาวิทยาศาสตรบัณฑิต สาขาวิชาคณิ ตศาสตร์ประยุกต์

................................................................ (อ.สันติพงษ์ ประสาททอง)

อาจารย์ที่ปรึ กษา

................................................................ (ผศ.ดร.สุ รัตนา สังข์หนุน)

กรรมการ

................................................................ (อ.ดร.วลัยลักษณ์ ชวนัสพร)

กรรมการ


บทคัดย่อ ในโครงงานนี้ ทางคณะผูจ้ ดั ทาได้ศึกษาทฤษฎีการประมาณค่าอินทิกรัลของฟังก์ชนั ตัวแปร เดียว คือ Midpoint (Riemann’s Sum), Trapezoid, Simpson’s 1/3 และ Numerical Integrations by an Adaptive Simpson’s 1/3 Method รวมทั้งเขียนโปรแกรมโดยใช้โปรแกรม ทางคณิ ตศาสตร์ เพื่อเปรี ยบเทียบค่าอินทิกรัลที่ได้จากการประมาณด้วยวิธีขา้ งต้นกับ ค่ า จริ ง โดยได้แ สดงจ านวนครั้ งของฟั ง ก์ ชัน ที่ ใ ช้ใ นการค านวณค่ า อิ น ทิ ก รั ล ของโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method กับโปรแกรมการประมาณ ค่าอินทิกรัลอื่นๆ คือ โปรแกรม Simpson’s 1/3 โปรแกรม Trapezoid และโปรแกรม Midpont


Abstract In this project, the authors study theories to estimate the integral of the function of one variable that is Midpoint (Riemann’s Sum), Trapezoid, Simpson’s 1/3 and Numerical Integrations by an Adaptive Simpson’s 1/3 Method. In addition, we use to write programmes to compare the numerical results and the exact values with the number of functions used in the calculation of the integrals of those methods.


กิตติกรรมประกาศ โครงงานเรื่ อง Numerical Integrations by an Adaptive Simpson’s 1/3 Method (การอิ น ทิ เกรตเชิ ง ตัว เลขโดยวิ ธี ซิ ม ป์ สัน 1/3 แบบปรั บปรุ ง ) สาเร็ จลุล่วงด้วยดี ก็ด้วยความ อนุ เคราะห์ช่วยเหลื อจากหลายฝ่ าย ทางคณะผูด้ าเนิ นงานขอขอบพระคุ ณ อาจารย์สั นติ พงษ์ ประสาททอง ซึ่ ง เป็ นอาจารย์ที่ ป รึ ก ษา ในการท าโครงงานฉบับ นี้ ที่ ก รุ ณ าให้ค าแนะน าที่ เ ป็ น ประโยชน์และแก้ไขข้อบกพร่ องต่างๆ รวมทั้งคณาจารย์ภาควิชาคณิ ตศาสตร์ ทุกท่านที่ประสาทวิชา ความรู ้ต่าง ๆ ตลอดระยะเวลาที่ผา่ นมาจนมีความรู ้ความสามารถเพียงพอสาหรับทาโครงงานนี้ อีก ทั้งยังสละเวลาตรวจแก้ไขและให้คาปรึ กษา ตลอดจนแนะแนวทางต่าง ๆ อันเป็ นประโยชน์กบั ทาง คณะผูด้ าเนินงาน สุ ดท้ายนี้ ขอขอบคุณเพื่อนทุกคนรวมทั้งผูท้ ี่เกี่ยวข้องที่ได้ให้ความช่วยเหลือในด้านต่าง ๆ พร้อมเป็ นแรงใจ สนับสนุ นให้แก่ ทางคณะผูด้ าเนิ นงานให้สามารถทาโครงงานนี้ สาเร็ จลุล่วงไป ด้วยดี น.ส. ฐิติรัตน์ บุญช่วยชู น.ส. กัญญารัตน์ ฉายชัยภูมิ น.ส. จันทรวรรณ อัชฌาศัย คณะผูจ้ ดั ทา


สารบัญ หน้า ข ค ง จ ช ซ

บทคัดย่อภาษาไทย บทคัดย่อภาษาอังกฤษ กิตติกรรมประกาศ สารบัญ สารบัญตาราง สารบัญภาพ บทที่ 1 บทนา 1.1 ความเป็ นมาและความสาคัญของปั ญหา 1.2 วัตถุประสงค์ 1.3 ขอบเขตของการดาเนินงาน 1.4 ระเบียบวิธีดาเนิ นการ 1.5 ประโยชน์ที่คาดว่าจะได้รับ บทที่ 2 ความรู ้พ้ืนฐานและทฤษฎีที่เกี่ยวข้อง 2.1 Indefinite Integral (อินทิกรัลไม่จากัดเขต)

1 2 2 2 3

4

2.2 Definite Integral (อินทิกรัลจากัดเขต)

5

2.3 Riemann’s Sum (การประมาณค่าอินทิกรัลโดยวิธีผลบวกรี มน ั ต์)

5

2.4 Trapezoid Rule (กฎสี่ เหลี่ยมคางหมู)

10

2.5 Simpson’s 1/3 Method (ขั้นตอนวิธีของซิ มป์ สัน 1/3)

11

2.6 Numerical Integrations by an Adaptive Simpson’s 1/3 Method

13

(การอินทิเกรตเชิงตัวเลขโดยวิธีซิมป์ สัน 1/3 แบบปรับปรุ ง) บทที่ 3 วิธีการดาเนินงาน 3.1 ขั้นตอนการดาเนิ นงาน 3.2

16

ขั้นตอนการทางานของโปรแกรม

16


สารบัญ(ต่อ) หน้า บทที่ 4 ผลการดาเนินงาน 4.1 ผลของการดาเนินงาน 4.2 ข้อเสนอแนะ

41 42

บรรณานุกรม ภาคผนวก

43 44


สารบัญตาราง ตารางที่

หน้า 1

3.1

แสดงการประมาณค่าของ  0 1

3.2

x2 dx x2

27

แสดงการประมาณค่าของ  e x dx

29

0

 6

3.3

แสดงการประมาณค่าของ  sin x dx

31

0 1

3.4

แสดงการประมาณค่าของ  arccos x dx

33

0 1

3.5

แสดงการประมาณค่าของ  e x dx 2

35

0 1

3.6

1 dx x 0.000001

แสดงการประมาณค่าของ 

37

1

3.7

แสดงการประมาณค่าของ 

39

ln x dx

0.000001


สารบัญภาพ ภาพที่ 2.1 การแบ่งช่วง [a, b] โดยแบ่งเป็ น n ช่วง ซึ่ งไม่จาเป็ นต้องเท่ากันหมด 2.2 ตัวอย่างแสดงผลแบ่งกั้นของช่วง [0,6] โดยแบ่งเป็ น 4 ช่วงย่อย 2.3 กราฟแสดงพื้นที่ใต้เส้นโค้งของฟั งก์ชน ั ที่มีค่าไม่เป็ นลบ 2.4 กราฟแสดงแบ่งช่วง [a, b] ออกเป็ น n ช่วง 2.5 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Rectangle and left 2.6 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Rectangle and right 2.7 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Midpoint 2.8 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Trapezoid 2.9 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Simpson’s 1/3 3.1 การคานวณหาค่า Q1 จากจุด 3 จุด 3.2 การคานวณหาค่า Q2 จากจุด 5 จุด 3.3 แสดงการส่ งค่าจาก [Qa,ka] ไปยัง [Q,fcount] 3.4 แสดงการส่ งค่าจาก [Qb,kb] ไปยัง [Q,fcount] 3.6 กราฟแสดงฟังก์ชน ั

5 6 7 7 8 9 9 10 11 22 22 24 25

2

x x2 y  ex

3.5 กราฟแสดงฟังก์ชน ั y

หน้า

28 30

3.7 กราฟแสดงฟังก์ชน ั y  sin x

32

3.8 กราฟแสดงฟังก์ชน ั y  arccos x

34

3.9 กราฟแสดงฟังก์ชน ั y  e x 3.10 กราฟแสดงฟั งก์ชน ั y1 x 3.11 กราฟแสดงฟั งก์ชน ั y  ln x 2

36 38 40


บทที่ 1 บทนำ 1.1 ควำมเป็ นมำและควำมสำคัญของโครงงำน

เริ่ มแรก Walter

Gander

และ Walter

Gautschi

[7] ได้ศึกษำหลักของกำรปรับกำร

ประมำณค่ำ โปรแกรมกำรปรับกำรประมำณค่ำเป็ น Recursive (เรี ยกซ้ ำ) จะแสดงโปรแกรมกำร ประมำณค่ำใน

สองโปรแกรม คือ โปรแกรม Adaptive Recursive Simpson’s rule

และโปรแกรม Gauss-Lobatto

พร้ อมทั้งเปรี ยบเทียบผลลัพธ์และบรรยำยสิ่ งที่น่ำสนใจและ

ข้อบกพร่ องในขั้นตอนกำรปรับปรุ งโปรแกรม Adaptive

Recursive Simpson’s rule ใน quad

และโปรแกรม Gauss-Lobatto ใน quadl โดยใช้โปรแกรมทำงคณิ ตศำสตร์

ซึ่ งเป็ น

แรงจูงใจให้คณะผูจ้ ดั ทำสนใจที่จะศึกษำโปรแกรม Adaptive Recursive Simpson’s rule จำกที่ ก ล่ ำ วข้ำ งต้น คณะผูจ้ ัด ท ำจึ ง สนใจศึ ก ษำกำรอิ น ทิ ก รั ล จ ำกัด เขต ด้ว ยโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method โดยใช้โปรแกรมทำง

คณิ ตศำสตร์

ในกำรประมำณค่ำฟั งก์ชนั ดังนั้นคณะผูจ้ ดั ทำจึงจำเป็ นที่จะต้องศึกษำ

ทฤษฎี กำรประมำณค่ำอินทิกรั ลของฟั งก์ชันตัวแปรเดี ยวโดยวิธี Midpoint

(วิธีจุดกึ่ งกลำง) ,

Trapezoid (กฎสี่ เหลี่ยมคำงหมู) , Simpson’s 1/3 (ขั้นตอนวิธีของซิ มป์ สัน 1/3) และ Numerical Integrations by an Adaptive Simpson’s 1/3 Method (กำรอินทิเกรตเชิงตัวเลขโดยวิธีซิมป์ สัน

1/3 แบบปรับปรุ ง) เพื่อใช้ในกำรเขียนโปรแกรม และเปรี ยบเทียบค่ำอินทิกรัลที่ได้จำกกำรประมำณ ด้วยวิธีขำ้ งต้นกับค่ำจริ ง โดยได้แสดงเวลำที่ใช้ในกำรประมวลผลและจำนวนครั้งของฟั งก์ชนั ที่ใช้ ในกำรคำนวณค่ำอินทิกรัลของโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3

Method

กับโปรแกรมกำรประมำณค่ำอินทิกรัลอื่นๆ คือ โปรแกรม Simpson’s

โปรแกรม Trapezoid และโปรแกรม Midpoint

1/3


1.2 วัตถุประสงค์

เพื่อศึกษำทฤษฎีกำรประมำณค่ำอินทิกรัลของฟังก์ชนั ตัวแปรเดียว คือ Midpoint, Trapezoid, Simpson’s 1/3 และ Numerical Integrations by an Adaptive Simpson’s 1/3 1.2.1

Method 1.2.2

เพื่อเขียนโปรแกรมที่ใช้ในกำรประมำณค่ำอินทิกรัลของฟังก์ชนั ได้แก่ โปรแกรม

Midpoint, Trapezoid, Simpson’s 1/3 และ Numerical Integrations by an Adaptive Simpson’s 1/3 Method เพื่อเปรี ยบเทียบค่ำอินทิกรัลที่ได้จำกกำรประมำณด้วยวิธีขำ้ งต้นกับค่ำ

จริ ง โดยได้แสดงเวลำที่ใช้ในกำรประมวลผล และจำนวนครั้งของฟังก์ชนั ที่ใช้ในกำรคำนวณค่ำ อินทิกรัลของโปรแกรม 1.3 ขอบเขตของกำรดำเนิ นงำน

ในที่น้ ีเรำจะอินทิเกรตฟังก์ชนั ตัวแปรเดียวเท่ำนั้น และฟังก์ชนั จะต้องต่อเนื่องในช่วงที่ อินทิเกรต และจะต้องไม่เป็ นอินทิกรัลไม่ตรงแบบและใช้โปรแกรม

version

R2011a (32bits) และคุณลักษณะของ Notebook ที่ใช้

- CPU

Core™ i3 2.53 GHz

- RAM ขนำด 2GB

- OS Windows 7 (32bits) 1.4 ระเบียบวิธีดำเนิ นกำร

ศึกษำทฤษฎีกำรประมำณค่ำอินทิกรัลของฟังก์ชนั ตัวแปรเดียว คือ Midpoint, Trapezoid, Simpson’s 1/3 และ Numerical Integrations by an Adaptive Simpson’s 1/3 1.4.1

Method 1.4.2

ศึกษาการโปรแกรมทำงคณิ ตศำสตร์

2


1.5 ประโยชน์ที่คำดว่ำจะได้รับ 1.5.1

ได้รับควำมรู ้เกี่ยวกับทฤษฎีกำรประมำณค่ำอินทิกรัลของฟังก์ชนั ตัวแปรเดียว คือ

Midpoint, Trapezoid, Simpson’s 1/3 และ Numerical Integrations by an Adaptive Simpson’s 1/3 Method 1.5.2

ได้โปรแกรมกำรประมำณค่ำอินทิกรัลจำกัดเขต

3


บทที่ 2 ความรู ้พ้นื ฐานและทฤษฎีที่เกี่ยวข้อง ในบทนี้ เราจะกล่าวถึงการอินทิกรัลไม่จากัดเขตและอินทิกรัลจากัดเขตและทฤษฎีบทที่ใช้ ในการประมาณค่าอินทิกรัลจากัดเขต 2.1 Indefinite Integral (อินทิกรัลไม่จากัดเขต)

กาหนดให้

y  F ( x)

มีอนุพนั ธ์เป็ น dy  f ( x) dx

สิ่ งที่ตอ้ งการคือฟังก์ชนั ฟั งก์ชนั

y  F ( x)

y  x 2 เท่ากับ 2x

f ( x)

บนช่วงเปิ ด (a, b) นัน่ คือ

เมื่อ a  x  b

เช่น ถ้าฟั งก์ชนั

y

dy  2x dx

มีอนุพนั ธ์เป็ น

นอกจากนั้นฟั งก์ชนั y  x2  5, y  x2 

จากอนุพนั ธ์ของ

2 , y  x 2  5 และโดย

ทัว่ ๆ ไปฟังก์ชนั y  x2  c เมื่อ c เป็ นค่าคงตัว จะมีอนุพนั ธ์เท่ากับ 2x ทั้งสิ้ น นิยาม 2.1 จะกล่าวว่า

F ( x)

d F ( x)  f ( x) dx

ข้อสังเกต

1.

เป็ นปฏิยานุพนั ธ์ ของ ทุก ๆ

x

ถ้า

ในโดเมน f ( x)

เทียบกับ

เมื่อ c เป็ นคงที่ ใดๆ จะเป็ นปฏิยานุพนั ธ์ของ

ถ้า F  x  เป็ นปฏิยานุพนั ธ์ของ F ( x)  c

3.

เทียบกับ

ถ้า F  x  เป็ นปฏิ ยานุ พนั ธ์อนั หนึ่ งของ F ( x)  c

2.

x

f ( x)

f ( x)

f ( x)

x

แล้ว

ด้วย

แล้วปฏิยานุพนั ธ์อื่น ๆ จะอยูร่ ู ป

โดยที่ c เป็ นค่าคงที่

ปฏิยานุพนั ธ์ ของ

f ( x)

จะเขียนแทนด้วยสัญลักษณ์  f ( x)dx นัน่ คือ

 f ( x)dx  F ( x)  c


สัญลักษณ์  เรี ยกว่า เครื่ องหมายอินทิกรัล เรี ยก f ( x) ว่า ตัวถูกอินทิเกรัล (integral) เรี ยก c (arbitrary constunt) ว่า ค่าคงตัวของอินทิกรัลและ  f ( x)dx อ่านว่า อินทิกรัลของ f ( x) เทียบ

x

อินทิกรัลแบบนี้ เรี ยกอินทิกรัลไม่จากัดเขต

2.2 Definite Integral (อินทิกรัลจากัดเขต)

ในบทที่จะกล่าวถึงแนวคิดพื้นฐานเกี่ยวกับอินทิกรัลจากัดเขตหรื อปฏิพนั ธ์จากัดเขต ซึ่ งมี แนวความคิดมาจากการหาพื้นที่ใต้เส้นโค้ง ทฤษฎีบท

2.1

ถ้า

f

เป็ นฟั งก์ชนั ที่อินทิกรัลได้บนช่วงที่มีจานวนสามจานวน คือ a, b และ c b

c

b

a

a

c

โดย ที่ a  c  b แล้ว  f ( x)dx  f ( x)dx   f ( x)dx 2.3 Riemann’s Sum (การประมาณค่าอินทิกรัลโดยวิธีผลบวกรี มน ั ต์)

พื้นที่ใต้เส้นโค้งของ

y  f ( x) กับแกน x

บนช่วง [a, b] คือ

n

A  lim  f ( xk* )xk* n 

โดยมีเงื่อนไขว่า

f ( x)  0

[a, b] ใหม่ โดยแบ่งเป็ น n

เป็ นฟังก์ชนั ที่ต่อเนื่องบนช่วง [a, b] ต่อไปจะพิจารณาการแบ่งช่วง ช่วง ซึ่งไม่จาเป็ นต้องเท่ากันหมด โดยที่

a  x0  x1  x2  ...  xn  b

xk  xk  xk 1

k 1

เรี ยกช่วง [ xk 1 , xk ] ว่าช่วงที่ k แทนด้วย xk นัน่ คือ

ดังภาพที่ 2.1

ภาพที่ 2.1 การแบ่งช่วง [a, b] โดยแบ่งเป็ น n ช่วง ซึ่งไม่จาเป็ นต้องเท่ากันหมด เรี ยกเซตของช่วงที่แบ่งทั้งหมดบนช่วง [a, b] ว่าผลแบ่งกั้น (partition) ของช่วง [a, b] ถ้า ช่วงย่อยที่แบ่ง n ช่วงมีขนาดเท่ากันจะได้ xk  x  partition) 5

ba n

ซึ่งเรี ยกว่าผลแบ่งกั้นปกติ (regular


ภาพที่ 2.2 ตัวอย่างแสดงผลแบ่งกั้นของช่วง [0,6] โดยแบ่งเป็ น 4 ช่วงย่อย จากภาพที่ 2.2 แสดงผลแบ่งกั้นของช่วง [0,6] โดยแบ่งเป็ น 4 ช่วงย่อยซึ่ง max xk  x3 

9 5  2 2 2

n

เราจะเรี ยก  f ( xk* )xk* ว่าผลบวกรี มนั น์ (Riemann’s sum) k 1

เพื่อเป็ นเกียรติแก่นกั คณิ ตศาสตร์ชาวเยอรมันชื่อ Gorge Friedrich Bernhand Riemann (18261866)

นิยาม 2.2 จะกล่าวว่า

เป็ นฟังก์ชนั ที่อินทิกรัลได้ (integralble function) บนช่วง [a, b]

f n

ถ้า maxlim  f ( xk* )xk* หาค่าได้โดยไม่ข้ นึ อยูก่ บั ช่วงย่อย xk* ใดๆ x 0 k 1

นิยาม 2.3 ถ้า f เป็ นฟังก์ชนั ที่นิยามบนช่วง [a, b] อินทิกรัลจากัดเขตของ f จาก a ไป b แทน b

n

a

k 1

ด้วย  f ( x)dx  maxlim  f ( xk* )xk* ถ้าลิมิตหาค่าได้ (exist) เรี ยก f ( x) ว่าตัวถูก x 0 อินทิกรัล (integrand) เรี ยก a และ b ว่าลิมิตล่างและลิมิตบนของการอินทิกรัล (lower limit and upper limit of integration)

2.3.1 พื้นที่ใต้เส้นโค้งของฟั งก์ชน ั ที่มีค่าไม่เป็ นลบ

ให้

f ( x)  0 เป็ นฟั งก์ชันที่ ต่อ เนื่ องบนช่ ว ง [a, b]

ด้านล่างด้วยแกน ด้วยเส้นโค้ง

x

และ A

แทนบริ เวณที่ ถูกปิ ดล้อม

และด้านข้างทั้งสองด้านด้วยเส้นตรง x  a และ x  b ส่ วนด้านบนปิ ดล้อม

y  f ( x) ดังภาพที่ 2.3

6


ภาพที่ 2.3 กราฟแสดงพื้นที่ใต้เส้นโค้งของฟังก์ชนั ที่มีค่าไม่เป็ นลบ แบ่งช่วง [a, b] ออกเป็ น

n

ช่วงเท่าๆ กัน โดยแต่ละช่วงกว้าง

ba แทนด้วย x ที่จุด n

โดยที่ a  x0  x1  x2  ...  xn  bn ลากเส้นตรงจากจุดแบ่งแต่ละจุดไปยัง จุดที่สมนัยกันบนเส้นโค้ง y  f ( x) จะแบ่งพื้นที่ A ออกเป็ น n ส่ วน เราจะประมาณค่าของพื้นที่ แต่ละส่ วนด้วยพื้นที่สี่เหลี่ยมผืนผ้า แต่ละรู ปที่มีความสู ง f ( xk* ) โดยที่ xk* อยูบ่ นช่วง [ xk 1 , xk ] ที่ ซึ่ง k  1, 2,3,..., n ดังภาพที่ 2.4 x0 , x1 , x2 ,..., xn

ภาพที่ 2.4 กราฟแสดงแบ่งช่วง [a, b] ออกเป็ น n ช่วง ดังนั้นพื้นที่สี่เหลี่ยมผืนผ้าที่สร้างขึ้นบนแต่ละช่วง คือ f ( x1* )x, f ( x2* )x,..., f ( xk* )x,..., f ( xn* )x

7


ให้

A

แทนผลรวมของพื้นที่สี่เหลี่ยมผืนผ้าทั้งหมด n รู ป ดังนั้น A  f ( x1* )x  f ( x2* )x  ...  f ( xk* )x  ...  f ( xn* )x n

  f ( xk* )x k 1

ถ้า n มีค่ามากขึ้นๆ คือ n   ค่าของ x จะมีค่าน้อยลง คือ x  0 ดังนั้น พื้นที่

n

A  lim  f ( xk* )x n 

k 1

นิยาม 2.4 พื้นที่ใต้เส้นโค้ง (Area Under a Curve) ถ้า f เป็ นฟั งก์ชนั ที่ต่อเนื่ องบนช่วง [a, b] และ f ( x)  0 สาหรับทุกๆ แล้วพื้นที่ใต้เส้นโค้ง

y  f ( x)

x

ในช่วง [a, b]

และแกน x บนช่วง [a, b] นิยามโดย n

A  lim  f ( xk* )x n 

k 1

2.3.2 Rectangle and Midpoint rule 2.3.2.1 Rectangle and left

สมมติให้

f ( x)  f ( a )

จะได้

b

A   f (a)dx  f (a)(b  a)

โดยที่

f (a)

a

ของช่วง ดังภาพที่ 2.5

ภาพที่ 2.5 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Rectangle and left 8

คือ จุดต้น


2.3.2.2 Rectangle and right b

A   f (b)dx  f (b)(b  a)

โดยที่

f (b)

สมมติให้

f ( x)  f (b)

จะได้

คือ จุดปลายของช่วง ดังภาพที่ 2.6

a

ภาพที่ 2.6 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Rectangle and right 2.3.2.3 Midpoint rule

เป็ นจุดกึ่งกลางของช่วง จะได้

 ab f ( x)  f    2 

สมมติให้

โดยที่  a  b , f  a  b    2

 ab   a b  A   f ( x)dx   f   dx  f   (b  a)  2   2  a a

แม่นยามากกว่า Rectangle เนื่องจาก

b

b

f ( x)

 2 

วิธีน้ ี มีความ

เป็ นฟั งก์ชนั ทางเดียว และวิธีน้ ีขอบเขตพื้นที่ใต้เส้นโค้ง

ที่ ถู ก ละทิ้ ง ไปก็ จ ะมี ก ารชดเชยด้ว ยขอบเขตบนเส้ น โค้ง แต่ ก็ ไ ม่ ใ ช่ ว่ า จะถู ก ต้อ งในทุ ก กรณี ดังภาพที่ 2.7

ภาพที่ 2.7 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Midpoint

9


2.4 Trapezoid Rule (กฎสี่ เหลี่ยมคางหมู)

เป็ นการหาพื้นที่ใต้เส้นโค้งด้วยสี่ เหลี่ยมคางหมูที่ได้จากการแบ่งพื้นที่ใต้เส้นโค้งในช่ วง (a, b) ออกเป็ นช่ วงย่อย

ช่วงเท่าๆกัน โดยการหาพื้นที่ของสี่ เหลี่ยมคางหมูซ่ ึ งประกอบด้วย

n

สี่ เหลี่ยมผืนผ้าและสามเหลี่ยม แล้วนาพื้นที่แต่ละรู ปมารวมกันแล้วจะได้ค่าอินทิกรัลของฟั งก์ชนั f ( x)

ในช่วง a ถึง b จะได้ b

1

 f ( x) dx  f (a)(b  a)  2  f (b)  f (a) (b  a) เทอมแรก

a

จะได้สูตรสี่ เหลี่ยมคางหมู   จากสมการ (2.1) เทอมแรก และความยาวเท่ากับ

เทอมที่สอง

f (a)  f (b) 

f (a)(b  a)

(b  a) เทอมที่ สอง

2

(2.1)

(b  a)

เป็ นพื้นที่รูปสี่ เหลี่ยมผืนผ้า โดยมีความสู งเท่ากับ

f (a)

1  f (b)  f (a) (b  a) เป็ นพื้นที่สามเหลี่ยม โดยมี 2

ฐานเท่ากับ (b  a) และความสู งเท่ากับ  f (a)  f (b) พื้นที่ระหว่างเส้นโค้ง

f ( x)

ประมาณค่า

โดยพื้นที่รูปสี่ เหลี่ยมคางหมู (รู ปสี่ เหลี่ยมผืนผ้ารวมกับรู ปสามเหลี่ยม) ดังภาพ 2.8

ภาพที่ 2.8 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Trapezoid A คือพื้นที่สามเหลี่ยม =

1 (b  a)[ f (b)  f (a)] 2

10

และ B คือพื้นที่สี่เหลี่ยมผืนผ้า =

f (a)(b  a)


2.5 Simpson’s 1/3 Method (ขั้นตอนวิธีของซิ มป์ สัน 1/3)

ใช้การแบ่งช่วงจาก a ถึง b เป็ นช่วงที่เท่าๆ กัน ด้วยจานวนคู่ในที่น้ ีแบ่งเป็ น 2 ช่วงจะได้ ระยะห่างเท่ากับ ดังภาพ 2.9

h

ba 2

ที่ผา่ นจุด 3 จุดคือ (a, f (a)),  a  b , f  a  b   , (b, f (b))  2

 2 

y

P2 ( x)

f (b)

y  f ( x)

f (a)

 ab f   2 

 h

0

ab 2

a

x

h

b

ภาพที่ 2.9 การประมาณค่าอินทิกรัลเชิงตัวเลขด้วยวิธี Simpson’s 1/3 จะประยุกต์ใช้ผลต่างสื บเนื่ องข้างหน้าของนิ วตัน (Newton

Forward

Difference) Pn ( x) เพื่อหาสู ตรการคานวณค่าอิ นทิ กรั ลเชิ งตัวเลขของฟั งก์ชน ั f

Divided

ณ จุด

x0 ,..., xn

จะได้สูตรพหุนามผลต่างสื บเนื่องดีกรี n คือ Pn ( x)  f [ x0 ]  f [ x0 , x1 ]( x  x0 )  f [ x0 , x1 , x2 ]( x  x0 )( x  x1 )  ...  f [ x0 , x1 ,..., xn ]( x  x0 )( x  x1 )...( x  xn1 )

ในที่น้ ี เราจะใช้สูตรพหุ นามผลต่างสื บเนื่ องข้างหน้าของนิ วตันดี กรี 2 กาหนดให้พนุนามนี้ผา่ นจุด 3 จุดคือ

 ab x0  a, x1     2 

คือ

P2 ( x) โดย

และ x2  b เพื่อหาสู ตรการคานวณค่า

อินทิกรัลเชิงตัวเลขของ f ณ จุด a ถึง b จะได้ สูตรพหุนามผลต่างสื บเนื่องดีกรี 2 คือ P2 ( x)  f [ x0 ]  f [ x0 , x1 ]( x  x0 )  f [ x0 , x1, x2 ]( x  x0 )( x  x1 ) a b   a b  a b   P2 ( x)  f [a]  f a, ( x  a )  f  a, , b  ( x  a)  x   (2.2)  2  2 2     

11


นา (2.2) มาหาค่าอินทิกรัลจะได้  a  b   a b  ab   a P2 ( x)dx  a  f [a]  f a, 2  ( x  a)  f a, 2 , b  ( x  a)  x  2 dx b

b

2  ab  a P2 ( x)dx  (b  a) f  2   (b  a)2 b

จัดรู ปสมการแล้ว จะได้กฎการประมาณค่าของ b

เนื่องจาก

h

ba 2

b

f ( x)dx   P2 ( x)dx 

a

a

  f (b)  2 f 

 (b  a)3  ab   f ( a )    12  2  

(2.3)

Simpson’s 1/3 คือ ba    ab f (a )  4 f    f (b)   6   2  

จะได้วา่ h

b

  ab   f (b)  2  

 f ( x)dx  3  f (a)  4 f  a

(2.4)

สูตรความผิดพลาด f ( x)  Pn ( x) 

f ''( )  ab (b  a)3  (b  a)  2  24

b

Midpoint rule

f ( n1) ( ) ( x  x0 )( x  x1 )...( x  xn ) (n  1)!

คือ  f ( x)dx  f   a

ตัวประมาณ Trapezoid rule

error term

คือ  f ( x)dx  (b  a) f (a)  f (b)  2 b

a

ตัวประมาณ b

Simpson’s 1/3 rule

คือ  f ( x)dx  a

สาหรับบาง   (a, b)

f ''( ) (b  a)3 12

สาหรับบาง   (a, b)

error term

ba   (b  a)5 (4)  ab f ( a )  4 f  f ( b )     2880 f ( ) 6   2  

ตัวประมาณ

เมื่อเรากาหนดให้ h  b  a และ สาหรับบาง   (a, b) เราจะได้ 2

12

error term


b

f ( x)dx 

a

h h5 (4) f ( a )  4 f ( a  h )  f ( b )  f ( )   3 90

2.6 Numerical Integrations by an Adaptive Simpson’s 1/3 Method (การอินทิเกรตเชิ ง

ตัวเลขโดยวิธีซิมป์ สัน 1/3 แบบปรับปรุ ง) เราจะกล่าวถึ งการปรั บปรุ งขั้นตอนวิธีของ Simpson’s 1/3 โดยให้

h ba

ความกว้างของช่วง [a, b] เริ่ มต้นด้วยการแบ่งช่วงออกเป็ น 2 ส่ วนเท่าๆกัน และคานวณ b

a  h /2

a

a

ให้ Q1 ( f )   f ( x)dx, Q11  

b

f ( x)dx และ Q12 

f ( x)dx

a  h /2

จากทฤษฎีบท 2.2 b

a  h /2

a

a

 f ( x)dx  

b

f ( x)dx 

f ( x)dx

a  h /2

Q1 ( f )  Q11  Q12

1  h Q1 ( f )  h  f (a)  4 f    f (b)  6 2 

และ h1 Q11 ( f )     f (a)  4 f 26 h1 Q12 ( f )     f 26

แล้วพิจารณาเงื่อนไข

h  a   4 

h  a   4 f 4 

Q1  (Q11  Q12 )  

 h  f    2 

3h     a    f (b)  4  

โดย  คือค่าความคลาดเคลื่อน (tolerances)

b

ถ้าตรงตามเงื่อนไขแล้วเป็ นคาตอบ นัน่ คือ  f ( x)dx  Q11  Q12 a

13

ซึ่ งเป็ น


a  h /2

ถ้าไม่ตรงเงื่อนไข เราจะพิจารณาค่าอินทิกรัลใหม่โดย Q11  

f ( x)dx

เราจะนาช่วงครึ่ งแรก

a

[a, a  h / 2] มาแบ่งออกเป็ น 2 ส่ วนเท่าๆกัน และคานวณ  h 1 Q111 ( f )   2   f (a)  4 f 2 6  h 1 Q112 ( f )   2   f 2 6

แล้วพิจารณาเงื่อนไข

h  a   8 

h  a   4 f 4 

h   f  a   4  

3h   a   8  

h   f  a   2  

Q11  (Q111  Q112 )   / 2 a  h /2

ถ้าตรงตามเงื่อนไขแล้ว 

f ( x)dx  Q111  Q112

ถ้าไม่ตรงตามเงื่อนไข จะทาซ้ าขั้นตอนนี้ทาง

a

ช่วงครึ่ งขวา [a  h / 2, b] และคานวณ  h 1 Q121 ( f )   2   f 2 6

h  a   4 f 2 

 h 1 Q122 ( f )   2   f 2 6

h  a   8 

3h   a   4 f 4 

3h    f  a   4  

7h     a    f (b)  8   

แล้วพิจารณาเงื่อนไข Q12  (Q121  Q122 )   / 2 b

ถ้าตรงตามเงื่อนไขแล้ว 

f ( x)dx  Q121  Q122 ถ้าไม่ตรงตามเงื่อนไข จะทาซ้ าส่ วนที่ 3

และ 4

a  h /2

ของช่ ว ง [a, b] โดยพิจ ารณาเงื่ อ นไขสาหรั บแต่ ละส่ ว น และเริ่ ม ขั้น ตอนแบ่ งช่ ว งย่อ ยทางขวา ออกเป็ น 2 ส่ วน จนกระทัง่ จะได้การประมาณค่าของช่วงทั้งหมด จานวนครั้งของการประมาณค่าอินทิกรัลหรื อจานวนครั้งของการเรี ยกซ้ าจะเพิ่มขึ้นเรื่ อยๆ ในขั้นตอนนี้ ดังนั้นในทางปฏิบตั ิเราต้องจากัดจานวนครั้งของการเรี ยกซ้ า เมื่อจานวนสู งสุ ดของการ เรี ย กซ้ ามาถึ ง เราก็จ ะยอมรั บการประมาณครั้ งล่ าสุ ด แล้วหยุด ขั้นตอนคานวณการประมาณค่า อินทิกรัลในช่วงนั้น และความแม่นยาในการประมาณค่าอินทิกรัลจะขึ้นอยู่กบั ความถูกต้องของค่า

14


ฟั ง ก์ชัน เมื่ อ ความกว้า งของช่ ว งลดลงก็ จ ะท าให้เ กิ ด ความผิ ด พลาดแบบที่ มี นัย ส าคัญ เพื่ อ ลด ข้อผิดพลาด เราก็จะลดจานวนครั้งของการเรี ยกซ้ า ถ้าอนุ พนั ธ์

f

เปลี่ยนอย่างรวดเร็ วในบางช่ วงย่อย เราจะต้องสร้างช่ วงย่อยจานวนมากๆ

ซึ่ งซ้อนกันก่อนที่เราจะได้ความแม่นยาที่ตอ้ งการ ในทางปฏิบตั ิการเขียนโปรแกรมทาได้ไม่ยาก เนื่องจากโปรแกรมคอมพิวเตอร์ที่ใช้ (

) สามารถเขียนโปรแกรมแบบเรี ยกซ้ าได้

15


บทที่ 3 วิธีการดาเนินการ ในการดาเนินโครงงาน มีข้นั ตอนดังนี้ 3.1 ขั้นตอนการดาเนิ นงาน 3.3.1 ศึกษาทฤษฎีการประมาณค่าอินทิกรัลของฟั งก์ชน ั ตัวแปรเดียว - Midpoint - Trapezoid - Simpson’s 1/3 - Numerical Integrations by an Adaptive Simpson’s 1/3 Method 3.1.2 ศึกษาโปรแกรมทางคณิ ตศาสตร์

ศึกษาโปรแกรมทางคณิ ตศาสตร์

เพื่อเขียนโปรแกรมที่ใช้ในการประมาณค่า

อิ นทิ ก รั ล ของฟั งก์ชัน โดยเขีย นโปรแกรมเพื่อประมาณค่าอิ น ทิ กรั ลโดยใช้วิ ธี Trapezoid, Simpson’s 1/3

Midpoint,

และ Numerical Integrations by an Adaptive Simpson’s 1/3

Method เพื่อเปรี ยบเทียบความคลาดเคลื่ อน

เวลาที่ใช้ในการประมวลผล และจานวนครั้งของ

ฟังก์ชนั ที่ใช้ในการคานวณการประมาณค่าอินทิกรัล 3.2 ขั้นตอนการทางานของ Numerical Integrations by an Adaptive Simpson’s 1/3 Method

ในโครงงานนี้ จะใช้ Numerical Method

Integrations by an Adaptive Simpson’s 1/3

เพื่อประมาณค่าอินทิกรัลของฟังก์ชนั โดยมีข้นั ตอนการทางานของโปรแกรมดังนี้


b

เริ่ มจากใช้โปรแกรม quadtx ซึ่ งเป็ นโปรแกรมการประมาณค่า  F ( x)dx โดยเริ่ มต้น a

input

ฟังก์ชนั (F) ขอบเขตล่าง (a) และขอบเขตบน (b) โดยมีความคลาดเคลื่อนไม่เกิน tol และ คือ ค่าประมาณของการอินทิเกรต (Q) และจานวนครั้งของฟั งก์ชนั ที่ใช้ในการคานวณค่า

output

อินทิกรัลของโปรแกรม

(fcount)

และภายในโปรแกรม quadtx ยังมีการเรี ยกใช้โปรแกรม b

quadtxstep

ซึ่ งเป็ นโปรแกรมการประมาณค่า  F ( x)dx เช่นเดียวกับโปรแกรม quadtx โดย a

input ฟั งก์ชน ั (F) ขอบเขตล่าง (a)

จุดปลายของ b

(fb)

ขอบเขตบน (b) จุดปลายของ a (fa) จุดปลายของ c (fc) และ

โดยมีความคลาดเคลื่อนไม่เกิน tol และ output คือ ค่าประมาณของการ

อินทิเกรต (Q) และจานวนครั้งของฟังก์ชนั ที่ใช้ในการคานวณค่าอินทิกรัลของโปรแกรม (fcount) แล้วเข้าเงื่อนไข ถ้า

|Q2 – Q1|  tol เป็ นจริ งแล้ว Q = Q2 + (Q2 - Q1)/15, fcount = 2

แล้วส่ งค่า Q, fcount คืน ได้ค่าอินทิกรัลคือ Q ได้ค่า fcount = k+3 จบโปรแกรม quadtx แต่ถา้ ไม่เป็ นไปตามเงื่อนไขข้างต้น จะเรี ยกใช้โปรแกรม [Qa,ka] = quadtxstep (F, a, c, tol, fa, fd, fc) และ [Qb,kb] = quadtxstep (F, c, b, tol, fc, fe, fb) โดย Q = Qa + Qb, fcount = ka + kb + 2 แล้วส่ งค่า Q, fcount คืน

quadtx

ขั้นที่ 1 : Input : F, a, b, tol F

คือ ฟังก์ชนั ตัวแปรเดียว

a

คือ ขอบเขตล่าง

b

คือ ขอบเขตบน

tol คือ ความคลาดเคลื่อน หากไม่กาหนดค่า เราจะให้ tol = 106

17


Output : Q, fcount

คือ ค่าอินทิกรัล fcount คือ จานวนครั้งของฟั งก์ชน ั ที่ใช้ในการคานวณค่าอินทิกรัลของโปรแกรม ถ้าจานวน input เข้ามาน้อยกว่า 4 ตัว หรื อไม่กาหนดค่า tol เราจะให้ tol = 106 Q

ขั้นที่ 2 : คานวณหาค่าจุดกึ่งกลางจาก c = (a+b)/2 คานวณหาค่าจุดปลายของ a จาก fa = F(a) คานวณหาค่าจุดปลายของ c จาก fc = F(c) คานวณหาค่าจุดปลายของ b จาก fb = F(b) ขั้นที่ 3 : เรี ยกใช้โปรแกรม quadtxstep โดยไปทาขั้นที่ 3.1-3.5 โดยมี input คือ F, a, b, tol, fa, fc, fb และ Output คือ Q, fcount ขั้นที่ 4 : ได้ค่าอินทิกรัล คือ Q ได้ค่า fcount = k+3 จบโปรแกรม quadtx

18


quadtxstep

ขั้นที่ 3.1 : Input : F, a, b, tol, fa, fc, fb F คือ ฟั งก์ชน ั a คือ ขอบเขตล่าง b คือ ขอบเขตบน tol คือ ความคลาดเคลื่อน fa คือ จุดปลายของ a fc คือ จุดปลายของ c fb คือ จุดปลายของ b Output : Q, fcount Q

คือ ค่าอินทิกรัล

fcount คือ จานวนครั้งของฟั งก์ชน ั ที่ใช้ในการคานวณค่าอินทิกรัลของโปรแกรม

ขั้นที่ 3.2 : คานวณหาช่วงจาก

h = b-a

คานวณหาจุดกึ่งกลางจาก c = (a+b)/2 คานวณหาจุดปลายของ d จาก fd = F((a+c)/2) คานวณหาจุดปลายของ e จาก fe = F((c+b)/2)

19


คานวณหา Q1 จากจุด 3 จุด โดยแบ่ง n เป็ น 2 ช่วง โดยใช้ Simpson’s 1/3 = h/3*(fa + 4*fc + fb) เมื่อ h  h/2 จะได้ Q1 = h/6*(fa + 4*fc + fb) คานวณหา Q2 จากจุด 5 จุด โดยแบ่ง n เป็ น 4 ช่วง แล้วนาค่าอินทิกรัลของแต่ละ 2 ช่วงที่ติดกันมา รวมกัน โดยใช้ Simpson’s 1/3 เมื่อ h  h/4 จะได้ Q2 = h/12*(fa + 4*fd + 2*fc + 4*fe + fb) ถ้าเงื่อนไข

|Q2 – Q1|  tol เป็ นจริ งแล้ว Q = Q2 + (Q2 - Q1)/15 fcount = 2 ส่ งค่า Q, fcount คืน

แต่ถา้ ไม่เป็ นไปตามเงื่อนไขข้างต้นจะทาขั้นที่ 3.3

ขั้นที่ 3.3 : โปรแกรมจะเรี ยกใช้ แล้วส่ งค่าไปยัง

[Qa,ka] = quadtxstep (F, a, c, tol, fa, fd, fc)

[Q,fcount] = quadtxstep (F, a, b, tol, fa, fc, fb)

ดังนั้น ค่า c จะถูกเปลี่ยนไปเป็ น b(ใหม่) fd จะถูกเปลี่ยนไปเป็ น fc fc จะถูกเปลี่ยนไปเป็ น fb

แล้วเรี ยกใช้โปรแกรม quadtxstep เพื่อคานวณหาค่า h, c, fd, fe, Q1, Q2 ใหม่อีกครั้ง แล้วเข้า เงื่อนไข ถ้า |Q2 – Q1|  tol เป็ นจริ งแล้ว Q = Q2 + (Q2 - Q1)/15

20


ขั้นที่ 3.4 : เช่นเดียวกับ จะส่ งค่าไปยัง

[Qb,kb] = quadtxstep (F, c, b, tol, fc, fe, fb) [Q,fcount] = quadtxstep (F, a, b, tol, fa, fc, fb)

ดังนั้น ค่า c จะถูกเปลี่ยนไปเป็ น a(ใหม่) fc จะถูกเปลี่ยนไปเป็ น fa fe จะถูกเปลี่ยนไปเป็ น fc

แล้วเรี ยกใช้โปรแกรม quadtxstep เพื่อคานวณหาค่า h, c, fd, fe, Q1, Q2 ใหม่อีกครั้ง แล้วเข้า เงื่อนไข ถ้า |Q2 – Q1|  tol เป็ นจริ งแล้ว Q = Q2 + (Q2 - Q1)/15

ขั้นที่ 3.5 : เมื่อทาการคานวณเสร็ จแล้ว จะนาค่า Qa และ Qb มารวมกัน จะได้

Q = Qa + Qb fcount = ka + kb + 2

แล้วส่ งค่า Q, fcount คืน

21


3.2.1 ภาพประกอบการทางานของโปรแกรม b

เริ่ มต้นจากการใช้โปรแกรม quadtx เพื่อประมาณค่า  F ( x)dx โดยเริ่ มต้นคานวณหาค่า a

c, fa, fc, fb

หลังจากนั้นเป็ นการเรี ยกใช้โปรแกรม quadtxstep เพื่อคานวณหาค่า

Q1, Q2

ภาพที่ 3.1 การคานวณหาค่า Q1 จากจุด 3 จุด จากภาพที่ 3.1 สามารถคานวณหาค่า Q1ได้ดงั นี้ b

 a

h   h 2 f ( x)dx     fa  4 fc  fb   ( fa  4 fc  fb)  Q1 3 6

ภาพที่ 3.2 การคานวณหาค่า Q2 จากจุด 5 จุด

22

h, c, fd, fe,


จากภาพที่ 3.2 สามารถคานวณหาค่า Q2 ได้ดงั นี้ b

c

b

a

c

f ( x)dx   f ( x)dx   f ( x)dx

a

h h     4 4    ( fa  4 fd  fc)    ( fc  4 fe  fb) 3 3

แล้วเข้าเงื่อนไข ถ้า

h ( fa  4 fd  2 fc  4 fe  fb)  Q2 12

|Q2 – Q1|  tol เป็ นจริ งแล้ว Q = Q2 + (Q2 - Q1)/15, fcount = 2 แล้วส่ ง

ค่า Q, fcount คืน ได้ค่าอินทิกรัลคือ Q ได้ค่า fcount = k+3 จบโปรแกรม quadtx แต่ถา้ ไม่เป็ นไปตามเงื่อนไขข้างต้น โปรแกรมจะเรี ยกใช้ แล้วส่ งค่าไปยัง

[Qa,ka] = quadtxstep (F, a, c, tol, fa, fd, fc)

[Q,fcount] = quadtxstep (F, a, b, tol, fa, fc, fb)

23


ขยาย

(มาจาก

fd )

(มาจาก

fc )

(มาจาก c เดิม) ภาพที่ 3.3 แสดงการส่ งค่าจาก [Qa,ka] ไปยัง [Q,fcount] จากภาพที่ 3.3 แสดงการส่ งค่าจาก [Qa,ka] = quadtxstep (F, a, c, tol, fa, fd, fc) ไปยัง [Q,fcount] = quadtxstep (F, a, b, tol, fa, fc, fb) ดังนั้น ค่า c จะถูกเปลี่ยนไปเป็ น b(ใหม่) fd จะถูกเปลี่ยนไปเป็ น fc fc จะถูกเปลี่ยนไปเป็ น fb

แล้วเรี ยกใช้โปรแกรม quadtxstep เพื่อคานวณหาค่า h, c, fd, fe, Q1, Q2 ใหม่อีกครั้ง แล้วเข้าเงื่อนไข ถ้า |Q2 – Q1|  tol เป็ นจริ งแล้ว Q = Q2 + (Q2 - Q1)/15

24


เช่นเดียวกับ จะส่ งค่าไปยัง

[Qb,kb] = quadtxstep (F, c, b, tol, fc, fe, fb) [Q,fcount] = quadtxstep (F, a, b, tol, fa, fc, fb)

(มาจาก (มาจาก

ขยาย

fe )

fc )

(มาจาก c เดิม) ภาพที่ 3.4 แสดงการส่ งค่าจาก [Qb,kb] ไปยัง [Q,fcount]

25


จากภาพที่ 3.4 แสดงการส่ งค่าจาก [Qb,kb] = quadtxstep (F, c, b, tol, fc, fe, fb) ไปยัง [Q,fcount] = quadtxstep (F, a, b, tol, fa, fc, fb) ดังนั้น ค่า c จะถูกเปลี่ยนไปเป็ น a(ใหม่) fc จะถูกเปลี่ยนไปเป็ น fa fe จะถูกเปลี่ยนไปเป็ น fc

แล้วเรี ยกใช้โปรแกรม quadtxstep เพื่อคานวณหาค่า h, c, fd, fe, Q1, Q2 ใหม่อีกครั้ง แล้วเข้าเงื่อนไข ถ้า |Q2 – Q1|  tol เป็ นจริ งแล้ว Q = Q2 + (Q2 - Q1)/15 เมื่อทาการคานวณเสร็ จแล้ว จะนาค่า Qa และ Qb มารวมกัน จะได้

Q = Qa + Qb fcount = ka + kb + 2

แล้วส่ งค่า Q, fcount คืน

26


ตัวอย่างที่ 3.1 1

2

จากการประมาณค่าของ  x dx โดยใช้วิธี Numerical x2

Integrations by an Adaptive

0

1

Simpson’s 1/3 Method

เมื่อเปรี ยบเทียบกับค่าจริ ง  0

x2 dx = 0.121860432432657 x2

โดย

กาหนดให้ (tol = 106 ) จานวนครั้ง เวลาที่ใช้ใน ของฟังก์ชนั ที่ การ ใช้ในการ ประมวลผล คานวณค่า โดยประมาณ อินทิกรัลของ (วินาที) โปรแกรม

ค่าประมาณของ ฟังก์ชนั

ความคลาด เคลื่อน (tol =106 )

0.121860433276704

8.4405 1010

0.0109

17

0.121860534203398

1.0177 107

0.0659

17

Simpson’s 1/3

0.121860605909656

1.7348 107

0.0171

15

Trapezoid

0.121860617617816

1.8519 107

0.1268

501

Midpoint

0.121860339840088

9.2593 108

0.1583

500

โดยวิธี

Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2+(Q2-Q1)/15 Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2

1

ตารางที่ 3.1 แสดงการประมาณค่าของ  0

x2 dx x2

จากตารางที่ 3.1 จะเห็นว่าการประมาณค่าด้วยวิธี Numerical

Integrations by an

Adaptive Simpson’s 1/3 Method และ Simpson’s 1/3 เหมาะสมกับฟั งก์ชน ั นี้ เนื่องจากใช้

เวลาในการประมวลผลของโปรแกรมเร็ ว กว่ า การประมาณค่ า ด้ว ยวิ ธี อื่ น ๆ โดยยอมรั บ ความ คลาดเคลื่อนทศนิยมตาแหน่งที่ 6 27


y

x2 x2

y

x ภาพที่ 3.5 กราฟแสดงฟังก์ชนั

28

y

x2 ในช่วง [0, 1] x2


ตัวอย่างที่ 3.2 1

จากการประมาณค่าของ  e x dx โดยใช้วิธี Numerical

Integrations

by

an

Adaptive

0 1

เมื่อเปรี ยบเทียบกับค่าจริ ง  e x dx

Simpson’s 1/3 Method

= 1.718281828459046 โดย

0

กาหนดให้ (tol = 106 ) จานวนครั้ง เวลาที่ใช้ใน ของฟังก์ชนั ที่ การ ใช้ในการ ประมวลผล คานวณค่า โดยประมาณ อินทิกรัลของ (วินาที) โปรแกรม

ค่าประมาณของ ฟังก์ชนั

ความคลาด เคลื่อน (tol =106 )

1.718281828675358

2.16311010

0.0133

17

1.718281974051892

1.4559 107

0.0148

17

Simpson’s 1/3

1.718281974051892

1.4559 107

0.0102

17

Trapezoid

1.718281971649196

1.4319 107

0.1946

1001

Midpoint

1.718281542078775

2.8638 107

0.1309

500

โดยวิธี

Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2+(Q2-Q1)/15 Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2

1

ตารางที่ 3.2 แสดงการประมาณค่าของ  e x dx 0

จากตารางที่ 3.2 จะเห็นว่าการประมาณค่าด้วยวิธี Numerical

Integrations by an

Adaptive Simpson’s 1/3 Method และ Simpson’s 1/3 เหมาะสมกับฟั งก์ชน ั นี้ เนื่องจากใช้

เวลาในการประมวลผลของโปรแกรมเร็ ว กว่ า การประมาณค่ า ด้ว ยวิ ธี อื่ น ๆ โดยยอมรั บ ความ คลาดเคลื่อนทศนิยมตาแหน่งที่ 6 29


y  ex

y

x ภาพที่ 3.6 กราฟแสดงฟังก์ชนั

30

y  e x ในช่วง [0, 1]


ตัวอย่างที่ 3.3  6

จากการประมาณค่าของ  sin x dx โดยใช้วิธี Numerical

Integrations by an Adaptive

0

 6

Simpson’s 1/3 Method

เมื่อเปรี ยบเทียบกับค่าจริ ง  sin x dx

= 0.133974596215561 โดย

0

กาหนดให้ (tol = 106 ) จานวนครั้ง เวลาที่ใช้ใน ของฟังก์ชนั ที่ การ ใช้ในการ ประมวลผล คานวณค่า โดยประมาณ อินทิกรัลของ (วินาที) โปรแกรม

ค่าประมาณของ ฟังก์ชนั

ความคลาด เคลื่อน (tol =106 )

0.133974596193223

2.2338 1011

0.0048

9

0.133974609880447

1.3665 108

0.0060

9

Simpson’s 1/3

0.133974601811671

5.5961109

0.0070

11

Trapezoid

0.133974583972262

1.2243 108

0.1381

501

Midpoint

0.133974602337211

6.1217 109

0.1382

500

โดยวิธี

Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2+(Q2-Q1)/15 Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2

 6

ตารางที่ 3.3 แสดงการประมาณค่าของ  sin x dx 0

จากตารางที่ 3.3 จะเห็นว่าการประมาณค่าด้วยวิธี Numerical

Integrations by an

Adaptive Simpson’s 1/3 Method และ Simpson’s 1/3 เหมาะสมกับฟั งก์ชน ั นี้ เนื่องจากใช้

31


เวลาในการประมวลผลของโปรแกรมเร็ ว กว่ า การประมาณค่ า ด้ว ยวิ ธี อื่ น ๆ โดยยอมรั บ ความ คลาดเคลื่อนทศนิยมตาแหน่งที่ 6 y  sin x

yy

x ภาพที่ 3.7 กราฟแสดงฟังก์ชนั

32

 y  sin x ในช่วง [0, ] 6


ตัวอย่างที่ 3.4 1

จากการประมาณค่าของ  arccos x dx โดยใช้วิธี Numerical

Integrations by an Adaptive

0 1

Simpson’s 1/3 Method

เมื่อเปรี ยบเทียบกับค่าจริ ง  arccos x dx

= 1 โดยกาหนดให้

0

(tol = 106 ) จานวนครั้ง เวลาที่ใช้ใน ขอ���ฟังก์ชนั ที่ การ ใช้ในการ ประมวลผล คานวณค่า โดยประมาณ อินทิกรัลของ (วินาที) โปรแกรม

ค่าประมาณของ ฟังก์ชนั

ความคลาด เคลื่อน (tol =106 )

0.999999597311613

4.0269 107

0.0336

65

0.999999344964711

6.5504 107

0.0428

65

Simpson’s 1/3

0.999998716367708

1.2836 106

0.4370

2001

Trapezoid

0.999990786283749

9.2137 106

0.2354

1001

Midpoint

1.000007535529985

7.5355 106

0.1294

500

โดยวิธี

Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2+(Q2-Q1)/15 Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2

1

ตารางที่ 3.4 แสดงการประมาณค่าของ  arccos x dx 0

จากตารางที่ 3.4 จะเห็นว่าการประมาณค่าด้วยวิธี Numerical Adaptive Simpson’s 1/3 Method

Integrations by an

เหมาะสมกับฟังก์ชนั นี้ เนื่องจากใช้เวลาในการประมวลผล

ของโปรแกรมเร็ วกว่าการประมาณค่าด้วยวิธีอื่นๆ โดยยอมรับความคลาดเคลื่อนทศนิ ยมตาแหน่งที่ 6 33


y  arccos x

y

x ภาพที่ 3.8 กราฟแสดงฟังก์ชนั

34

y  arccos x ในช่วง [0, 1]


ตัวอย่างที่ 3.5 1

จากการประมาณค่าของ  e x dx โดยใช้วิธี Numerical 2

Integrations

by

an

Adaptive

0 1

Simpson’s 1/3 Method

เมื่อเปรี ยบเทียบกับค่าจริ ง  e x dx 2

 0.746824265739706 (ใช้

0

Taylor Series ของ e x

9 เทอม) โดยกาหนดให้ (tol = 106 ) จานวนครั้ง เวลาที่ใช้ใน ของฟังก์ชนั ที่ การ ใช้ในการ ประมวลผล คานวณค่า โดยประมาณ อินทิกรัลของ (วินาที) โปรแกรม

ค่าประมาณของ ฟังก์ชนั

ความคลาด เคลื่อน (tol =106 )

0.746824134728080

1.3101107

0.0726

29

0.746824085273943

1.8047 107

0.0195

29

Simpson’s 1/3

0.746824183875915

8.1864 108

0.0337

21

Trapezoid

0.746824071499184

1.9424 107

0.1914

1001

Midpoint

0.746824255438936

1.0301108

0.1552

500

โดยวิธี

Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2+(Q2-Q1)/15 Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2

1

ตารางที่ 3.5 แสดงการประมาณค่าของ  e x dx 2

0

จากตารางที่ 3.5 จะเห็นว่าการประมาณค่าด้วยวิธี Numerical

Integrations by an

Adaptive Simpson’s 1/3 Method และ Simpson’s 1/3 เหมาะสมกับฟั งก์ชน ั นี้ เนื่องจากใช้

เวลาในการประมวลผลของโปรแกรมเร็ ว กว่ า การประมาณค่ า ด้ว ยวิ ธี อื่ น ๆ โดยยอมรั บ ความ คลาดเคลื่อนทศนิยมตาแหน่งที่ 6 35


y  e x

2

y

x ภาพที่ 3.9 กราฟแสดงฟังก์ชนั

36

y  e x

2

ในช่วง [0, 1]


ตัวอย่างที่ 3.6 1

1 dx โดยใช้วิธี Numerical Integrations by an Adaptive x 0.000001

จากการประมาณค่าของ 

1

Simpson’s 1/3 Method

1 dx = 13.815510557964274 x 0.000001

เมื่อเปรี ยบเทียบกับค่าจริ ง 

โดยกาหนดให้ (tol = 102 ) จานวนครั้ง เวลาที่ใช้ใน ของฟังก์ชนั การ ที่ใช้ในการ ประมวลผล คานวณค่า โดยประมาณ อินทิกรัล (วินาที) ของ โปรแกรม

ค่าประมาณของ ฟังก์ชนั

ความคลาด เคลื่อน (tol =102 )

13.816490748656168

9.8019 104

0.0359

81

13.818473387075359

2.9628 103

0.0424

81

Simpson’s 1/3

13.866829187744671

5.1319 102

126.6869

600001

Trapezoid

13.892726077931993

7.7216 102

208.3306

1000001

Midpoint

13.747875623453444

6.7635 102

147.7916

700000

โดยวิธี

Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2+(Q2-Q1)/15 Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2

1

1 dx x 0.000001

ตารางที่ 3.6 แสดงการประมาณค่าของ 

จากตารางที่ 3.6 จะเห็นว่าการประมาณค่าด้วยวิธี Numerical

Integrations by an

Adaptive Simpson’s 1/3 Method เหมาะสมกับฟั งก์ชน ั นี้ เนื่องจากใช้เวลาในการประมวลผล

37


ของโปรแกรมเร็ วกว่าการประมาณค่าด้วยวิธีอื่นๆ โดยยอมรับความคลาดเคลื่อนทศนิ ยมตาแหน่งที่ 2

y

1 x

y

x ภาพที่ 3.10 กราฟแสดงฟังก์ชนั

38

y

1 ในช่วง [0.000001, 1] x


ตัวอย่างที่ 3.7 1

จากการประมาณค่าของ 

ln x dx โดยใช้วิธี Numerical Integrations by an Adaptive

0.000001 1

เมื่อเปรี ยบเทียบกับค่าจริ ง 

Simpson’s 1/3 Method

ln x dx = -0.999985184489442

0.000001

โดยกาหนดให้ (tol = 104 ) จานวนครั้ง เวลาที่ใช้ใน ของฟังก์ชนั การ ที่ใช้ในการ ประมวลผล คานวณค่า โดยประมาณ อินทิกรัล (วินาที) ของ โปรแกรม

ค่าประมาณของ ฟังก์ชนั

ความคลาด เคลื่อน (tol =104 )

-1.000019315117968

3.4131105

0.0226

61

-1.000032075605686

4.6891105

0.0280

61

Simpson’s 1/3

-1.000059129035114

7.3945 105

2.0440

10001

Trapezoid

-1.000068546343580

8.3362 105

3.1341

15001

Midpoint

-0.999644599621173

3.4058 104

0.2198

1000

โดยวิธี

Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2+(Q2-Q1)/15 Numerical Integrations by an Adaptive Simpson’s 1/3 Method Q = Q2

1

ตารางที่ 3.7 แสดงการประมาณค่าของ 

ln x dx

0.000001

จากตารางที่ 3.7 จะเห็นว่าการประมาณค่าด้วยวิธี Numerical

Integrations by an

Adaptive Simpson’s 1/3 Method เหมาะสมกับฟั งก์ชน ั นี้ เนื่องจากใช้เวลาในการประมวลผล

ของโปรแกรมเร็ วกว่าการประมาณค่าด้วยวิธีอื่นๆ โดยยอมรับความคลาดเคลื่อนทศนิ ยมตาแหน่งที่ 4 39


y  ln x

y

x ภาพที่ 3.11 กราฟแสดงฟังก์ชนั

y  ln x ในช่วง [0.000001, 1]

40


บทที่ 4 สรุ ปผลและข้อเสนอแนะ โครงงานนี้ เป็ นการศึกษาโปรแกรม Simpson’s 1/3 Method

Numerical Integrations by an Adaptive

เพื่อเปรี ยบเทียบค่าอินทิกรัลที่ได้จากการประมาณด้วยวิธีน้ ีกบั ค่าจริ ง

โดยได้แ สดงเวลาที่ ใ ช้ใ นการประมวลผล และจ านวนครั้ งของฟั ง ก์ชัน ที่ ใ ช้ใ นการค านวณค่ า อินทิกรัลของโปรแกรม

Numerical Integrations by an Adaptive Simpson’s 1/3 Method

กับโปรแกรมการประมาณค่าอินทิกรัลอื่นๆ คือ โปรแกรม Simpson’s 1/3 โปรแกรม Trapezoid และโปรแกรม Midpoint ซึ่งในบทนี้จะเป็ นผลของการดาเนินงาน และข้อเสนอแนะ

4.1 ผลของการดาเนินงาน โปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method โดยใช้ Richardson

extrapolation สามารถใช้ได้ดีในฟั งก์ชน ั ทัว่ ไป เมื่อยอมรับความคลาดเคลื่อนที่

(tol = 106 ) เมื่อเปรี ยบเทียบกับโปรแกรมอื่นๆ เนื่องจากจะให้ค่าความเคลื่อนน้อยที่สุด อีกทั้งยังใช้ เวลาในการประมวลผลและจานวนครั้งของฟั งก์ชนั ที่ใช้ในการคานวณค่าอินทิกรัลของโปรแกรม ใกล้เคียงกับโปรแกรม

Numerical Integrations by an Adaptive Simpson’s 1/3 Method

และโปรแกรม Simpson’s

1/3 ส่ วนโปรแกรม Trapezoid

และ Midpoint จะใช้เวลาในการ

ประมวลผลและจานวนครั้งของฟังก์ชนั ที่ใช้ในการคานวณค่าอินทิกรัลของโปรแกรมมากที่สุด แต่ ถ้าเป็ นฟังก์ชนั ที่มีความชันมากๆ สามารถใช้ได้แค่โปรแกรม

Numerical Integrations by an

Adaptive Simpson’s 1/3 Method โดยใช้ Richardson extrapolation และ Numerical Integrations by an Adaptive Simpson’s 1/3 Method

เท่านั้น เนื่องจากโปรแกรมการ

ประมาณค่าอื่นๆให้ค่าความคลาดเคลื่อนมาก และถ้าเป็ นฟั งก์ชนั ที่ไม่สามารถอินทิเกรตด้วยมือได้ โปรแกรม Simpson’s

1/3 จะให้ค่าความคลาดเคลื่อนและจานวนครั้ งของฟั งก์ชน ั ที่ใช้ในการ

คานวณค่าอินทิกรัลของโปรแกรมน้อยที่สุด


4.2 ข้อเสนอแนะ จากโครงงานนี้สามารถนาไปประยุกต์เขียนโปรแกรม Adaptive Method โดยวิธีข้นั ตอน อื่นๆ เช่น Newton-Cotes Formulas และสามารถนาไปปรับปรุ งความคลาดเคลื่อนให้ดีกว่าเดิม

42


บรรณานุกรม [1]

คณาจารย์ภาควิชาคณิ ตศาสตร์, เอกสารประกอบการเรี ยนการสอน 040203101 คณิ ตศาสตร์ 1

ภาควิชาคณิ ตศาสตร์ คณะวิทยาศาสตร์ ประยุกต์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ. [2]

ดร.ปริ ญญา สงวนสัตย์, คู่มือ MATLAB ฉบับสมบูรณ์, บริ ษทั จากัดไอดีซี พรี เมียร์, มีนาคม

2533 [3] Prem K. Kythe & Michael R. Schaferkotter , HANDBOOK OF Computational Methods for Integration , Chapman & Hall/CRC Press , 2005 [4]

Amos Gilat & Vish Subramaniam , Numerical Methods for Engineers and

Scientists , John Wiley & Sons, Inc., 2008 [5] Won Y.yang, Wenwu Cao, Tae-Sang Chung and John Morris , Applied Numerical Methods Using MATLAB , John Wiley & Sons, Inc. , 2005 [6] KENDALL ATKINSON, WEIMIN HAN, ELEMENTARY NUMERICAL ANALYSIS, John Wiley & Sons, Inc., 2004 [7] W. Gander and W. Gautschi, Adaptive Quadrature - Revisited, BIT Numerical Mathematics, 40 (2000), pp. 84-101.

http : //www.inf.ethz.ch/personal/gander

43


ภาคผนวก


จะแสดง code ของโปรแกรม Numerical 1/3 Method, Simpson’s 1/3, Trapezoid

Integrations by an Adaptive Simpson’s

และ

Midpoint และตัวอย่างการประมวลผลของ

โปรแกรมดังกล่าว

แสดง code ของโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method (Q = Q2 + (Q2-Q1)/15) function [ Q,fcount ] = quadtx(F,a,b,tol,varargin) if nargin < 4 | isempty(tol) tol = 1.e-6; end % Initialization c = (a+b)/2; fa = F(a,varargin{:}); fc = F(c,varargin{:}); fb = F(b,varargin{:}); % Recursive call [Q,k] = quadtxstep(F, a, b, tol, fa, fc, fb, varargin{:}); fcount = k + 3; end

45


function [Q,fcount] = quadtxstep(F,a,b,tol,fa,fc,fb,varargin) % Recuraive subfunction used by quadtx. h = b-a; c = (a + b)/2; fd = F((a+c)/2,varargin{:}); fe = F((c+b)/2,varargin{:}); Q1 = h/6 * (fa + 4*fc + fb); Q2 = h/12 * (fa + 4*fd + 2*fc + 4*fe + fb); if abs(Q2 - Q1) <= tol Q = Q2 + (Q2 - Q1)/15; % ถ้าเป็ นโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method เราจะให้ Q = Q2 fcount = 2; else [Qa,ka] = quadtxstep(F, a, c, tol, fa, fd, fc, varargin{:}); [Qb,kb] = quadtxstep(F, c, b, tol, fc, fe, fb, varargin{:}); Q = Qa + Qb; fcount = ka + kb + 2; end end

46


แสดง code ของโปรแกรม Simpson’s 1/3 function [ Q ,fcount] = Csimpson( F,a,b,n,varargin ) Q =0; sumend = F(a,varargin{:}) + F(b,varargin{:}); %fa = F(a,varargin{:}) sumodd = 0; sumeven = 0; if(mod(n,2)==0) h = (b-a)/n; for i=2:2:n-2 sumeven = sumeven + F(a+i*h,varargin{:}); end sumodd = 0; for k=1:2:n-1 sumodd = sumodd + F(a+k*h,varargin{:}); end Q = h*(sumend + 4*sumodd + 2*sumeven)/3; fcount=n+1; else error('n must be even number') end end

47


แสดง code ของโปรแกรม Trapezoid function [Q,fcount] = trapezoidal(F,a,b,n,varargin) Q=0; h = (b-a)/n; for i=2:n Q=Q+F(a+(i-1)*h,varargin{:}); end Q = h*(F(a,varargin{:})+F(b,varargin{:}))/2+h*Q; fcount=n+1; end

แสดง code ของโปรแกรม Midpoint function [Q,fcount] = midpoint(F,a,b,n,varargin) Q=0; h = (b-a)/n; for i=1:n Q=Q+F(a+(i-1/2)*h,varargin{:}); end Q = h*Q; fcount=n; end

48


ตัวอย่างการประมวลผลของโปรแกรมจากตัวอย่างที่ 3.1

ภาพ แสดงการประมวลผลของโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method (Q = Q2 + (Q2 - Q1)/15)

ภาพ แสดงการประมวลผลของโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method (Q = Q2)

49


ภาพ แ���ดงการประมวลผลของโปรแกรม Simpson’s 1/3

ภาพ แสดงการประมวลผลของโปรแกรม Trapezoid

50


ภาพ แสดงการประมวลผลของโปรแกรม Midpoint

51


ตัวอย่างการประมวลผลของโปรแกรมจากตัวอย่างที่ 3.5

ภาพ แสดงการประมวลผลของโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method

(Q = Q2 + (Q2 - Q1)/15)

ภาพ แสดงการประมวลผลของโปรแกรม Numerical Integrations by an Adaptive Simpson’s 1/3 Method

(Q = Q2) 52


ภาพ แสดงการประมวลผลของโปรแกรม Simpson’s 1/3

ภาพ แสดงการประมวลผลของโปรแกรม Trapezoid

53


ภาพ แสดงการประมวลผลของโปรแกรม Midpoint

54


Numerical Integrations by an Adaptive Simpson’s 1 3 Method