es comúnmente una tarea fácil para construir un orden enésimo polinomio y encontrar las raíces con numpy:numpy.poly1d, raíz de búsqueda de optimización, cambiando polinomio en el eje x
import numpy
f = numpy.poly1d([1,2,3])
print numpy.roots(f)
array([-1.+1.41421356j, -1.-1.41421356j])
Sin embargo, supongamos desea un polinomio de tipo:
f(x) = a*(x-x0)**0 + b(x-x0)**1 + ... + n(x-x0)**n
¿hay una forma sencilla de construir una función de tipo numpy.poly1d y encontrar las raíces? He intentado con scipy.fsolve, pero es muy inestable, ya que depende en gran medida de la elección de los valores iniciales en mi caso particular.
Gracias de antemano Saludos cordiales rrrak
EDIT: Changed "polígono" (equivocadas) para "polinomio" (correcto)
esto suena una buena solución para reducir los polinomios pero ¿por qué no es simple: 'suma ([np.poly1d ([1, -x0 ]) ** i * c para i, (c, x0) en enumerate (zip (ks, offsets))]) ' – dashesy