SymPy.jl特征值的奇怪报告,与在Python中使用SymPy相比

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

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报告的表单?

julia sympy
1个回答
0
投票

[您正在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
© www.soinside.com 2019 - 2024. All rights reserved.