Я скопировал ваш код и попытался немного его отладить.
Обычно это происходит потому, что ваш код возвращает нулевое значение, а затем пытался использовать его при делении.
Если выВнимательно изучив ваш код, вы обнаружите, что следующий цикл:
for i, start_time in enumerate(tlist) :
end_time = tlist[i]
даст вам start_time == 0.0 и endTime == 0.0 на первой итерации.
Это приводит к следующей строке:
poly = poly_coeff(start_time, end_time, frame)
Чтобы вернуть вас:
>>> [[0.0, 3], [0.0, 2], [0.0, 1], [0.2, 0]]
Эта причина:
poly_substitute(poly_diff, x)
, где вы используетеследующий цикл:
for term in poly:
sum += term[0] * (x ** term[1])
, чтобы вернуть вам ноль, так как вы умножаете только нули.
Итак, вы пытаетесь удалить на 0 и получаете упомянутое исключение.
Это означает, что если вы измените свой код для безопасной проверки и установите для endTime значение tList [i + 1], выустранит эту ошибку - не забудьте проверить 'i + 1'