วันศุกร์ที่ 30 พฤศจิกายน พ.ศ. 2561

ทศนิยมลงท้ายด้วยเลข 5 จะปัดขึ้นหรือปัดลง (การทำวิทยานิพนธ์ภาคปฏิบัติ ตอนที่ ๙๕) MO Memoir : Friday 30 November 2561

ในการคำนวณด้วยระบบเลขทศนิยม เป็นเรื่องปรกติที่เราพบว่าตัวเลขที่คำนวณได้นั้นเป็นทศนิยมไม่รู้จบ หรือมีหลักทศนิยมมากเกินกว่าที่เราต้องการใช้หรือจัดเก็บได้ ทำให้เราต้องทำการปัดทศนิยมส่วนเกินตัวที่อยู่ด้านท้ายทิ้ง และสิ่งที่ทำโดยทั่วไปก็คือ ถ้าตัวเลขในตำแหน่งทศนิยมที่อยู่ถัดจากตำแหน่งที่เราต้องการเก็บนั้นมีค่าเป็น 4 หรือน้อยกว่า เราก็จะปัดเศษนั้นทิ้งไป กล่าวคือสมมุติว่าเราต้องการเก็บตัวเลขเป็นทศนิยม 2 ตำแหน่ง ตัวเลข 3.124 และ 3.121 ก็จะถูกปัดเป็น 3.12 ทั้งสองจำนวน และในทางกลับกันถ้าตัวเลขในตำแหน่งทศนิยมที่อยู่ถัดจากตำแหน่งที่เราต้องการเก็บนั้นมีค่าเป็น 6 หรือมากกว่า เราก็จะปัดตัวเลขที่อยู่ข้างหน้านั้นขึ้น 1 หน่วย กล่าวคือสมมุติว่าเราต้องการเก็บตัวเลขเป็นทศนิยม 2 ตำแหน่ง ตัวเลข 3.126 และ 3.129 ก็จะถูกปัดเป็น 3.13 ทั้งสองจำนวน
 
ประเด็นที่เป็นคำถามก็คือ ถ้าทศนิยมตำแหน่งนั้นเป็นเลข 5 เราควรปัดเศษ 5 ทิ้งหรือปัดตัวเลขข้างหน้าขึ้น 1 หน่วย กล่าวคือในกรณีของเลข 3.125 เราควรจะปัดเป็น 3.12 (คือปัดทิ้ง) หรือเป็น 3.13 (คือปัดขึ้นหนึ่งหน่วย) และการทำแต่ละแบบนั้นส่งผลอย่างไรหรือไม่อย่างไร ถ้าเรานำตัวเลขที่ผ่านการปัดเศษนั้นไปทำการคำนวณต่อ
 
ก่อนอื่นเราลองมาดูตัวอย่างง่าย ๆ กันก่อน โดยสมมุติว่าเราต้องการคำนวณค่าผลรวม 
  
(1/2) + (2/2) + (3/2) + ... + (18/2) + (19/2) + (20/2)
 
ว่าได้เท่ากับเท่าไรโดยปัดทศนิยมให้เป็นจำนวนเต็ม ซึ่งเราอาจทำการคำนวณด้วยรูปแบบต่าง ๆ ได้ดังนี้

รูปแบบที่ 1 บวกตัวเลขที่เป็นตัวเศษทุกตัวเข้าด้วยกันก่อน จากนั้นจึงหารด้วย
  
(1 + 2 + 3 + ... + 18 + 19 + 20)/2 = 210/2 = 105

รูปแบบที่ 2 หารตัวเลขแต่ละตัวด้วย 2 ก่อนทำการบวกเข้าด้วยกัน เศษที่เหลือจากการหาร (0.5) ให้ทำการปัดลงอย่างเดียว 
  
(1/2) + (2/2) + (3/2) + ... + (18/2) + (19/2) + (20/2) = 0 + 1 + 1 + ... + 9 + 9 + 10 = 100

รูปแบบที่ 3 หารตัวเลขแต่ละตัวด้วย 2 ก่อนทำการบวกเข้าด้วยกัน เศษที่เหลือจากการหาร (0.5) ให้ทำการปัดขึ้นอย่างเดียว 
  
(1/2) + (2/2) + (3/2) + ... + (18/2) + (19/2) + (20/2) = 1 + 1 + 2 + ... + 9 + 10 + 10 = 110

