วิธีแก้ปัญหาที่ชัดเจนเชิงตัวเลขของระบบเชิงเส้นขนาดเล็ก


11

ฉันมีระบบเส้นตรงที่ไม่เหมือนกัน

Ax=b

ที่เป็นจริงเมทริกซ์กับ4 nullspace ของรับประกันได้ว่าจะเป็นศูนย์มิติดังนั้นสมการก็มีที่ไม่ซ้ำกันผกผันข เนื่องจากผลที่ได้เข้าด้านขวามือของบทกวีซึ่งผมตั้งใจที่จะแก้ปัญหาโดยใช้วิธีการปรับตัวเป็นสิ่งสำคัญว่าการแก้ปัญหาเป็นไปอย่างราบรื่นด้วยความเคารพต่อการเปลี่ยนแปลงเล็ก ๆ ขององค์ประกอบของและขเนื่องจากข้อกำหนดนี้และมิติข้อมูลขนาดเล็กฉันจึงคิดที่จะใช้สูตรที่ชัดเจนสำหรับAn×nn4Ax=A1bAbA1b. องค์ประกอบอาจเป็นศูนย์หรือใช้ค่าแตกต่างกันมาก คำถามของฉันคือถ้าสิ่งนี้เหมาะสมกับคุณและหากมีการแสดงออกที่มั่นคงสำหรับเรื่องนี้ ฉันกำลังเขียนโปรแกรมใน C สำหรับระบบ x86


ฉันรู้ว่ามันมาช้ามาก แต่นี่คือข้อเสนอแนะของฉัน: เนื่องจากการกำจัดแบบเกาส์พร้อมการหมุนทั้งหมดเป็นที่ทราบกันดีว่ามีความเสถียรจึงสามารถเขียนโค้ดอัลกอริทึมสำหรับขนาดเล็กได้ การหมุนรอบตัวมีความสำคัญเนื่องจากมีวิธีในการเลือก pivots ต่อเนื่องนำไปสู่ชุดของสูตรที่แตกต่างกัน คุณสามารถลดความซับซ้อนนี้โดยการแลกเปลี่ยนสิ่งที่จะต้องสลับการลดจำนวนของกรณีไป 2 (n!)2(n!)212+22+n2
Yves Daoust

คำตอบ:


6

ก่อนที่จะใช้สูตรที่ชัดเจนฉันจะถามตัวเองด้วยคำถาม: "มันคุ้มค่าหรือไม่":

  • ควรใช้เวลาเขียนแก้จุดบกพร่องและตรวจสอบสูตรที่ชัดเจนเหล่านี้ในขณะที่คุณสามารถเชื่อมโยงไปยัง BLAS + LAPACK ที่ใช้การกำจัดแบบเกาส์คลาสสิคได้อย่างง่ายดายหรือไม่
  • คุณคาดหวังว่าจะได้รับความมั่นคง? ฉันไม่คิดว่าการเขียนโปรแกรมสูตรที่ชัดเจน (เช่นกฎของ Cramer) จะทำให้คุณมีเสถียรภาพที่ดีขึ้นตรงกันข้าม
  • คุณคาดหวังว่าจะเพิ่มความเร็วหรือไม่? คุณทำโปรไฟล์โปรแกรมทั้งหมดของคุณแล้วหรือยัง? เวลาส่วนใดที่ใช้ในการแก้ไขระบบ 4x4 hese
  • ความน่าจะเป็นที่ในเวลาหนึ่งปีคืออะไรคุณปรับปรุงโมเดลของคุณและคุณต้องการ 5 สมการแทนที่จะเป็น 4

คำแนะนำของฉัน: ใช้ชุดค่าผสม BLAS / LAPACK ก่อนดูว่าใช้งานได้ทำโปรไฟล์โปรแกรมทั้งหมดขอให้นักเรียนใช้สูตรที่ชัดเจน (ขออภัยถูกประชดประชันที่นี่) และทำการเปรียบเทียบความเร็วและความทนทาน


ความพยายามที่จะนำฉันไปใช้นั้นใช้เวลาประมาณ 15 นาทีเพราะฉันป้อนเมทริกซ์ทั่วไป 1x1, 2x2, 3x3 และ 4x4 ลงใน CAS (Maple for me) และกลับด้าน มันจะส่งคืนผลลัพธ์ที่ชัดเจน (เหมือน C) (ขึ้นอยู่กับกฎของ Cramer) ประเด็นที่สองของคุณคือความกังวลของฉัน ในผลลัพธ์จะมีการเรียงลำดับสูงขึ้นขององค์ประกอบเมทริกซ์ เห็นได้ชัดว่าสิ่งนี้สามารถแนะนำข้อผิดพลาดเนื่องจาก 'ยกเลิกเกือบ' ของคำต่างๆ แต่คำถามคือถ้าเป็นไปได้ที่จะเขียนผลลัพธ์ในรูปแบบที่ไม่เกิดขึ้น ความเร็วไม่ใช่ความกังวลหลักในสถานที่นี้
highsciguy

