เช่น MATLAB จะคำนวณ SVD ของเมทริกซ์ที่กำหนดอย่างไร ผมถือว่าคำตอบอาจจะเกี่ยวข้องกับการคำนวณ eigenvectors A*A'
และค่าลักษณะเฉพาะของ หากเป็นกรณีนี้ฉันอยากจะรู้ว่ามันคำนวณได้อย่างไร
เช่น MATLAB จะคำนวณ SVD ของเมทริกซ์ที่กำหนดอย่างไร ผมถือว่าคำตอบอาจจะเกี่ยวข้องกับการคำนวณ eigenvectors A*A'
และค่าลักษณะเฉพาะของ หากเป็นกรณีนี้ฉันอยากจะรู้ว่ามันคำนวณได้อย่างไร
คำตอบ:
ดู
GH Golub และ C. Reinsch การสลายตัวของค่าเอกฐานและโซลูชันกำลังสองน้อยที่สุด Numerische Mathematik 14: 403-420, 1970
วัสดุนี้มีการกล่าวถึงในตำราเรียนจำนวนมากเกี่ยวกับพีชคณิตเชิงเส้นเชิงตัวเลข
นอกเหนือจากกระดาษ Golub-Reinsch (ตอนนี้คลาสสิก) Brian หมายเหตุในคำตอบของเขา (ฉันได้เชื่อมโยงกับรุ่นHandbookของกระดาษ) เช่นเดียวกับกระดาษ (ก่อนหน้านี้ยังคลาสสิก) บรรพบุรุษของ Golub-Kahanมีจำนวน ของการพัฒนาที่สำคัญในการคำนวณ SVD ตั้งแต่นั้นมา ก่อนอื่นฉันต้องสรุปวิธีการทำงานตามปกติ
แนวคิดในการคำนวณ SVD ของเมทริกซ์นั้นคล้ายกับวิธีที่ใช้ในการคำนวณ eigendecomposition ของเมทริกซ์สมมาตร (และดังที่กล่าวไว้ใน OP มีความสัมพันธ์ใกล้ชิดระหว่างพวกเขา) โดยเฉพาะอย่างยิ่งหนึ่งรายได้ในสองขั้นตอน: การแปลงเป็นเมทริกซ์ bidiagonalแล้วค้นหา SVD ของเมทริกซ์ bidiagonal นี่คล้ายกับขั้นตอนแรกของการลดเมทริกซ์สมมาตรให้อยู่ในรูปแบบสามเหลี่ยม
สำหรับการคำนวณ SVD ของเมทริกซ์ bidiagonal การพัฒนาที่น่าสนใจอย่างหนึ่งคือกระดาษโดย Jim Demmel และ Velvel Kahanซึ่งแสดงให้เห็นว่าเราสามารถคำนวณแม้แต่ค่าเอกพจน์เล็ก ๆ ของเมทริกซ์ bidiagonal ที่มีความแม่นยำดีโดยการปรับวิธีการที่เหมาะสม Golub-Reinsch นี้ถูกแล้วตามด้วยอีกครั้ง (?) การค้นพบของdqdอัลกอริทึมซึ่งเป็นลูกหลานของขั้นตอนวิธีการเก่าเชาวน์ความแตกต่างของ Rutishauser (Beresford Parlett ให้การสนทนาที่ดีที่นี่.) หากหน่วยความจำทำหน้าที่นี่เป็นวิธีที่ต้องการใช้ภายในโดย LAPACK นอกเหนือจากนี้มันเป็นไปได้เสมอที่จะได้รับเวอร์ชัน SVD ของการพัฒนาในการแก้ปัญหาของสมมาตร eigenproblems; ตัวอย่างเช่นมีรุ่น SVD ของการหารและพิชิตเช่นเดียวกับรุ่น SVD ของอัลกอริทึม Jacobi เก่า (ซึ่งอาจมีความแม่นยำมากขึ้นในบางสถานการณ์)
สำหรับวิธีการสองวิธีที่ได้รับการปรับปรุงวิธีหนึ่งได้ถูกร่างไว้ในกระดาษของบาร์โลว์ซึ่งต้องการการทำงานมากกว่ากระบวนการเดิมของ Golub และ Reincsh เล็กน้อย แต่ให้ผลการฝึกอบรมที่แม่นยำยิ่งขึ้น