用法:
pinv(M; atol::Real=0, rtol::Real=atol>0 ? 0 : n*ϵ)
pinv(M, rtol::Real) = pinv(M; rtol=rtol) # to be deprecated in Julia 2.0
计算Moore-Penrose 伪逆。
对于具有浮点元素的矩阵M
,通过仅反转大于 max(atol, rtol*σ₁)
的奇异值来计算伪逆很方便,其中 σ₁
是 M
的最大奇异值。
绝对 (atol
) 和相对容差 (rtol
) 的最佳选择随 M
的值和伪逆的预期应用而变化。默认的相对公差是 n*ϵ
,其中 n
是 M
的最小尺寸的大小,而 ϵ
是 M
的元素类型的
。eps
为了在最小二乘意义上反转密集的ill-conditioned 矩阵,建议使用rtol = sqrt(eps(real(float(one(eltype(M))))))
。
有关详细信息,请参阅[issue8859]、[B96]、[S84]、[KY88]。
例子
julia> M = [1.5 1.3; 1.2 1.9]
2×2 Matrix{Float64}:
1.5 1.3
1.2 1.9
julia> N = pinv(M)
2×2 Matrix{Float64}:
1.47287 -1.00775
-0.930233 1.16279
julia> M * N
2×2 Matrix{Float64}:
1.0 -2.22045e-16
4.44089e-16 1.0
相关用法
- Julia LinearAlgebra.BLAS.dot用法及代码示例
- Julia LinearAlgebra.bunchkaufman用法及代码示例
- Julia LinearAlgebra.cholesky!用法及代码示例
- Julia LinearAlgebra.istriu用法及代码示例
- Julia LinearAlgebra.istril用法及代码示例
- Julia LinearAlgebra.stride1用法及代码示例
- Julia LinearAlgebra.svd用法及代码示例
- Julia LinearAlgebra.logdet用法及代码示例
- Julia LinearAlgebra.eigen用法及代码示例
- Julia LinearAlgebra.BLAS.dotu用法及代码示例
- Julia LinearAlgebra.ldlt!用法及代码示例
- Julia LinearAlgebra.I用法及代码示例
- Julia LinearAlgebra.Transpose用法及代码示例
- Julia LinearAlgebra.det用法及代码示例
- Julia LinearAlgebra.tril!用法及代码示例
- Julia LinearAlgebra.schur!用法及代码示例
- Julia LinearAlgebra.tr用法及代码示例
- Julia LinearAlgebra.axpby!用法及代码示例
- Julia LinearAlgebra.adjoint!用法及代码示例
- Julia LinearAlgebra.eigvecs用法及代码示例
- Julia LinearAlgebra.LU用法及代码示例
- Julia LinearAlgebra.isposdef!用法及代码示例
- Julia LinearAlgebra.LQ用法及代码示例
- Julia LinearAlgebra.normalize用法及代码示例
- Julia LinearAlgebra.diag用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 LinearAlgebra.pinv — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。