当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia LinearAlgebra.pinv用法及代码示例


用法:

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*ϵ ,其中 nM 的最小尺寸的大小,而 ϵ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

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 LinearAlgebra.pinv — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。