Dlasq2 input format

Post here if you have a question about LAPACK or ScaLAPACK algorithm or data format

Dlasq2 input format

Postby btracey » Thu Nov 12, 2015 2:40 pm

I'm trying to understand the input format for Dlasq2 (http://www.netlib.org/lapack/explore-ht ... 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"?
btracey
 
Posts: 11
Joined: Mon Aug 10, 2015 6:40 pm

Re: Dlasq2 input format

Postby osni » Fri Nov 13, 2015 3:59 pm

Hello,

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. http://www.math.hkbu.edu.hk/ICM/Lecture ... Slide3.pdf for a generalization.

I hope this helps,

Osni
osni
 
Posts: 8
Joined: Fri Apr 29, 2005 2:57 pm


Return to Algorithm / Data

Who is online

Users browsing this forum: No registered users and 1 guest

cron