การคำนวณดีเทอร์มิแนนต์ขณะที่แก้โดยใช้ CG


11

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


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

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

คำตอบ:


10

การคำนวณดีเทอร์มิแนนต์ของเมทริกซ์กระจัดกระจายนั้นมีราคาแพงพอ ๆ กับการแก้ปัญหาโดยตรงและฉันก็สงสัยว่า CG จะช่วยได้มากในการคำนวณ มันจะเป็นไปได้ที่จะเรียกใช้ CG สำหรับซ้ำ (ที่เป็น ) เพื่อที่จะสร้างข้อมูลสำหรับคลื่นความถี่ทั้งหมดของและแล้วคำนวณปัจจัยเป็นผลิตภัณฑ์ของค่าลักษณะเฉพาะ แต่นี้จะเป็นทั้งช้า และไม่เสถียรเชิงตัวเลขA n × n AnAn×nA

เป็นความคิดที่ดีกว่าที่จะคำนวณการแยกตัวประกอบ Cholesky ของเมทริกซ์ของคุณอย่างกระจัดกระจายซึ่งเป็นรูปสามเหลี่ยมด้านล่าง จากนั้น ที่เป็นผลคูณของรายการในแนวทแยงของเมทริกซ์สามเหลี่ยมล่างเนื่องจากค่าลักษณะเฉพาะของเมทริกซ์สามเหลี่ยมอยู่ในแนวทแยง L det ( A ) = det ( L ) det ( L H ) = | เดช( L ) | 2 , เดช( L ) LA=LLHL

det(A)=det(L)det(LH)=|det(L)|2,
det(L)L

ในกรณีของเมทริกซ์ที่ไม่ใช่เอกพจน์ทั่วไปควรใช้การสลายตัวของ LU ที่มีแกนหมุนกล่าวว่าโดยที่คือเมทริกซ์การเปลี่ยนรูปดังนั้น ตั้งแต่เป็นเมทริกซ์การเปลี่ยนแปลง,และโดยการก่อสร้าง,โดยทั่วไปแล้วจะมีเส้นทแยงมุมของทุกคนซึ่งหมายความว่า 1 คุณสามารถคำนวณเป็นPA=LUP

det(A)=det(P1)det(L)det(U).
Pdet(P)=±1Ldet(L)=1det(A)±det(U)และรับรู้อีกครั้งว่าดีเทอร์มีแนนต์ของเมทริกซ์สามเหลี่ยมนั้นเป็นเพียงผลคูณของรายการในแนวทแยง ดังนั้นต้นทุนของการคำนวณดีเทอร์มิแนนต์จึงเป็นเพียงแค่การแยกตัวประกอบ

นี่จะเป็นหนึ่งในความเป็นไปได้ (แม้ว่าฉันจะใช้ตัวประกอบแบบ cholesky) ถ้าเมทริกซ์มีขนาดเล็ก แต่มีขนาด ~และดังนั้นจึงไม่สามารถย่อยสลายได้A106x106
Manuel Schmidt

@ ManuelSchmidt เมทริกซ์กระจัดกระจายของขนาดนั้นเป็นผลมาจาก discretizations ประเภทไฟไนต์อิลิเมนต์สามารถแยกประเภทได้อย่างง่ายดายด้วยเมธอด multifrontal (ตัวอย่าง) ฉันยอมรับว่าควรใช้ตัวประกอบแบบ Cholesky หากเมทริกซ์ของคุณคือ HPD (และการวางนัยทั่วไปของอาร์กิวเมนต์ข้างต้นของฉันนั้นชัดเจน)
Jack Poulson

ขอบคุณสำหรับคำตอบและการตอบกลับที่รวดเร็ว น่าเสียดายที่เมทริกซ์ไม่มีโครงสร้างพิเศษ (ซึ่งจะทำให้มีการแยกตัวประกอบง่าย)
Manuel Schmidt

2
ฉันอยากรู้ว่าทำไมคุณต้องคำนวณดีเทอร์มีแนนต์ของเมทริกซ์ ค่าลักษณะเฉพาะสูงสุดและต่ำสุดไม่เพียงพอหรือไม่
Jack Poulson

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

6

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