รูปแบบที่ 4 หารตัวเลขแต่ละตัวด้วย 2 ก่อนทำการบวกเข้าด้วยกัน ในกรณีที่มีเศษเหลือ ถ้าตัวเลขหน้า .5 เป็นเลขคี่ให้ทำการปัดขึ้น (เช่น 1.5 ปัดเป็น 2) ถ้าตัวเลขหน้า .5 เป็นเลขคู่ให้ทำการปัดลง (เช่น 4.5 ปัดเป็น 4)
 
(1/2) + (2/2) + (3/2) + ... + (18/2) + (19/2) + (20/2) = 0 + 1 + 2 + ... + 9 + 10 + 10 = 105

รูปแบบที่ 5 หารตัวเลขแต่ละตัวด้วย 2 ก่อนทำการบวกเข้าด้วยกัน ในกรณีที่มีเศษเหลือ ถ้าตัวเลขหน้า .5 เป็นเลขคี่ให้ทำการปัดลง (เช่น 1.5 ปัดเป็น 1) ถ้าตัวเลขหน้า .5 เป็นเลขคู่ให้ทำการปัดขึ้น (เช่น 4.5 ปัดเป็น 5)
 
(1/2) + (2/2) + (3/2) + ... + (18/2) + (19/2) + (20/2) = 1 + 1 + 1 + ... + 9 + 9 + 10 = 105
 
จะเห็นว่ารูปแบบที่ 1 ที่มีการปัดเศษเพียงครั้งเดียว และรูปแบบที่ 4 และ 5 ที่ให้กรณีเศษ .5 มีทั้งการปัดขึ้นและลง (ขึ้นอยู่กับตัวเลขข้างหน้าว่าเป็นเลขคู่หรือเลขคี่) ต่างให้คำตอบที่เหมือนกัน
 
ส่วนกรณีที่ทำการคำนวณได้เศษ .5 แล้วทำการปัดลงเสมอนั้น ทำให้โอกาสปัดเศษลงมีมากกว่าปัดเศษขึ้น เมื่อคำนวณไปเรื่อย ๆ จะทำให้ได้คำตอบที่มีแนวโน้มต่ำกว่าคำตอบที่ถูกต้องมากขึ้นเรื่อย ๆ ในทางกลับกันพอคำนวณได้เศษ .5 แล้วทำการปัดขึ้นเพียงอย่างเดียว ทำให้โอกาสปัดเศษขึ้นมีมากกว่าปัดเศษลง เมื่อคำนวณไปเรื่อย ๆ จะทำให้ได้คำตอบที่มีแนวโน้มสูงกว่าคำตอบที่ถูกต้องมากขึ้นเรื่อย ๆ
 
การใช้เกณฑ์ที่ให้ดูตัวเลขที่อยู่ข้างหน้า .5 ว่าเป็นเลขคู่หรือเลขคี่ก่อนที่จะทำการปัดเศษนั้น (เช่นวิธีที่ 4 หรือ 5) ทำให้โอกาสปัดเศษขึ้นมีเท่า ๆ กับที่จะปัดเศษลง เมื่อคำนวณไปเรื่อย ๆ จะพบว่าคำตอบที่คำนวณได้จะเต้นอยู่รอบ ๆ คำตอบที่ถูกต้อง ทั้งนี้เพราะความคลาดเคลื่อนจากการปัดเศษนั้นจะคอยหักล้างกันเอง

ค่าคลาดเคลื่อน (error) ที่เกิดขึ้นระหว่างการคำนวณสามารถแบ่งออกได้เป็น 2 แบบคือค่าคลาดเคลื่อนการปัดเศษ (round-off error) และค่าคลาดเคลื่อนตัดปลาย (truncation error)
 
ค่าคลาดเคลื่อนการปัดเศษเป็นความผิดพลาดที่เกิดจากการที่เครื่องมือไม่สามารถเก็บค่าตัวเลขที่เป็นจริงได้ ทั้งนี้อาจเนื่องจากเครื่องไม่สามารถหาเลขฐานสองที่มีขนาดพอดีกับเลขฐานสิบที่ต้องการแทนค่าได้ ค่าของเลขฐานสองที่ใช้แทนค่าจึงเป็นค่าที่ใกล้เคียงกับค่าที่ควรเป็น หรือในกรณีที่เป็นตัวเลขทศนิยมไม่รู้จบ หรือจำนวนตัวเลขหลังจุดทศนิยมมากเกินไป ทำให้ต้องมีการตัดทิ้งส่วนหนึ่ง การลดการลดความผิดพลาดชนิดนี้พอจะทำได้โดยการเพิ่มจำนวนจุดทศนิยมที่จะใช้ในการคำนวณ แต่จะมีข้อเสียคือต้องใช้พื้นที่ในหน่วยความจำมากขึ้นและทำให้การคำนวณช้าลง
 
