If the problem [evec,eval] = eig(A,B) can be recast as [evec,eval] = eig(D,(R\E)) then how does one compute D, R, E?
> A = R*D*C What sort of decomposition is this?
> B = E*C I presume that E can be obtained from B and C E = B*C\I
Greg Heath <firstname.lastname@example.org> wrote in message <email@example.com>... > On Aug 19, 2:28=A0pm, "Reza " <bag...@gmail.com> wrote: > > I'm trying to find smallest eigenvalue of A & B matrices by > > solving (Ax=3DLBx) using eig(A,B) command. The only special > > thing about my problem is that elements of A have a large > > range from -10^13 to 10^13. It seems that Matlab procedure > > is not so efficient for the problems of this type. I'm > > pretty sure that it's missing some of the smaller eigenvalues. > > You can rescale the problem. > > You don't give the range of B, so what follows is rather general: > > Any matrix, D can be factored into the form > > U =3D R*V*C > > Where R (row multiplier) and C (column multiplier) are > nonsingular diagonal matrices with elements that are > exact powers of 2 and abs(V) <=3D 1 (or any other power of 2). > > For constant L, A =3D R*D*C, B =3D E*C, x =3D C\y > > A*x =3D L*B*x =3D=3D> D*y =3D L*(R\E)*y > > Hope this helps. > > Greg > >