The determinant of a unitary matrix is 0

3 visualizaciones (últimos 30 días)
Runrun Xu
Runrun Xu el 18 de Abr. de 2021
Editada: Bruno Luong el 18 de Abr. de 2021
I was trying the calculate the determinant of the eigenvector matrix (let me call it U) of a Hermitian matrix (a Hamiltonian matrix H in a physical problem). As U should be a unitary matrix, its determinant should have modulus 1.
When I was doing the numerical calculation, I noticed that when the system size (or the size of the Hamiltonian matrix H) is relatively small, I get the correct value of det(U), however, when I enlarge the system size (e.g., H is of the order ), I found that matlab gives me . However, when I try det(U.'), it gives me 1.
So I just wonder what could be the reason for this strange result (issue) and how can I resolve it?

Respuestas (2)

Matt J
Matt J el 18 de Abr. de 2021
Editada: Matt J el 18 de Abr. de 2021
Matlab's det involves taking the product of long matrix diagonals. This can overflow or underflow very easily. The following might be a more stable determinant calculation than what det() does:
[H,~]=qr(rand(4000));
det(H)
ans = 0
Instead:
[L,U,P]=lu(H);
tridet=@(M) exp(sum(log(diag(M))));
Determinant=real(det(P)*tridet(L)*tridet(U))
Determinant = -1.0000

Matt J
Matt J el 18 de Abr. de 2021
Editada: Matt J el 18 de Abr. de 2021
Determinant calculations for large matrices are numerically delicate (which is why they're often avoided). There are other/better ways you can verify the unitariness of H. Example,
[H,~]=qr(rand(4000));
det(H)
ans = 0
det(H.')
ans = 0
Instead, we can do:
min(H*H.'-eye(4000),[],'all')
ans = -9.9920e-16
max(H*H.'-eye(4000),[],'all')
ans = 1.1102e-15
  3 comentarios
Paul
Paul el 18 de Abr. de 2021
I understand that prod(svd(A)) = abs(det(A)). How can sign(det(A)) be determined? Or am I on the wrong track altogether with using SVD to compute DET?
Bruno Luong
Bruno Luong el 18 de Abr. de 2021
Editada: Bruno Luong el 18 de Abr. de 2021
One can compute the seterminant of U and V. See my answer in this thread (I also the one who asks the question and you have participated actively).
Second method! In could imagin within SVD calculation (usually based on qr-algorithm ast some step) the determinant of U and V can be computed internally. It is just need to be reported back. TMW don't want to investigate such

Iniciar sesión para comentar.

Categorías

Más información sobre Linear Algebra en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by