завершите функцию FindRealZeros
, которая принимает полином как список и возвращает список корней полинома в порядке возрастания, появляясь столько раз, сколько они повторяются
До сих пор я утверждалчто в функцию могут быть переданы только полиномы минимального порядка 1. Любая функция порядка 0 сразу же проваливает утверждение. Затем у полинома порядка 1 выводится корень.
проблема, с которой я сталкиваюсь, заключается в определении остальной части функции для порядков многочленов, больших 2., таких как и член x ^ 3.
def FindRealZeros(polynomial):
assert len(polynomial) > 1.
# Above i have made sure the polynomial is never just a constant or empty list such as [a], or y = a and [].
assert EnsureStandardForm(polynomial)
# Above ensures that there are never additional zeros that does not satisfy the previous assertion.
if len(polynomial) == 2:
#######################################################################
# Here i am saying that if given a linear polynomai, ax + b, then return the root #
# (given by the equation using the members of the list) #
#######################################################################
first_member = polynomial[0]
second_member = polynomial[1]
root = [(-first_member)/second_member]
return root
Пока что код, который я реализовал, работает отлично. проблема в том, что я застрял на том, где заняться этим дальше. Я могу попытаться выяснить, как можно вычислить корни полинома 3-го, 4-го и т. Д., Но это не помогает мне, поскольку мне нужно иметь возможность создавать код для любого заданного полинома n-го порядка.