Numeric.LinearAlgebra.Array.Solve
 Stability provisional Maintainer Alberto Ruiz
 Contents Linear systems Multilinear systems General Factorized Utilities
Description
Solution of general multidimensional linear and multilinear systems.
Synopsis
solve :: (Compat i, Coord t) => NArray i t -> NArray i t -> NArray i t
solveHomog :: (Compat i, Coord t) => NArray i t -> [Name] -> Either Double Int -> [NArray i t]
solveHomog1 :: (Compat i, Coord t) => NArray i t -> [Name] -> NArray i t
solveH :: (Compat i, Coord t) => NArray i t -> [Char] -> NArray i t
solveP :: Tensor Double -> Tensor Double -> Name -> Tensor Double
data ALSParam i t = ALSParam {
 nMax :: Int delta :: Double epsilon :: Double post :: [NArray i t] -> [NArray i t] postk :: Int -> NArray i t -> NArray i t presys :: Matrix t -> Matrix t
}
defaultParameters :: ALSParam i t
mlSolve :: (Compat i, Coord t, Num (NArray i t), Normed (Vector t)) => ALSParam i t -> [NArray i t] -> [NArray i t] -> NArray i t -> ([NArray i t], [Double])
mlSolveH :: (Compat i, Coord t, Num (NArray i t), Normed (Vector t)) => ALSParam i t -> [NArray i t] -> [NArray i t] -> ([NArray i t], [Double])
mlSolveP :: ALSParam Variant Double -> [Tensor Double] -> [Tensor Double] -> Tensor Double -> Name -> ([Tensor Double], [Double])
solveFactors :: (Coord t, Random t, Compat i, Num (NArray i t), Normed (Vector t)) => Int -> ALSParam i t -> [NArray i t] -> String -> NArray i t -> ([NArray i t], [Double])
solveFactorsH :: (Coord t, Random t, Compat i, Num (NArray i t), Normed (Vector t)) => Int -> ALSParam i t -> [NArray i t] -> String -> ([NArray i t], [Double])
eps :: Double
eqnorm :: (Coord t, Coord (Complex t), Compat i, Num (NArray i t), Normed (Vector t)) => [NArray i t] -> [NArray i t]
infoRank :: Field t => Matrix t -> Matrix t
solve' :: (Coord t, Compat i, Coord t1) => (Matrix t1 -> Matrix t) -> NArray i t1 -> NArray i t -> NArray i t
solveHomog' :: (Compat i, Field t1, Coord t) => (Matrix t -> Matrix t1) -> NArray i t -> [Name] -> Either Double Int -> [NArray i t1]
solveHomog1' :: (Compat i, Field t1, Coord t) => (Matrix t -> Matrix t1) -> NArray i t -> [Name] -> NArray i t1
solveP' :: Coord b => (Matrix Double -> Matrix b) -> NArray Variant Double -> NArray Variant Double -> Name -> NArray Variant b
Linear systems
 solve Source
 :: (Compat i, Coord t) => NArray i t target (b) -> NArray i t result (x) -> NArray i t Solution of the linear system a x = b, where a and b are general multidimensional arrays. The structure and dimension names of the result are inferred from the arguments.
 solveHomog Source
 :: (Compat i, Coord t) => NArray i t desired dimensions for the result (a subset selected from the target). -> [Name] Left "numeric zero" (e.g. eps), Right "theoretical" rank -> Either Double Int basis for the solutions (x) -> [NArray i t] Solution of the homogeneous linear system a x = 0, where a is a general multidimensional array. If the system is overconstrained we may provide the theoretical rank to get a MSE solution.
 solveHomog1 :: (Compat i, Coord t) => NArray i t -> [Name] -> NArray i t Source
A simpler way to use solveHomog, which returns just one solution. If the system is overconstrained it returns the MSE solution.
 solveH :: (Compat i, Coord t) => NArray i t -> [Char] -> NArray i t Source
solveHomog1 for single letter index names.
 solveP Source
 :: Tensor Double coefficients (a) -> Tensor Double desired result (b) -> Name the homogeneous dimension -> Tensor Double result (x) Solution of the linear system a x = b, where a and b are general multidimensional arrays, with homogeneous equality along a given index.
Multilinear systems
General
 data ALSParam i t Source
