Haskell 如何使用hmatrix计算矩阵的正交基?

Haskell 如何使用hmatrix计算矩阵的正交基?,haskell,matrix,orthogonal,Haskell,Matrix,Orthogonal,orthsomematrix内置于MATLAB中,但在Haskell hmatrix库中似乎不可用 import Numeric.LinearAlgebra orth :: Field a => Matrix a -> [Vector a] orth m = toColumns $ fst $ qr m 还是无点 orth = toColumns . fst . qr 他有一个解释 还是无点 orth = toColumns . fst . qr 有一个解释。也许这就

orthsomematrix内置于MATLAB中,但在Haskell hmatrix库中似乎不可用

import Numeric.LinearAlgebra    

orth :: Field a => Matrix a -> [Vector a]
orth m = toColumns $ fst $ qr m
还是无点

orth = toColumns . fst . qr
他有一个解释

还是无点

orth = toColumns . fst . qr

有一个解释。

也许这就是你需要的:

orth m = toColumns u
        where (u,_,_) = compactSVD m

也许这就是你需要的:

orth m = toColumns u
        where (u,_,_) = compactSVD m

他们说使用Numeric.LinearAlgebra.Algorithms.qr,但我不知道如何用qr来写orth。他们说使用Numeric.LinearAlgebra.Algorithms.qr,但我不知道如何用qr来写orth。qr分解的旋转q列跨越整个空间。如果需要输入矩阵m的范围空间的正交基,则必须仅从q中获取秩m列。矩阵秩使用SVD进行数值估计。或者,您可以如上所述使用compatSVD,但基向量将不同。来自qr分解的旋转q列跨越整个空间。如果需要输入矩阵m的范围空间的正交基,则必须仅从q中获取秩m列。矩阵秩使用SVD进行数值估计。或者,您可以如上所述使用compatSVD,但基向量将不同。