Как преобразовать выражение SymPy в полиномы? - PullRequest
0 голосов
/ 17 октября 2019

Я хочу изменить выражение SymPy, например x+y (x=symbols("x") и то же самое для y), в полином, а затем получить генераторы этого полинома и длину этого полинома.

Я пробовал

op=x+y
op = op[:as_poly](domain="C")
op_a = op.x[:gens]
nab = op[:length]()

, но похоже, что это не работает.

Я получаю следующую ошибку:

ERROR: MethodError: no method matching getindex(::Sym, ::Symbol)
Closest candidates are:
  getindex(::Sym, ::Sym...) at /Users/midow/.julia/packages/SymPy/1Cwgd/src/utils.jl:18
  getindex(::Number) at number.jl:75
  getindex(::Number, ::Integer) at number.jl:77
  ...
Stacktrace:
 [1] top-level scope at REPL[11]:1

1 Ответ

1 голос
/ 18 октября 2019

Как упоминал @phipsgabler, интерфейс изменился с getindex на getproperty, поэтому

using SymPy
x=symbols("x")
y=symbols("y")
op = op.as_poly(domain="C")
op_a = op.x.gens
nab = op.length()

должно дать вам то, что вы хотите.

...