Geology Reference
In-Depth Information
C Find magnitude of V-W.
VWMAG=2.D0*ETA*(ETA+AMAG)
VWMAG=DSQRT(VWMAG)
C Construct vector U.
C Set initial values of components of U to zero.
DO 12 I=1,M
U(I)=(0.D0,0.D0)
12 CONTINUE
C Set value of U(N).
U(N)=V(N)+ETA*DCMPLX(VR/AMAG,VI/AMAG)
C Set values of remaining components of U.
NP1=N+1
DO 13 I=NP1,M
U(I)=V(I)
13 CONTINUE
C Normalize U to unit vector.
DO 14 I=1,M
U(I)=U(I)/VWMAG
14 CONTINUE
C Initialize vector W as vector V.
DO 15 I=1,M
W(I)=V(I)
15 CONTINUE
C Construct vector W.
C Set value of W(N).
W(N)=W(N)-VWMAG*U(N)
C Zero remaining components of W.
DO 16 I=NP1,M
W(I)=(0.D0,0.D0)
16 CONTINUE
C Replace V by W.
DO 17 I=1,M
V(I)=W(I)
17
CONTINUE
10
CONTINUE
RETURN
END
Although the sequence of unitary Householder transformations reduces the mat-
rix to upper bidiagonal form, it is still complex valued. G. W. Stewart (Stewart,
2001, p. 217) points out that it can be further reduced to real, positive upper bidi-
agonal form by a further sequence of unitary transformations, thereby simplifying
further numerical operations. We illustrate the procedure with the 3
×
3 complex,
upper bidiagonal matrix
d 1 e 1 0
0 d 2 e 2
00 d 3
.
(2.213)
We first pre-multiply by a diagonal matrix as
u 11 00
010
001
d 1 e 1 0
0 d 2 e 2
00 d 3
u 11 d 1 u 11 e 1
0
=
0
d 2
e 2
.
(2.214)
0
0
d 3
Search WWH ::




Custom Search