В ссылке на предоставленную вами документацию ( numpy.roots ) говорится, что алгоритм основан на вычислении собственных значений сопутствующей матрицы . Математика находится на странице 191 (3.3 Минимальный полином и сопутствующая матрица) книги Матричный анализ .
Кроме того, вот довольно хорошее объяснение: Полиномы собственных значений . Это больше похоже на обзор алгоритма. не говорит, как вычислять собственные векторы.
Надеюсь, это поможет:)