numpy.poly1d, оптимизация поиска корня, сдвиг полином по оси x

обычно легко построить многочлен n-го порядка и найдите корни с помощью numpy:

import numpy
f = numpy.poly1d([1,2,3])
print numpy.roots(f)
array([-1.+1.41421356j, -1.-1.41421356j])

Однако предположим, что вам нужен многочлен типа:

f(x) = a*(x-x0)**0 + b(x-x0)**1 + ... + n(x-x0)**n

Есть ли простой способ построить функцию типа numpy.poly1d и найти корни? Я пробовал scipy.fsolve, но он очень нестабилен, так как сильно зависит от выбора начальных значений в моем конкретном случае.

Заранее спасибо Наилучшие пожелания rrrak

РЕДАКТИРОВАТЬ: изменено "многоугольник" (неправильный) на "полиномиальный" (правильный)

5
задан rrrak 23 July 2011 в 10:08
поделиться