กลับไปหน้าบทความ

อ่าน 4 นาที

เสถียรภาพเชิงตัวเลข

ใน สาขาย่อย ทางคณิตศาสตร์ ของ การวิเคราะห์เชิง ตัวเลข ความเสถียรเชิงตัวเลข เป็นคุณสมบัติที่พึงประสงค์โดยทั่วไปของ อัลกอริทึมเชิงตัวเลข...

เสถียรภาพเชิงตัวเลข

ใน สาขาย่อย ทางคณิตศาสตร์ของการวิเคราะห์เชิงตัวเลขความเสถียรเชิงตัวเลขเป็นคุณสมบัติที่พึงประสงค์โดยทั่วไปของอัลกอริทึมเชิงตัวเลขคำจำกัดความที่แน่นอนของความเสถียรขึ้นอยู่กับบริบท: บริบทที่สำคัญอย่างหนึ่งคือพีชคณิตเชิงเส้นเชิงตัวเลขและอีกบริบทหนึ่งคืออัลกอริทึมสำหรับการแก้สมการเชิงอนุพันธ์สามัญและเชิงอนุพันธ์ย่อยโดยการประมาณแบบไม่ต่อเนื่อง

ในพีชคณิตเชิงเส้นเชิงตัวเลข ความกังวลหลักคือความไม่เสถียรที่เกิดจากการเข้าใกล้จุดเอกฐานประเภทต่างๆ เช่นค่าไอเกน ที่เล็กมากหรือเกือบจะชนกัน ในทางกลับกัน ในอัลกอริธึมเชิงตัวเลขสำหรับสมการเชิงอนุพันธ์ ความกังวลคือการเพิ่มขึ้นของข้อผิดพลาดจากการปัดเศษและ/หรือความผันผวนเล็กน้อยในข้อมูลเริ่มต้น ซึ่งอาจทำให้คำตอบสุดท้ายเบี่ยงเบนไปจากคำตอบที่ถูกต้องมาก

อัลกอริทึมเชิงตัวเลขบางตัวอาจลดความผันผวนเล็กน้อย (ข้อผิดพลาด) ในข้อมูลป้อนเข้า ในขณะที่บางตัวอาจขยายข้อผิดพลาดเหล่านั้น การคำนวณที่พิสูจน์ได้ว่าไม่ขยายข้อผิดพลาดในการประมาณค่าเรียกว่ามีเสถียรภาพเชิงตัวเลขหนึ่งในภารกิจทั่วไปของการวิเคราะห์เชิงตัวเลขคือการพยายามเลือกอัลกอริทึมที่มีความแข็งแกร่ง  กล่าวคือ ไม่ก่อให้เกิดผลลัพธ์ที่แตกต่างกันอย่างมากสำหรับการเปลี่ยนแปลงเล็กน้อยในข้อมูลป้อนเข้า

ปรากฏการณ์ตรงกันข้ามคือความไม่เสถียรโดยทั่วไป อัลกอริทึมจะเกี่ยวข้องกับวิธีการประมาณค่า และในบางกรณีอาจพิสูจน์ได้ว่าอัลกอริทึมจะเข้าใกล้คำตอบที่ถูกต้องในขีดจำกัดบางอย่าง (เมื่อใช้จำนวนจริง ไม่ใช่จำนวนจุดลอยตัว) แม้ในกรณีนี้ ก็ไม่มีการรับประกันว่าจะลู่เข้าสู่คำตอบที่ถูกต้อง เนื่องจากข้อผิดพลาดจากการปัดเศษหรือการตัดทอนของจำนวนจุดลอยตัวอาจถูกขยายให้ใหญ่ขึ้น แทนที่จะลดทอนลง ทำให้ความเบี่ยงเบนจากคำตอบที่แน่นอนเพิ่มขึ้นแบบทวีคูณ[ 1 ]

เสถียรภาพในพีชคณิตเชิงเส้นเชิงตัวเลข

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

