Прежде всего, конечно, вы имеете в виду многочлен, а не многоугольник?
С точки зрения предоставления ответа, используете ли вы одинаковое значение «x0» во всех терминах?Если это так, пусть y = x - x0, решите для y и получите x, используя x = y + x0.
Вы можете даже обернуть его в лямбда-функцию, если хотите.Скажем, вы хотите представить
f(x) = 1 + 3(x-1) + (x-1)**2
Тогда
>>> g = numpy.poly1d([1,3,1])
>>> f = lambda x:g(x-1)
>>> f(0.0)
-1.0
Корни f задаются следующим образом:
f.roots = numpy.roots(g) + 1