6

สิ่งเดียวที่ฉันรู้คือสิ่งที่ตรงกันข้ามผกผันของแครมเมอร์กฎซึ่งเมื่อเร็ว ๆ นี้แสดงให้เห็นว่าสามารถคำนวณได้ในเวลา (เหมือนการกำจัดแบบเกาส์; ไม่แน่ใจในปัจจัยนำหน้า แม้ว่า)O(n3)

เมทริกซ์ผกผันของเป็นฟังก์ชันที่ราบรื่นของตราบใดที่และวิธีแก้ปัญหาเป็นฟังก์ชันที่ราบรื่นของดังนั้นตราบใดที่ด้านขวามือของ ODE นั้นเรียบ ฟังก์ชั่นของและคุณหลีกเลี่ยงกรณีที่ขาดอันดับฉันคิดว่าทางขวามือของคุณจะราบรื่น (ที่นี่ฉันใช้ความหมายที่ราบรื่น "อย่างน้อยก็เปลี่ยนได้สองครั้งอย่างต่อเนื่อง")AAdet(A)0xbxA

เพื่อความปลอดภัยคุณควรตรวจสอบให้แน่ใจว่าไม่ได้อยู่ในอันดับที่ไม่เพียงพอเช่นกัน (เช่นไม่มีค่าเอกพจน์เล็กน้อย)A

ปัญหาเกี่ยวกับกฎของ Cramer คือคุณสมบัติความเสถียรไม่เป็นที่รู้จักยกเว้น (ซึ่งมีเสถียรภาพไปข้างหน้า แต่ไม่เสถียรย้อนหลัง) (ดูความแม่นยำและความเสถียรของอัลกอริธึมเชิงตัวเลขรุ่นที่ 2 โดย N. Higham) ไม่ถือว่าเป็นอัลกอริทึมที่เชื่อถือได้ การกำจัดแบบเกาส์ที่มีการหมุนบางส่วน (GEPP) เป็นที่โปรดปรานn=2

ฉันคาดหวังว่าปัญหาเกี่ยวกับการใช้ BLAS + LAPACK เพื่อดำเนินการ GEPP ในการแก้ ODE จะเป็นความแตกต่างอัน จำกัด ใด ๆ ที่ใช้ในวิธี ODE โดยนัย ฉันรู้ว่าผู้คนแก้ไขโปรแกรมเชิงเส้นซึ่งเป็นส่วนหนึ่งของการประเมินทางด้านขวาและเพราะพวกเขาทำได้อย่างไร้เดียงสา (เพียงเสียบโปรแกรมเชิงเส้นแก้ทางด้านขวามือเรียกอัลกอริธึมเริม) พวกเขาลดความแม่นยำของ โซลูชันที่คำนวณและเพิ่มเวลาอย่างมากในการแก้ปัญหา เพื่อนร่วมห้องของฉันหาวิธีแก้ปัญหาดังกล่าวได้อย่างมีประสิทธิภาพและแม่นยำยิ่งขึ้น ฉันจะต้องดูว่าสิ่งพิมพ์ของเขาได้รับการเผยแพร่หรือยัง คุณอาจมีปัญหาที่คล้ายกันโดยไม่คำนึงว่าคุณเลือกที่จะใช้ GEPP หรือกฎของ Cramer

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

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


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

1
ฉันหมายถึง "เป็นอย่างน้อยสองครั้งที่เปลี่ยนแปลงได้อย่างต่อเนื่อง" ผมคิดว่าคิดว่าแผนที่เมทริกซ์ผกผันเป็นอนันต์อย่างต่อเนื่องอนุพันธ์สำหรับทุกดังกล่าวว่า0 Adet(A)0
Geoff Oxberry

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

-2

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


5
การประมาณจำนวนจุดลอยตัว (ปัดเศษ, ยกเลิก, ฯลฯ ) นับทั้งหมดเมื่อมีเสถียรภาพ แม้ว่าคุณจะมีสูตรสำหรับคำตอบคุณต้องคำนวณว่าสามารถคำนวณได้อย่างแม่นยำในคณิตศาสตร์ที่มีความแม่นยำแน่นอนหรือไม่
Bill Barth

ฉันไม่เห็นคำตอบนี้ว่าเป็นลบเหมือนกับที่คนอื่น ๆ เห็น แน่นอนว่าปัญหาความมั่นคงยังมีอยู่เพื่อผลลัพธ์ที่ชัดเจน แต่ฉันเชื่อว่า ctNGUYEN แค่อยากจะบอกวิธีแก้ปัญหาโดยประมาณเช่นการขยายตัวในปริมาณน้อยอาจแม่นยำกว่าผลที่ชัดเจนอย่างสมบูรณ์ซึ่งฉันคิดว่าถูกต้อง ในแง่หนึ่งฉันขอคำตอบที่ชัดเจนซึ่งปฏิบัติต่อกรณียาก ๆ เช่นนั้นสูตรจะมีเสถียรภาพเสมอ
highsciguy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.