แผนภาพแสดงข้อผิดพลาดไปข้างหน้าΔyและข้อผิดพลาดไปข้างหลังΔxและความสัมพันธ์ของข้อผิดพลาดเหล่านี้กับแผนที่คำตอบที่แม่นยำ  f และคำตอบเชิงตัวเลข  f *

พิจารณาปัญหาที่จะแก้ไขโดยอัลกอริทึมเชิงตัวเลขเป็นฟังก์ชัน fที่แมปข้อมูล  xไปยังคำตอบ  yผลลัพธ์ของอัลกอริทึม สมมติว่าเป็นy * มักจะเบี่ยงเบนจากคำตอบ "ที่แท้จริง"  yสาเหตุหลักของข้อผิดพลาดคือข้อผิดพลาดจากการปัดเศษและข้อผิดพลาดจากการตัดทอนข้อผิดพลาดไปข้างหน้าของอัลกอริทึมคือความแตกต่างระหว่างผลลัพธ์และคำตอบ "ที่แท้จริง" ในกรณีนี้Δy = y * − yข้อผิดพลาดย้อนกลับคือค่า Δxที่ เล็กที่สุด ที่ทำให้f ( x + Δx ) = y *กล่าวอีกนัยหนึ่ง ข้อผิดพลาดย้อนกลับบอกเราว่าอัลกอริทึมแก้ปัญหาอะไรไปจริงๆ ข้อผิดพลาดไปข้างหน้าและข้อผิดพลาดย้อนกลับมีความสัมพันธ์กันโดยค่าสภาพ (condition number ) โดยข้อผิดพลาดไปข้างหน้าจะมีขนาดมากที่สุดเท่ากับค่าสภาพคูณด้วยขนาดของข้อผิดพลาดย้อนกลับ

ในหลายกรณี การ พิจารณา ความคลาดเคลื่อนสัมพัทธ์ จะเหมาะสม กว่าการ พิจารณาความคลาดเคลื่อนสัมบูรณ์Δx

กล่าวกันว่าอัลกอริทึมมีเสถียรภาพแบบย้อนกลับ (backward stable)หากค่าความคลาดเคลื่อนแบบย้อนกลับมีขนาดเล็กสำหรับค่าอินพุต  x ทั้งหมด แน่นอนว่า "ขนาดเล็ก" เป็นคำที่สัมพันธ์กัน และความหมายของมันจะขึ้นอยู่กับบริบท บ่อยครั้งที่เราต้องการให้ความคลาดเคลื่อนมีขนาดใกล้เคียงกับ หรืออาจจะใหญ่กว่า ค่าการปัดเศษมาตรฐานเพียงไม่กี่ ลำดับขนาดเท่านั้น

เสถียรภาพแบบผสมผสานเป็นการผสานแนวคิดของข้อผิดพลาดไปข้างหน้าและข้อผิดพลาดย้อนกลับเข้าด้วยกัน

โดยทั่วไปแล้ว นิยามของความเสถียรเชิงตัวเลขจะใช้แนวคิดที่กว้างกว่า เรียกว่าความเสถียรแบบผสมซึ่งรวมเอาข้อผิดพลาดไปข้างหน้าและข้อผิดพลาดไปข้างหลังเข้าด้วยกัน อัลกอริทึมจะเสถียรในแง่นี้ก็ต่อเมื่อสามารถแก้ปัญหาที่อยู่ใกล้เคียงได้โดยประมาณ กล่าวคือ ถ้ามีΔx อยู่จริง โดยที่ทั้ง Δx มีค่าเล็ก และ f(x + Δx ) y * มีค่าเล็กดังนั้นอัลกอริทึมที่เสถียรไปข้างหลังจึงเสถียรเสมอ

อัลกอริทึมจะมีเสถียรภาพไปข้างหน้า (forward stable)หากค่าความคลาดเคลื่อนไปข้างหน้า (forward error) หารด้วยค่าสภาพ (condition number) ของปัญหา มีค่าน้อย นั่นหมายความว่า อัลกอริทึมจะมีเสถียรภาพไปข้างหน้า หากค่าความคลาดเคลื่อนไปข้างหน้ามีขนาดใกล้เคียงกับอัลกอริทึมที่มีเสถียรภาพย้อนกลับ (backward stable) บางตัว

