Hello all,
I have encountered a curious bug in the EigenConditionNumbers
procedure. In particular for a pencil pencil (A,B) with B singular,
and precision higher than hardware precision.
The following code for Digits=40 produces a Float(undefined) rather
than a Float(infinity) for the infinite eigenvalue, but an alpha and
beta that will produce an infinite eigenvalue.
Digits:=trunc(evalhf(Digits));
A:=Matrix([[1,0],[0,2]]);
B:=Matrix([[1,0],[0,0]]);
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);
Digits:=40;
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);
Output:
>Digits:=trunc(evalhf(Digits));
Digits := 15
> A:=Matrix([[1,0],[0,2]]):
> B:=Matrix([[1,0],[0,0]]):
>
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);
alpha, beta, values :=
[1. + 0. I] [1.] [1. + 0. I ]
[ ],[ ],[ ]
[2. + 0. I] [0.] [Float(infinity) + 0. I]
> Digits:=40;
Digits := 40
>
(alpha,beta,values):=LinearAlgebra:-EigenConditionNumbers(A,B,output=['alpha','beta','values']);
alpha, beta, values :=
[1. + 0. I] [1.] [1. + 0. I ]
[ ],[ ],[ ]
[2. + 0. I] [0.] [Float(undefined) + 0. I]
Best Regards
Piers Lawrence
Department of Applied Mathematics
The University of Western Ontario