ฉันเพิ่งถามคำถามในบรรทัดเดียวกันสำหรับเมทริกซ์เอียง - เฮอร์เมียน ได้รับแรงบันดาลใจจากความสำเร็จของคำถามนั้นและหลังจากต่อสู้กับกำแพงเป็นเวลาสองสามชั่วโมงฉันกำลังดูเมทริกซ์เลขชี้กำลังของเมทริกซ์สมมาตรจริง เส้นทางในการค้นหาค่าลักษณะเฉพาะและค่าลักษณะเฉพาะนั้นค่อนข้างซับซ้อนและฉันกลัวว่าฉันจะสูญเสียไป
ที่มา: บางครั้งฉันถามคำถามนี้เกี่ยวกับฟิสิกส์เชิงทฤษฎี SE ผลที่ได้ทำให้ฉันสมการวลีหลักเป็นเมทริกซ์แบบอสมมาตรจริง ในกรณีที่ไม่ขึ้นกับเวลาสมการหลักจะถูกแก้ไขโดยการแจกแจงเมทริกซ์นี้ ในกรณีที่ขึ้นอยู่กับเวลามันจะต้องมีการรวม ฉันเกี่ยวข้องกับความเป็นอิสระเวลาเท่านั้นในขณะนี้
เมื่อมองไปที่รูทีนย่อยต่างๆฉันคิดว่าฉันควรจะเรียก ( ? gehrd , orghr , hseqr ... ) มันไม่ชัดเจนว่ามันจะง่ายกว่าที่จะใช้เมทริกซ์จากreal*8
ถึงcomplex*16
และดำเนินการตามรูทีนเวอร์ชันคู่ที่ซับซ้อนเหล่านี้ หรือติดกับreal*8
และใช้การเพิ่มจำนวนของอาร์เรย์ของฉันและสร้างเมทริกซ์ที่ซับซ้อนของพวกเขาในภายหลัง
ดังนั้นฉันควรจะเรียกรูทีนใด (และในลำดับใด) และฉันควรใช้เวอร์ชันสองเท่าจริงหรือเวอร์ชันสองซับซ้อน? ด้านล่างนี้เป็นความพยายามในการทำเช่นนี้กับเวอร์ชันสองเท่าจริง L*t
ฉันกลายเป็นติดการหาเวกเตอร์ลักษณะเฉพาะของ
function time_indep_master(s,L,t)
! s is the length of a side of L, which is square.
! L is a real*8, asymmetric square matrix.
! t is a real*8 value corresponding to time.
! This function (will) compute expm(L*t).
integer, intent(in) :: s
real*8, intent(in) :: L(s,s), t
real*8 :: tau(s-1), work(s), wr(s), wi(s), vl
real*8, dimension(s,s) :: time_indep_master, A, H, vr
integer :: info, m, ifaill(2*s), ifailr(2*s)
logical :: sel(s)
A = L*t
sel = .true.
call dgehrd(s,1,s,A,s,tau,work,s,info)
H = A
call dorghr(s,1,s,A,s,tau,work,s,info)
call dhseqr('e','v',s,1,s,H,s,wr,wi,A,s,work,s,info)
call dhsein('r','q','n',sel,H,s,wr,wi,vl,1,vr,s,2*s,m,work,ifaill,ifailr,info)
! Confused now...
end function