เสถียรภาพในสมการเชิงอนุพันธ์เชิงตัวเลข

คำจำกัดความข้างต้นมีความเกี่ยวข้องอย่างยิ่งในสถานการณ์ที่ข้อผิดพลาดจากการตัดทอนไม่สำคัญ ในบริบทอื่นๆ เช่น เมื่อแก้สมการเชิงอนุพันธ์จะใช้คำจำกัดความของความเสถียรเชิงตัวเลขที่แตกต่างออกไป

ในสมการเชิงอนุพันธ์สามัญเชิงตัวเลขมีแนวคิดเรื่องเสถียรภาพเชิงตัวเลขอยู่หลายแบบ เช่นเสถียรภาพแบบ Aซึ่งเกี่ยวข้องกับแนวคิดเรื่องเสถียรภาพใน แง่ของ ระบบพลวัต โดยส่วนใหญ่มักเป็นเสถียรภาพแบบ Lyapunovการใช้วิธีที่มีเสถียรภาพเป็นสิ่งสำคัญเมื่อแก้สม การที่ซับซ้อน

มีการใช้คำจำกัดความอีกแบบหนึ่งในสมการเชิงอนุพันธ์ย่อยเชิงตัวเลข อัลกอริทึมสำหรับการแก้สมการเชิงอนุพันธ์ย่อยเชิงเส้น แบบวิวัฒนาการ จะเสถียรก็ต่อเมื่อการเปลี่ยนแปลงทั้งหมดของคำตอบเชิงตัวเลข ณ เวลาคงที่ยังคงมีขอบเขตจำกัดเมื่อขนาดขั้นตอนเข้าใกล้ศูนย์ทฤษฎีบทสมมูลของ Laxกล่าวว่าอัลกอริทึมจะลู่เข้าหากมีความสอดคล้องและเสถียร (ในความหมายนี้) บางครั้งความเสถียรจะเกิดขึ้นได้โดยการรวมการแพร่กระจายเชิงตัวเลขการแพร่กระจายเชิงตัวเลขเป็นคำศัพท์ทางคณิตศาสตร์ที่ทำให้มั่นใจได้ว่าการปัดเศษและข้อผิดพลาดอื่นๆ ในการคำนวณจะกระจายออกไปและไม่สะสมจนทำให้การคำนวณ "ระเบิด" การวิเคราะห์ความเสถียรของ Von Neumannเป็นขั้นตอนที่ใช้กันทั่วไปสำหรับการวิเคราะห์ความเสถียรของแบบแผนความแตกต่างจำกัดที่ใช้กับสมการเชิงอนุพันธ์ย่อยเชิงเส้น ผลลัพธ์เหล่านี้ใช้ไม่ได้กับ PDE ที่ไม่เชิงเส้น ซึ่งคำจำกัดความทั่วไปที่สอดคล้องกันของความเสถียรนั้นซับซ้อนขึ้นด้วยคุณสมบัติหลายอย่างที่ไม่มีในสมการเชิงเส้น

ตัวอย่าง

การคำนวณรากที่สองของ 2 (ซึ่งประมาณ 1.41421) เป็นปัญหาที่มีรูปแบบที่ชัดเจนอัลกอริทึมหลายตัวแก้ปัญหานี้โดยเริ่มต้นด้วยค่าประมาณเริ่มต้นx 0 เช่น x 0 = 1.4 จากนั้นคำนวณค่าคาดเดาที่ดีขึ้นx 1 , x 2เป็นต้น วิธีหนึ่งคือวิธีบาบิโลน ที่มีชื่อเสียง ซึ่งกำหนดโดยx k +1 = ( x k + 2/ x k )/2 อีกวิธีหนึ่งเรียกว่า "วิธี X" กำหนดโดยx k +1 = ( x k 2 − 2) 2 + x k [หมายเหตุ 1 ]การคำนวณซ้ำหลายครั้งของแต่ละวิธีแสดงอยู่ในตารางด้านล่าง โดยมีค่าคาดเดาเริ่มต้นx 0 = 1.4 และx 0 = 1.42

