-
Notifications
You must be signed in to change notification settings - Fork 3
More about eigenvalue_offset
As mentioned here,
the variable eigenvalue_offset
should be set properly.
Someone might think use of very large eigenvalue_offset
always works fine and
Gershgorin theorem calculation is not necessary.
This is mathematically correct but numerically wrong.
Consider a matrix whose maximum eigenvalue is 1.23456789
.
If we set eigenvalue_offset = 1000000
, Lambda Lanczos calculates
the eigenvalue as 1000001.23456789
mathematically. But numerically,
its lower digits are ignored due to the limitation of floating-point representation.
So the calculated eigenvalue will be something like 1000001.23456
in 12 digits of precision case.
Finally we get the re-shifted result as 1.23456
, having only 6 digits precision, even though
the calculation have been performed with 12 digits of precision.
The eigenvalue_offset
should be set AS SMALL AS POSSIBLE for precise calculation.
If you faced a problem that desired precision weren't achieved, the eigenvalue_offset
might be causing trouble.