代码之家  ›  专栏  ›  技术社区  ›  saulspatz

用常多项式求和法求同调中的发电机所需误差

  •  1
  • saulspatz  · 技术社区  · 7 年前

    我明白了

    Suff.Pyth.PrimeReRe.Suthor需要:不能从“DICT”初始化而不生成生成器

    当我试图和一个零多项式。错误发生在

        g = k*Sum(f,(m,k,n)).doit()
    

    在这里 m n 是符号,并且 k 是一个整数。发生错误 第一次通过循环,什么时候 f 已初始化为 Poly(0,m) 是的。脚本计算一系列多项式。如果我初始化 F型 Poly(m,m) 脚本运行到完成。如果我试着 Poly(1,m) 我得到和以前一样的错误。

    如何定义一个常数多项式,以便脚本能够正确执行?

    1 回复  |  直到 7 年前
        1
  •  2
  •   user6655984    7 年前

    这个 Sum 通行证 doit() 对于它试图求和的对象,这是发生错误的地方。所以,一个最小的例子是

    x = symbols('x')
    f = Poly(0, x)
    f.doit()  #  GeneratorsNeeded: can't initialize from 'dict' without generators
    

    看起来像是一个错误,边缘的情况没有得到正确的解决。但有一个解决办法:通过 表达 求和(这是它所期望的),而不是多边形对象。多边形被转换为表达式 as_expr() 是的。

    f = Poly(0, m)
    Sum(f.as_expr(), (m, 0, n)).doit()   #  0