บาบิโลน บาบิโลน วิธีที่ X วิธีที่ X
x 0 = 1.4 x 0 = 1.42 x 0 = 1.4 x 0 = 1.42
x 1 = 1.4142857... x 1 = 1.41422535... x 1 = 1.4016 x 1 = 1.42026896
x 2 = 1.414213564... x 2 = 1.41421356242... x 2 = 1.4028614... x 2 = 1.42056...
... ...
x 1,000,000 = 1.41421... x 27 = 7280.2284...

สังเกตว่าวิธีการแบบบาบิโลนลู่เข้าอย่างรวดเร็วโดยไม่ขึ้นอยู่กับค่าเริ่มต้น ในขณะที่วิธีการ X ลู่เข้าช้ามากเมื่อค่าเริ่มต้นx 0 = 1.4 และลู่เข้าไม่ได้เมื่อค่าเริ่มต้นx 0 = 1.42 ดังนั้น วิธีการแบบบาบิโลนจึงมีเสถียรภาพทางตัวเลข ในขณะที่วิธีการ X ไม่มีเสถียรภาพทางตัวเลข

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

และ
เมื่อเปรียบเทียบผลลัพธ์ของ
และ

จากการเปรียบเทียบผลลัพธ์ทั้งสองข้างต้น จะเห็นได้ชัดว่าการสูญเสียนัยสำคัญ (ซึ่งเกิดจากการหักล้างอย่างรุนแรงจากการลบค่าประมาณของตัวเลขใกล้เคียงและแม้ว่าการลบจะคำนวณอย่างแม่นยำก็ตาม) มีผลกระทบอย่างมากต่อผลลัพธ์ แม้ว่าฟังก์ชันทั้งสองจะเทียบเท่ากัน ดังแสดงด้านล่าง

ค่าที่ต้องการ ซึ่งคำนวณโดยใช้ความแม่นยำอนันต์ คือ 11.174755... [หมายเหตุ 2 ]

ดูเพิ่มเติม

หมายเหตุ

  1. ^นี่คือการวนซ้ำจุดตรึงสำหรับสมการซึ่งคำตอบประกอบด้วยการวนซ้ำจะเคลื่อนไปทางขวาเสมอเนื่องจากดังนั้น จึงลู่เข้าและลู่ออก
  2. ^ตัวอย่างนี้เป็นการดัดแปลงมาจากตัวอย่างที่นำมาจาก Mathews & Fink (1999 ) [ 2 ]
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Numerical_stability&oldid=1353491555 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เสถียรภาพเชิงตัวเลข

ใน สาขาย่อย ทางคณิตศาสตร์ ของ การวิเคราะห์เชิง ตัวเลข ความเสถียรเชิงตัวเลข เป็นคุณสมบัติที่พึงประสงค์โดยทั่วไปของ อัลกอริทึมเชิงตัวเลข...

เสถียรภาพในพีชคณิตเชิงเส้นเชิงตัวเลข

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

เสถียรภาพในสมการเชิงอนุพันธ์เชิงตัวเลข

คำจำกัดความข้างต้นมีความเกี่ยวข้องอย่างยิ่งในสถานการณ์ที่ข้อผิดพลาดจากการตัดทอนไม่สำคัญ ในบริบทอื่นๆ เช่น เมื่อแก้สม การเชิงอนุพันธ์ จะใช้คำจำกัดความของความเสถียรเชิงตัวเลขที่แตกต่างออกไป

ตัวอย่าง

การคำนวณ รากที่สองของ 2 (ซึ่งประมาณ 1.41421) เป็น ปัญหาที่มีรูปแบบที่ชัดเจน อัลกอริทึมหลายตัวแก้ปัญหานี้โดยเริ่มต้นด้วยค่าประมาณเริ่มต้นx 0 เช่น x 0 = 1.