Julia和Python中的伪逆矩阵不同

问题描述 投票:0回答:1

我正在尝试在Julia中转录python代码。我有一个名为“测试”的矩阵,即here。我正在使用numpy.linalg.pinv在Python中计算矩阵的(Moore-Penrose)伪逆,结果为here,而在Julia中,LinearAlgebra.pinv(test)的结果为here。我想问问是否有人知道这两种情况下的结果为何不同,我该怎么做才能使它们匹配。到目前为止,我已经尝试了LinearAlgebra.pinv(test [1:3,1:3]),由于未知原因,结果也有所不同,但仍然与Python输出不匹配。

python julia matrix-inverse
1个回答
0
投票
julia> using PyCall; np = pyimport("numpy"); julia> test = [2. 3. 4.; 3. 4. 5.; 4. 5. 6.] 3×3 Array{Float64,2}: 2.0 3.0 4.0 3.0 4.0 5.0 4.0 5.0 6.0 julia> pinv(test) 3×3 Array{Float64,2}: -1.33333 -0.166667 1.0 -0.166667 -4.16334e-17 0.166667 1.0 0.166667 -0.666667 julia> using PyCall; np = pyimport("numpy"); julia> pinv(test) ≈ np.linalg.pinv(test) true

不是与您的“结果”相比,我得到了不同的伪逆。

© www.soinside.com 2019 - 2024. All rights reserved.