當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。