|
NAG[f08wjc] NAG[nag_dggbak] - Transform eigenvectors of a pair of real balanced matrices to those of original matrix pair supplied to f08whc (nag_dggbal)
|
|
Calling Sequence
f08wjc(job, side, ilo, ihi, lscale, rscale, v, 'n'=n, 'm'=m, 'fail'=fail)
nag_dggbak(. . .)
Parameters
|
job - String;
|
|
|
On entry: specifies the backward transformation step required.
|
|
No transformations are done.
|
|
Only do backward transformations based on permutations.
|
|
Only do backward transformations based on scaling.
|
|
Do backward transformations for both permutations and scaling.
|
|
Constraint: "Nag_DoNothing", "Nag_Permute", "Nag_Scale" or "Nag_DoBoth". .
|
|
|
side - String;
|
|
|
On entry: indicates whether left or right eigenvectors are to be transformed.
|
|
The left eigenvectors are transformed.
|
|
The right eigenvectors are transformed.
|
|
Constraint: "Nag_LeftSide" or "Nag_RightSide". .
|
|
|
ilo - integer;
ihi - integer;
|
|
|
if , ;
|
|
|
lscale - Vector(1..dim, datatype=float[8]);
|
|
|
Note: the dimension, dim, of the array lscale must be at least .
|
|
On entry: details of the permutations and scaling factors applied to the left side of the matrices and , as returned by a previous call to f08whc (nag_dggbal).
|
|
|
rscale - Vector(1..dim, datatype=float[8]);
|
|
|
Note: the dimension, dim, of the array rscale must be at least .
|
|
On entry: details of the permutations and scaling factors applied to the right side of the matrices and , as returned by a previous call to f08whc (nag_dggbal).
|
|
|
v - Matrix(1..dim1, 1..dim2, datatype=float[8], order=order);
|
|
|
Note: this array may be supplied in Fortran_order or C_order , as specified by order. All array parameters must use a consistent order.
|
|
On exit: the transformed right or left eigenvectors.
|
|
|
'n'=n - integer; (optional)
|
|
|
Default value: the first dimension of the array v.
|
|
Constraint: . .
|
|
|
'm'=m - integer; (optional)
|
|
|
Default value: the second dimension of the array v.
|
|
On entry: , the required number of left or right eigenvectors.
|
|
Constraint: . .
|
|
|
'fail'=fail - table; (optional)
|
|
|
The NAG error argument, see the documentation for NagError.
|
|
|
|
Description
|
|
|
Purpose
|
|
nag_dggbak (f08wjc) forms the right or left eigenvectors of the real generalized eigenvalue problem , by backward transformation on the computed eigenvectors given by f08ykc (nag_dtgevc). It is necessary to call this function only if the optional balancing function f08whc (nag_dggbal) was previously called to balance the matrix pair .
|
|
Description
|
|
If the matrix pair has been previously balanced using function f08whc (nag_dggbal) then nag_dggbak (f08wjc) backtransforms the eigenvector solution given by f08ykc (nag_dtgevc). This is usually the sixth and last step in the solution of the generalized eigenvalue problem.
For a description of balancing, see the document for f08whc (nag_dggbal).
|
|
Error Indicators and Warnings
|
|
"NE_ALLOC_FAIL"
Dynamic memory allocation failed.
"NE_BAD_PARAM"
On entry, argument had an illegal value.
"NE_INT"
On entry, . Constraint: .
On entry, . Constraint: .
"NE_INT_2"
On entry, , . Constraint: .
"NE_INT_3"
On entry, , , . Constraint: if , and .
On entry, , , . Constraint: if , .
"NE_INTERNAL_ERROR"
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please consult NAG for assistance.
|
|
Accuracy
|
|
The errors are negligible, compared with the previous computations.
|
|
Further Comments
|
|
The number of operations is proportional to .
The complex analogue of this function is f08wwc (nag_zggbak).
|
|
|
Examples
|
|
>
|
job := "Nag_DoBoth":
side := "Nag_RightSide":
n := 5:
ilo := 1:
ihi := 5:
m := 5:
lscale := Vector([1, 1, 0.1, 0.1, 0.1], datatype=float[8]):
rscale := Vector([1, 1, 0.1, 0.1, 0.1], datatype=float[8]):
v := Matrix([[-0.04937430825069233, -0.2077167167739885, 0.0257023523207624, -0.07407407407407246, -0.06946618486355902], [0.1060617937343745, 0.178477357681324, 0.0883247593617137, 0.1354497354497356, 0.1360540981855712], [-1, -0.5374206868348208, -0.4625793131651792, -1, -1], [0.4376090470996132, 0.08027747210915556, 0.1376544281787123, 0.2645502645502624, 0.3187945700290971], [-0.07019247267864973, -0.005597421345644026, -0.02080729905547173, -0.0370370370370363, -0.03553386129852907]], datatype=float[8]):
NAG:-f08wjc(job, side, ilo, ihi, lscale, rscale, v, 'n' = n, 'm' = m):
|

|
|