Page 1 of 1

Dlasq2 input format

PostPosted: Thu Nov 12, 2015 2:40 pm
by btracey
I'm trying to understand the input format for Dlasq2 ( ... q2_8f.html). The documentation states

DLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd array Z to high relative accuracy are computed to high relative accuracy, in the absence of denormalization, underflow and overflow. To see the relation of Z to the tridiagonal matrix, let L be a unit lower bidiagonal matrix with subdiagonals Z(2,4,6,,..) and let U be an upper bidiagonal matrix with 1's above and diagonal Z(1,3,5,,..). The tridiagonal is L*U or, if you prefer, the symmetric tridiagonal to which it is similar.

I don't understand this as the L and U matrices described do not multiply to a symmetric tridiagonal matrix ( if L = [1, 0; a, 0] and U = [b, 1; 0, c]. L*U = [b, 1; ab, a+c]). How do I find the "symmetric tridiagonal to which it is similar"?

Re: Dlasq2 input format

PostPosted: Fri Nov 13, 2015 3:59 pm
by osni

First, all entries in Z (the input for dlasq2) have to be positive otherwise dlasq2 returns an error message; see line 214 and after. Therefore, in your example, I will assume that ab > 0. (Note that we should have L = [1, 0; a, 1] and not L = [1, 0; a, 0], which I suppose was a typo.)

We can write the similarity transformation T = inv(D) * L * U * D, where D = diag( [d_1 d_2] ) and T = [ alpha_1 beta_1; beta_1 alpha_2 ]. This gives us alpha_1 = b, alpha_2 = a+c, and beta_1 = sqrt( ab ). We can set d_1 = 1 so d_2 = beta_1. You might also want to take a look at e.g. ... Slide3.pdf for a generalization.

I hope this helps,