【问题标题】:How do i convert a SymPy expression into polynomials?如何将 SymPy 表达式转换为多项式?
【发布时间】:2019-10-17 04:07:44
【问题描述】:

我想将一个 SymPy 表达式,例如 x+yx=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

【问题讨论】:

  • 嗨@Marouane1994!我稍微修正了您的代码格式,并尝试改进文本的某些部分。请确保我没有更改含义的任何相关部分。
  • 我从未使用过PyCall,但我们最近在 Julia 中实现了getproperty 重载。也许getindex 接口已被弃用?你试过op.as_poly(domain = "C")之类的吗?

标签: julia sympy pycall


【解决方案1】:

正如@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()

应该给你你想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多