Ошибка GeneratorsNeeded в SymPy с использованием суммы с постоянным полиномом - PullRequest
0 голосов
/ 25 июня 2018

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

sympy.polys.polyerrors.GeneratorsNeeded: невозможно инициализировать из 'dict' без генераторов

при попытке суммированиянулевой полином.Ошибка возникает в строке

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

Здесь m и n являются символами, а k является целым числом.Ошибка возникает в первый раз в цикле, когда f был инициализирован в Poly(0,m).Скрипт вычисляет последовательность полиномов.Если вместо этого я инициализирую f на Poly(m,m), сценарий запускается до конца.Если я пытаюсь Poly(1,m), я получаю ту же ошибку, что и раньше.

Как я могу определить постоянный полином, чтобы мой скрипт выполнялся правильно?

1 Ответ

0 голосов
/ 26 июня 2018

Sum передает doit() объекту, который пытается суммировать, и именно здесь происходит ошибка.Итак, минимальный пример:

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

Выглядит как ошибка, крайний случай не решается правильно.Но есть обходной путь: передайте выражение сумме (что она и так ожидает), а не объект Poly.Поли превращается в выражение с as_expr().

f = Poly(0, m)
Sum(f.as_expr(), (m, 0, n)).doit()   #  0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...