class Fac_QR_H[MatT <: MatriD] extends Fac_QR[MatT]
The Fac_QR_H
class provides methods to factor an 'm-by-n' matrix 'a' into the
product of two matrices:
'q' - an 'm-by-n' orthogonal matrix and 'r' - an 'n-by-n' right upper triangular matrix
such that 'a = q * r'. It uses uses Householder orthogonalization.
- See also
www.stat.wisc.edu/~larget/math496/qr.html ------------------------------------------------------------------------------- This implementation improves upon
Fac_QR_H2
by working with the transpose the original matrix and reorders operations to facilitate parallelism (see par directory). Caveat: for m < n useFac_LQ
. -------------------------------------------------------------------------------QRDecomposition.java in Jama
5.1 and 5.2 in Matrix Computations
- Alphabetic
- By Inheritance
- Fac_QR_H
- Fac_QR
- Error
- Factorization
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
Fac_QR_H(aa: MatT, needQ: Boolean = true)
- aa
the matrix to be factor into q and r
- needQ
flag indicating whether a full 'q' matrix is needed
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
at: MatrixD
- Attributes
- protected
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
colHouse(k: Int): Unit
Calculate the 'k'th Householder vector and perform the 'k'th Householder reflection.
Calculate the 'k'th Householder vector and perform the 'k'th Householder reflection.
- k
the index of the column performing the Householder reflection
- Attributes
- protected
-
def
computeQ(): Unit
Compute the full 'q' orthogonal matrix based on updated values in 'at'.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
factor(): Unit
Perform QR Factorization and store the result in a single matrix which contains Householder vectors of each column in the lower triangle of the 'aa' matrix.
Perform QR Factorization and store the result in a single matrix which contains Householder vectors of each column in the lower triangle of the 'aa' matrix. This algorithm uses Householder orthogonalization.
- Definition Classes
- Fac_QR_H → Factorization
- See also
QRDecomposition.java in Jama
5.1 and 5.2 in Matrix Computations
-
def
factor1(): MatriD
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the first matrix.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the first matrix.
- Definition Classes
- Factorization
-
def
factor12(): (MatriD, MatriD)
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t' or a = q * r, returning both the first and second matrices.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t' or a = q * r, returning both the first and second matrices.
- Definition Classes
- Factorization
-
def
factor2(): MatriD
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the second matrix.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the second matrix.
- Definition Classes
- Factorization
-
val
factored: Boolean
Flag indicating whether the matrix has been factored
Flag indicating whether the matrix has been factored
- Attributes
- protected
- Definition Classes
- Factorization
-
def
factors: (MatriD, MatriD)
Return both the orthogonal 'q' matrix and the right upper triangular 'r' matrix.
Return both the orthogonal 'q' matrix and the right upper triangular 'r' matrix.
- Definition Classes
- Fac_QR → Factorization
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
flaw(method: String, message: String): Unit
Show the flaw by printing the error message.
Show the flaw by printing the error message.
- method
the method where the error occurred
- message
the error message
- Definition Classes
- Error
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
m: Int
- Attributes
- protected
- Definition Classes
- Fac_QR
-
val
n: Int
- Attributes
- protected
- Definition Classes
- Fac_QR
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
nullspace(rank: Int): MatriD
Compute the nullspace of matrix 'a: { x | a*x = 0 }' using QR Factorization 'q*r*x = 0'.
-
def
nullspaceV(x: VectoD): VectoD
Compute the nullspace of matrix 'a: { x | a*x = 0 }' using QR Factorization 'q*r*x = 0'.
Compute the nullspace of matrix 'a: { x | a*x = 0 }' using QR Factorization 'q*r*x = 0'. Gives only one vector in the nullspace.
- x
a vector with the correct dimension
-
val
p: Int
- Attributes
- protected
- Definition Classes
- Fac_QR
-
val
q: MatrixD
- Attributes
- protected
- Definition Classes
- Fac_QR
-
val
r: MatriD
- Attributes
- protected
- Definition Classes
- Fac_QR
- def solve(b: VectorD): VectoD
-
def
solve(b: VectoD): VectoD
Solve for 'x' in 'aa*x = b' using the QR Factorization 'aa = q*r' via 'r*x = q.t * b' without actually calculating the 'q' matrix.
Solve for 'x' in 'aa*x = b' using the QR Factorization 'aa = q*r' via 'r*x = q.t * b' without actually calculating the 'q' matrix. The overriding method is more efficient.
- b
the constant vector
- Definition Classes
- Fac_QR_H → Fac_QR → Factorization
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transformB(b: Array[Double]): Array[Double]
Transform 'b' into 'q.t * b', i.e., perform the right side of the equation 'r*x = q.t * b' not using a full 'q' matrix.
Transform 'b' into 'q.t * b', i.e., perform the right side of the equation 'r*x = q.t * b' not using a full 'q' matrix.
- b
the constant vector
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )