การใช้วิธี Jacobi-Davidson สำหรับปัญหาลูกบาศก์ค่าลักษณะเฉพาะ


9

ฉันมีปัญหาค่า eigenvalue ขนาดใหญ่:

(A0+λA1+λ2A2+λ3A3)x=0.

ฉันสามารถแก้ปัญหานี้ได้โดยการแปลงเป็นปัญหาค่าลักษณะเชิงเส้น แต่มันจะส่งผลให้ระบบ 32 มีขนาดใหญ่:

[A0000I000I][xyz]=λ[A1A2A3I000I0][xyz],

ที่ไหน y=λx และ z=λy. มีเทคนิคอื่นใดอีกบ้างที่ช่วยแก้ปัญหาค่าไอคิวลูกบาศก์? ฉันได้ยินมาว่ามีรุ่นของ Jacobi-Davidson ที่จะแก้ปัญหาได้ แต่ยังไม่พบการใช้งาน

นอกจากนี้ฉันต้องสามารถกำหนดเป้าหมายค่าลักษณะเฉพาะเช่นเดียวกับวิธี shift-and-invert ของ ARPACK และค้นหา eigenvectors ที่เกี่ยวข้อง


อะไรคือมิติของเมทริกซ์ที่เกี่ยวข้อง?
Bill Barth

Ai คือการสั่งซื้อ 10000×10000. ฉันมีสองสูตรที่แตกต่างกันของปัญหานี้ซึ่งหนึ่งในนั้นAiมีความหนาแน่นและในที่อื่น ๆ จะเบาบาง
OSE

1
SLEPcมีกิจวัตรสำหรับปัญหาค่าลักษณะเฉพาะกำลังสองและปัญหาค่าลักษณะไม่เชิงเส้นดังนั้นคุณอาจจะสามารถค้นหาสิ่งที่คุณต้องการได้ นอกจากนี้ยังมีระบบ shift-and-invert และมีส่วนต่อประสานกับ ARPACK
Geoff Oxberry

คำตอบ:


5

ด้วยโปรโตคอลการสื่อสารย้อนกลับของ ARPACK คุณไม่จำเป็นต้องจัดเก็บ 3n×3n เมทริกซ์อย่างชัดเจน: คุณเพียงแค่ต้องจัดเตรียมสองฟังก์ชันที่คำนวณ:

[xyz][A0xyz] และ [xyz][A1x+A2y+A3zyz]

(คุณยังคงจ่ายราคาของการจัดเก็บ 3×nเวกเตอร์สามมิติ แต่คุณไม่ต้องจ่ายอะไรเลยสำหรับเมทริกซ์)

เกี่ยวกับการแปลงกลับด้านคุณสามารถทำได้เช่นใช้ตัวคุณเองโดยใช้การติดต่อกลับที่คำนวณ xM1x แทน xMx และแทนที่การคำนวณ λs กับ λ1. เพื่อคำนวณM1xคุณสามารถคาดการณ์เมทริกซ์ของคุณล่วงหน้า Mซึ่งหมายถึงการเตรียมการซื้อล่วงหน้าเท่านั้น A0(ใช้ LU, Cholesky หรือเวอร์ชันแบบเบาบางขึ้นอยู่กับโครงสร้างของเมทริกซ์) สำหรับการแปลงกลับด้านแบบเต็มรูปแบบฉันคิดว่าสิ่งที่คล้ายกันสามารถทำได้

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