optimization parameters for alternating least squares
Constructors
ALSParam
 nMax :: Int maximum number of iterations delta :: Double minimum relative improvement in the optimization (percent, e.g. 0.1) epsilon :: Double maximum relative error. For nonhomogeneous problems it is the reconstruction error in percent (e.g. 1E-3), and for homogeneous problems is the frobenius norm of the expected zero structure in the right hand side. post :: [NArray i t] -> [NArray i t] post-processing function after each full iteration (e.g. id) postk :: Int -> NArray i t -> NArray i t post-processing function for the k-th argument (e.g. const id) presys :: Matrix t -> Matrix t preprocessing function for the linear systems (eg. id, or infoRank)
 defaultParameters :: ALSParam i t Source
nMax = 20, epsilon = 1E-3, delta = 1, post = id, postk = const id, presys = id
 mlSolve Source
 :: (Compat i, Coord t, Num (NArray i t), Normed (Vector t)) => ALSParam i t coefficients (a), given as a list of factors. -> [NArray i t] initial solution [x,y,z...] -> [NArray i t] target (b) -> NArray i t Solution and error history -> ([NArray i t], [Double]) Solution of a multilinear system a x y z ... = b based on alternating least squares.
 mlSolveH Source
 :: (Compat i, Coord t, Num (NArray i t), Normed (Vector t)) => ALSParam i t coefficients (a), given as a list of factors. -> [NArray i t] initial solution [x,y,z...] -> [NArray i t] Solution and error history -> ([NArray i t], [Double]) Solution of the homogeneous multilinear system a x y z ... = 0 based on alternating least squares.
 mlSolveP Source
 :: ALSParam Variant Double optimization parameters -> [Tensor Double] coefficients (a), given as a list of factors. -> [Tensor Double] initial solution [x,y,z...] -> Tensor Double target (b) -> Name homogeneous index -> ([Tensor Double], [Double]) Solution and error history Solution of a multilinear system a x y z ... = b, with a homogeneous index, based on alternating least squares.
Factorized
 solveFactors Source
 :: (Coord t, Random t, Compat i, Num (NArray i t), Normed (Vector t)) => Int optimization parameters -> ALSParam i t source (also factorized) -> [NArray i t] index pairs for the factors separated by spaces -> String target -> NArray i t solution and error history -> ([NArray i t], [Double]) Given two arrays a (source) and b (target), we try to compute linear transformations x,y,z,... for each dimension, such that product [a,x,y,z,...] == b. (We can use eqnorm for post processing, or id.)
 solveFactorsH Source
 :: (Coord t, Random t, Compat i, Num (NArray i t), Normed (Vector t)) => Int optimization parameters -> ALSParam i t coefficient array (a), (also factorized) -> [NArray i t] index pairs for the factors separated by spaces -> String solution and error history -> ([NArray i t], [Double]) Homogeneous factorized system. Given an array a, given as a list of factors as, and a list of pairs of indices ["pi","qj", "rk", etc.], we try to compute linear transformations x!"pi", y!"pi", z!"rk", etc. such that product [a,x,y,z,...] == 0.
Utilities
 eps :: Double Source
The machine precision of a Double: eps = 2.22044604925031e-16 (the value used by GNU-Octave).
 eqnorm :: (Coord t, Coord (Complex t), Compat i, Num (NArray i t), Normed (Vector t)) => [NArray i t] -> [NArray i t] Source
post processing function that modifies a list of tensors so that they have equal frobenius norm
 infoRank :: Field t => Matrix t -> Matrix t Source
debugging function (e.g. for presys), which shows rows, columns and rank of the coefficient matrix of a linear system.
 solve' :: (Coord t, Compat i, Coord t1) => (Matrix t1 -> Matrix t) -> NArray i t1 -> NArray i t -> NArray i t Source
 solveHomog' :: (Compat i, Field t1, Coord t) => (Matrix t -> Matrix t1) -> NArray i t -> [Name] -> Either Double Int -> [NArray i t1] Source
 solveHomog1' :: (Compat i, Field t1, Coord t) => (Matrix t -> Matrix t1) -> NArray i t -> [Name] -> NArray i t1 Source
 solveP' :: Coord b => (Matrix Double -> Matrix b) -> NArray Variant Double -> NArray Variant Double -> Name -> NArray Variant b Source
Produced by Haddock version 2.6.0