Python中的SymPy:
>>> M = Matrix([[-4, sqrt(2)], [sqrt(2), -5]])
>>> M
Matrix([
[ -4, sqrt(2)],
[sqrt(2), -5]])
>>> dict_eig = M.eigenvals()
>>> dict_eig
{-6: 1, -3: 1}
SymPy.jl(Julia):
julia> M = sympy.Matrix([[-4, sqrt(2)], [sqrt(2), -5]])
2×2 Array{Sym,2}:
-4.00000000000000 1.41421356237310
1.41421356237310 -5.00000000000000
julia> dict_eig = M.eigenvals()
Dict{Any,Any} with 2 entries:
-9/2 - sqrt(225000000000001400410360361)/10000000000000 => 1
-9/2 + sqrt(225000000000001400410360361)/10000000000000 => 1
结果实际上是正确的,但是很奇怪。为什么会这样,如何获取用Python报告的表单?
[您正在python版本中隐式使用sympy的sqrt实现。如果直接致电sympy的sqrt,您将获得同等的结果。
julia> M = [[-4 sympy.sqrt(2)]; [sympy.sqrt(2) -5]]
2×2 Array{Sym,2}:
-4 sqrt(2)
sqrt(2) -5
julia> M.eigenvals()
Dict{Any,Any} with 2 entries:
-3 => 1
-6 => 1