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