Вы получаете набор всех корней для полинома по
numpy.roots([3, -9.5, +10, 0])
array([1.58333333+0.90905934j, 1.58333333-0.90905934j,
0. +0.j ])
Не ясно, каковы ваши другие ожидаемые реальные корни, fsolve
найдет только реальное root 0
.
Конечно, если вы возьмете коэффициенты, которые вы использовали в графическом инструменте Desmos
numpy.roots([2, -9.5, +10, 0])
, вы действительно получите ожидаемое
array([3.17539053, 1.57460947, 0. ])
Для скалярных неполиномиальных функций интерфейс scipy.optimize.find_root
, возможно, более подходит, особенно если вы можете указать интервал брекетинга.