A = torch.randn(2, 2, dtype=torch.complex128)
A = A + A.T.conj() # creates a Hermitian matrix
A
L, Q = torch.linalg.eigh(A)
L
The above code gives the eigenvalues and elements of eigenvectors up to 4 decimal places. How to get more decimal places? Please help.
KFrank
(K. Frank)
2
Hi Panka!
By default, to save screen space, pytorch only displays tensors with four digits.
Try .item()
or torch.set_printoptions()
:
>>> import torch
>>> torch.__version__
'1.13.1'
>>> _= torch.manual_seed (2023)
>>> A = torch.randn(2, 2, dtype=torch.complex128)
>>> A = A + A.T.conj() # creates a Hermitian matrix
>>> A
tensor([[-1.7077+0.0000j, -0.7976+0.3775j],
[-0.7976-0.3775j, 0.1020+0.0000j]], dtype=torch.complex128)
>>> L, Q = torch.linalg.eigh(A)
>>> L
tensor([-2.0667, 0.4610], dtype=torch.float64)
>>> L[0].item()
-2.0667332207652334
>>> torch.set_printoptions (precision = 15)
>>> L
tensor([-2.066733220765233, 0.461039667016129], dtype=torch.float64)
Best.
K. Frank