SymPy.jl странный отчет о собственных значениях по сравнению с использованием SymPy в Python - PullRequest
2 голосов
/ 07 октября 2019

SymPy в Python:

>>> 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> 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?

1 Ответ

2 голосов
/ 08 октября 2019

Вы явно используете реализацию sqrt sympy в версии Python. Если вы позвоните в sqlt компании sympy напрямую, вы получите эквивалентные результаты.

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
...