ค่าคลาดเคลื่อนการปัดเศษเป็นสิ่งที่ติดมากับเครื่องมือ ไม่สามารถหลีกเลี่ยงได้ ในระหว่างการคำนวณค่าความคลาดเคลื่อนนี้อาจจะหักล้างกันไปเอง คืออยู่ในลักษณะปัดขึ้นหรือลงในจำนวนครั้งที่เท่า ๆ กัน ในกรณีเช่นนี้ถ้ามีการคำนวณเกิดขึ้น N ครั้งและเครื่องคำนวณมีค่าความเที่ยง (machine precision) เท่ากับ em ค่าความคลาดเคลื่อนทั้งหมดอาจจะมีอันดับ (order) แค่ กล่าวคือถ้าค่า machine precision ของเครื่องคือ 10-16 และมีการคำนวณ 106 ครั้ง ความคลาดเคลื่อนจะอยู่ที่ระดับ √106 x 10-16 = 10-13 หรือสูญเสียทศนิยม 3 ตำแหน่งสุดท้ายไป แต่ถ้าหากการปัดเศษมีแนวโน้มไปในทิศทางใดทิศทางหนึ่ง ค่าความผิดพลาดทั้งหมดจะมีขนาดถึง N.em กล่าวคือถ้าค่า machine precision ของเครื่องคือ 10-16 และมีการคำนวณ 106 ครั้ง ความคลาดเคลื่อนจะอยู่ที่ระดับ 106 x 10-16 = 10-10 หรือสูญเสียทศนิยม 6 ตำแหน่งสุดท้ายไป

นอกจากนี้ในการคำนวณบางแบบเช่นการลบเลขสองจำนวนที่มีขนาดใกล้กันมาก ค่าคลาดเคลื่อนการปัดเศษสามารถส่งผลกระทบที่มีนัยสำคัญต่อคำตอบที่ได้จากการคำนวณได้อย่างกระทันหันในการคำนวณเพียงครั้งเดียว ตัวอย่างประเภทนี้ได้แค่การหารากของสมการกำลังสองจากสูตรที่ใช้กันทั่วไปคือ




หรือ 
ปัญหาจะเกิดขึ้นเมื่อ ac << b2

วิธีการคำนวณที่ถูกต้องกว่าคือ
โดยที่รากทั้งสองของสมการคือ
(หมายเหตุ : sgn(b) คือเครื่องหมายของค่า b กล่าวคือ sgn(b) มีค่าเป็น 1 ถ้า b > 0 มีค่าเป็น -1 ถ้า b < 0 และมีค่าเป็น 0 ถ้า b = 0)

เพื่อให้เห็นภาพจะลองทำการหารากของสมการ (จุดที่กราฟตัดแกน x) ของสมการ y = ax2 + bx + c จะ เมื่อ a = 1 และ c = 1 โดยที่ b มีค่าต่าง ๆ กัน การคำนวณโดยใช้ spread sheet ของโปรแกรม OpenOffice 4.1.5 โดย

วิธี () คำนวณโดยใช้สูตร ค่าที่ได้แสดงไว้ในตารางที่ ๑

วิธี () คำนวณโดยใช้สูตร
และ และ ค่าที่ได้แสดงไว้ในตารางที่ ๒
ค่า x1 และ x2 คือค่าจุดที่กราฟตัดแกน x ที่คำนวณได้ ส่วนค่า y1 และ y2 คือค่า y ที่ได้จากการแทนค่า x1 และ x2 เข้าไปในสมการ ถ้าหาก x1 และ x2 ไม่มีความคลาดเคลื่อนใด ๆ ค่า y1 และ y2 ควรจะมีค่าเป็นศูนย์ทั้งสองค่า

ตารางที่ ๑  ค่าคากของสมการที่คำนวณตามวิธีการ (ก) ที่ค่า b ต่าง กัน 

ตารางที่ ๒  ค่าคากของสมการที่คำนวณตามวิธีการ (ข) ที่ค่า b ต่าง กัน



พึงสังเกตว่าการคำนวณตามวิธีการ () (ตารางที่ ๒) ะให้ค่า y ที่ถูกต้องมากกว่าค่า y ที่ได้จากการคำนวณตามวิธีการ () (ตารางที่ ๑) แสดงว่าการคำนวณตามวิธีการ () มีค่าความคลาดเคลื่อนที่ต่ำกว่า

ไม่มีความคิดเห็น: