วิธีเลือกวิธีการแก้สมการเชิงเส้น


31

สำหรับความรู้ของฉันมี 4 วิธีในการแก้ระบบสมการเชิงเส้น (แก้ไขฉันหากมีมากขึ้น):

  1. หากเมทริกซ์ระบบเป็นเมทริกซ์จตุรัสแบบเต็มคุณสามารถใช้กฎของแครมเมอร์
  2. คำนวณค่าผกผันหรือ pseudoinverse ของเมทริกซ์ระบบ
  3. ใช้วิธีการสลายตัวของเมทริกซ์ (การกำจัดเกาส์เซียนหรือจอร์แดนถือเป็นการสลายตัว LU)
  4. ใช้วิธีการวนซ้ำเช่นวิธีการไล่ระดับสีแบบคอนจูเกต

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

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

ยกตัวอย่างเช่นวิธีการไล่ระดับสีคอนจูเกตใช้เพื่อแก้สมการที่เมทริกซ์เป็นสมมาตรและบวกแน่นอนแม้ว่ามันจะสามารถนำไปใช้กับสมการเชิงเส้นใด ๆ โดยการแปลงเป็นข นอกจากนี้สำหรับเมทริกซ์แน่นอนที่เป็นบวกคุณสามารถใช้วิธีการสลายตัวของ Cholesky เพื่อค้นหาวิธีแก้ปัญหา แต่ฉันไม่รู้ว่าจะเลือกวิธี CG เมื่อใดและจะเลือกการสลายตัวของ Cholesky ได้อย่างไร ความรู้สึกของฉันคือเราควรใช้วิธี CG สำหรับเมทริกซ์ขนาดใหญ่A T A x = A T bAx=ATAx=AT

สำหรับเมทริกซ์รูปสี่เหลี่ยมผืนผ้าเราสามารถใช้ QR decomposition หรือ SVD ได้ แต่ฉันไม่รู้ว่าจะเลือกหนึ่งในนั้นได้อย่างไร

สำหรับเมทริกซ์อื่น ๆ ฉันไม่ได้เลือกตัวแก้ที่เหมาะสมเช่นเมทริกเมทริก / สมมาตร, เมทริกซ์กระจัดกระจาย, เมทริกซ์แถบเป็นต้น


1
สวัสดี @chaohuang และยินดีต้อนรับสู่ SciComp! คุณอาจต้องการดูการสนทนานี้: scicomp.stackexchange.com/questions/81/…
พอล

สวัสดี @Paul ขอบคุณสำหรับความคิดเห็นของคุณกระทู้นั้นเกี่ยวกับเมทริกซ์กระจัดกระจายหรือเมทริกซ์ใด ๆ หรือไม่?
chaohuang

6
คำถามของคุณมีขอบเขตที่กว้างและอาจกว้างเกินไปสำหรับรูปแบบคำถามและคำตอบที่เรามีใน stackexchange ... มีระบบเมทริกซ์คลาสที่คุณสนใจหรือไม่?
เปาโล

3
@chaohuang มีหนังสือมากมายในเรื่องนี้ คำถามนี้เหมือนถามแพทย์ว่าพวกเขาเลือกวิธีการรักษา "ทั่วไป" อย่างไร หากคุณต้องการถามคำถามที่ไม่เฉพาะเจาะจงกับปัญหาบางประเภทคุณควรจะพยายามทำความคุ้นเคยกับสาขานั้นเพื่อถามคำถามที่แม่นยำ มิฉะนั้นให้อธิบายปัญหาเฉพาะที่คุณเกี่ยวข้อง
Jed Brown

2
จากคำถามที่พบบ่อย: หากคุณสามารถจินตนาการหนังสือทั้งเล่มที่ตอบคำถามของคุณคุณกำลังถามมากเกินไป มีทั้งวารสารและหนังสือหลายร้อยเล่มที่เกี่ยวข้องกับคำถามนี้
David Ketcheson

คำตอบ:


45

คำถามของคุณเป็นเหมือนถามว่าไขควงให้เลือกขึ้นอยู่กับไดรฟ์ (ช่อง, ฟิลลิป, Torx, ... ): นอกจากจะมีมากเกินไปตัวเลือกยังขึ้นอยู่กับว่าคุณต้องการขันสกรูหนึ่งตัวหรือประกอบ ชั้นวางห้องสมุดทั้งชุด อย่างไรก็ตามในคำตอบบางส่วนคำถามของคุณที่นี่เป็นบางส่วนของปัญหาที่คุณควรเก็บไว้ในใจเมื่อเลือกวิธีการแก้ระบบเชิงเส้นx = B ฉันจะ จำกัด ตัวเองเป็นเมทริกซ์กลับด้าน; กรณีของระบบที่มากเกินไปหรือต่ำเกินไปนั้นเป็นเรื่องที่แตกต่างกันและควรเป็นคำถามแยกต่างหากAx=

ดังที่คุณได้กล่าวไว้อย่างถูกต้องตัวเลือกที่ 1 และ 2 นั้นถูกต้อง: การคำนวณและการใช้เมทริกซ์ผกผันเป็นแนวคิดที่ไม่ดีอย่างมากเนื่องจากมีราคาแพงกว่าและมักจะมีเสถียรภาพน้อยกว่าการใช้อัลกอริทึมอย่างอื่น นั่นทำให้คุณมีตัวเลือกระหว่างวิธีการโดยตรงและซ้ำ สิ่งแรกที่ต้องพิจารณาไม่ใช่เมทริกซ์แต่สิ่งที่คุณคาดหวังจากโซลูชันตัวเลข˜ x :Ax~

  1. มันต้องแม่นยำแค่ไหน? ไม่ต้องแก้ระบบได้ถึงความแม่นยำเครื่องหรือคุณมีความพึงพอใจกับ~ xความพึงพอใจ (พูด) ~ x - x *< 10 - 3ที่x *เป็นทางออกที่แน่นอน?x~x~x~-x* * * *<10-3x* * * *
  2. วิธีที่รวดเร็วคุณไม่ต้องการหรือไม่ ตัวชี้วัดที่เกี่ยวข้องเพียงอย่างเดียวที่นี่คือเวลานาฬิกาบนเครื่องของคุณ - วิธีการที่ปรับขนาดได้อย่างสมบูรณ์แบบบนคลัสเตอร์ขนาดใหญ่อาจไม่ใช่ทางเลือกที่ดีที่สุดหากคุณไม่มีหนึ่งในนั้น แต่คุณมีการ์ด Tesla ใหม่ ๆ

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

  • โครงสร้าง : Is สมมาตร? มันหนาแน่นหรือหร็อมแหร็ม? สี?A
  • ค่าลักษณะเฉพาะ : พวกเขาเป็นบวกทั้งหมด (เช่นเป็นบวกแน่นอน)? พวกเขาเป็นกลุ่มหรือไม่ บางคนมีขนาดเล็กหรือใหญ่มาก?A

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

  • ถ้าคุณต้องการความแม่นยำของเครื่องจักร (ใกล้) จริง ๆ สำหรับวิธีแก้ปัญหาของคุณหรือถ้าเมทริกซ์ของคุณมีขนาดเล็ก (พูดมากถึงแถว) มันยากที่จะเอาชนะวิธีการโดยตรงโดยเฉพาะอย่างยิ่งสำหรับระบบที่หนาแน่น (เนื่องจากในกรณีนี้ จะเป็นO ( n 2 )และหากคุณต้องการการวนซ้ำจำนวนมากสิ่งนี้อาจไม่ไกลจากO ( n 3 )จำเป็นต้องใช้วิธีการโดยตรง) นอกจากนี้การย่อยสลาย LU (ด้วยการหมุน) ทำงานกับเมทริกซ์กลับด้านได้ซึ่งตรงข้ามกับวิธีการทำซ้ำส่วนใหญ่ (แน่นอนถ้าAเป็นสมมาตรและแน่นอนแน่นอนคุณต้องใช้ Cholesky)1000O(n2)O(n3)A

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

    นอกจากนี้วิธีการโดยตรงยังคงมีมาเป็นเวลานานและมีซอฟต์แวร์ที่มีคุณภาพสูงมาก (เช่น UMFPACK, MUMPS, SuperLU สำหรับการฝึกอบรมแบบเบาบาง) ซึ่งสามารถใช้โครงสร้างวงดนตรีของอัตโนมัติA

  • AA

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

แน่นอนว่าสิ่งเหล่านี้เป็นเพียงแนวทางคร่าวๆ: สำหรับข้อความใด ๆ ข้างต้นอาจมีเมทริกซ์ที่การสนทนาเป็นจริง ...

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


2
ฉันชอบไขควงของคุณ!
พอล

@chaohuang หากสิ่งนี้ตอบคำถามของคุณคุณควรยอมรับมัน (หากไม่เป็นเช่นนั้นโปรดชี้ให้เห็นว่ามีอะไรขาดหายไป)
Christian Clason

@ChristianClason ยอมรับมัน ฉันรอและหวังว่าจะมีใครบางคนทำให้กระจ่างบางประเด็นเกี่ยวกับเมทริกซ์รูปสี่เหลี่ยมผืนผ้า เนื่องจากมันใช้เวลานานมากฉันจึงเดาว่าจะไม่มีคำตอบเช่นนี้ :(
chaohuang

@chaohuang ขอบคุณ หากคุณยังคงสนใจเมทริกซ์รูปสี่เหลี่ยมผืนผ้าคุณควรตั้งคำถาม (เชื่อมโยง) ในหัวข้อ "วิธีเลือกวิธีในการแก้ปัญหาระบบที่ overdetermined"
Christian Clason

นี่คือการอ้างอิงเกี่ยวกับการใช้วิธีการวนซ้ำสำหรับการแก้ปัญหาระบบการกระจายขนาดใหญ่ของสมการเชิงเส้น
chaohuang


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.