ตอนนี้ตัวดำเนินการก็จะมีสเปกตรัมและโดยทั่วไปสเปกตรัมของจะเกี่ยวข้องกับคลื่นความถี่ของ - เช่นค่าลักษณะเฉพาะของโดยประมาณ (ส่วนย่อยของ) ของนั้น แต่นี่ไม่ได้หมายความว่าใกล้เคียง{B} ในความเป็นจริงถ้าเช่นค่าลักษณะเฉพาะของประมาณค่าลักษณะเฉพาะบางส่วนของดังนั้น BABABdetAdetBAB

detA=j=1dimAλi(A)j=1dimAλi(B)j=dimA+1dimBλi(B)
แต่ปัจจัยที่สองในผลิตภัณฑ์นี้โดยทั่วไปจะมีทั้งสินค้าของเล็ก ๆหรือของที่มีขนาดใหญ่ลักษณะเฉพาะของที่ไม่ได้รับการแก้ไขโดย กล่าวอีกนัยหนึ่งปัจจัยนี้มักจะมีขนาดเล็กมาก (อาจเป็นศูนย์ถ้า ) หรือใหญ่มาก (อาจไม่มีที่สิ้นสุด) กล่าวอีกนัยหนึ่งในกรณีเหล่านี้เรามักจะมีไม่ใกล้เคียงกับและโดยทั่วไปจะไม่เป็นประโยชน์ในการคำนวณBAdimB=detAdetB

ปรากฎว่ามีอัลกอริทึมที่สวยงามและใช้งานได้จริงของเราที่เกี่ยวข้องกับการคำนวณของปัจจัยที่มีขนาดใหญ่ ตรวจสอบwww-m3.ma.tum.de/foswiki/pub/M3/Allgemeines/ …
Matt Knepley

2

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

วิธีหนึ่งที่จะได้รับการประมาณค่าของดีเทอร์มิแนนต์คือใช้การนำ CG ไปใช้ซึ่งขึ้นอยู่กับกระบวนการของ Lanczos โดยตรง ดูตัวอย่างอัลกอริทึม 6.17 (D-Lanczos) ในหนังสือของซาด " วิธีการวนซ้ำสำหรับระบบเชิงเส้นแบบกระจัดกระจาย " (SIAM) หน้า 189 ที่นั่นผู้ประกอบการเป็นปัจจัยกึ่งชัดเจนและคุณสามารถใช้ปัจจัยปัจจัยเป็นการประมาณ ของปัจจัยของ ฉันขอย้ำว่าฉันไม่เคยพยายามที่จะประเมินดีเทอร์มิแนนต์และฉันไม่รู้ว่าสิ่งที่ฉันแนะนำนั้นเป็นความคิดที่ดีหรือไม่ - อาจไม่ได้รับค่าลักษณะเฉพาะที่เป็นปัญหาของผีให้เรา อย่างไรก็ตามนั่นคือสิ่งที่อยู่ในใจเมื่ออ่านคำถามของคุณAA

คุณอาจจะวิศวกรรมย้อนกลับว่าการประมาณค่าของดีเทอร์มิแนนต์นั้นเกี่ยวข้องกับการนำมาตรฐาน CG ไปใช้อย่างไรโดยทำตามส่วนที่ 6.7.3 ของหนังสืออย่างใกล้ชิด


2

ปัจจัยของเมทริกซ์ A สามารถคำนวณได้เป็น ที่ - เป็นขั้นตอนที่คำนวณ ระหว่างการทำซ้ำ CG แต่นี้จะทำงานเฉพาะถ้าn หลักฐานดังต่อไปนี้ ให้เป็นเมทริกซ์ประกอบด้วยเวกเตอร์และให้เป็นเมทริกซ์ประกอบด้วยp_k ดังนั้นโดยทรัพย์สินของปัจจัย(R) ตอนนี้สังเกตว่าพาหะเป็นมุมฉากและพาหะตาม

det(A)=i=1nαk1,
αk=rkTrkpkTApkrk0k=1,,nRrkPpk
pk=rk+i=1k1γiri.
det(P)=(1)ndet(R)rkpkA. ดังนั้น
k=1nαk=k=1nrkTrkpkTApk=det(RTR)det(PTAP)=det(RTR)det(A)det(PTP)=(det(A))1.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.