PYI_R_W14_M30 Schemat Hornera - efektywna metoda obliczania wartości wielomianów
Implementacja schematu Hornera - wersja rekurencyjna
Definiując funkcję rekurencyjną, będziemy musieli podać następujące dane wejściowe:
stopień wielomianu,
współczynniki kolejnych wyrazów wielomianu,
argument, dla którego obliczamy wartość wielomian.
Wzór rekurencyjny obliczania wartości wielomianu za pomocą schematu Hornera możemy zapisać w następujący sposób:
Zapiszemy algorytm rekurencyjny, który pozwala obliczyć wartość wielomianu z zastosowaniem schematu Hornera:
Zdefiniujmy funkcję, która wykorzystując algorytm rekurencyjny obliczy wartość wielomianu. Współczynniki towarzyszące poszczególnym jednomianom (czyli czynniki aIndeks dolny nn w wyrażeniach ) podamy w kolejności od największego do najmniejszego wykładnika potęgi (od do ):
Sprawdźmy, ile operacji podstawowych trzeba wykonać w celu obliczenia wartości wielomianu z zastosowaniem metody rekurencyjnej.
Funkcja rekurencyjna wywołuje wielokrotnie siebie samą. W celu sprawdzenia liczby wykonywanych przez nią operacji musimy posłużyć się zmienną, która istnieje w przestrzeni nazw poza funkcją. Do tego celu użyjemy zmiennej typu integer, który jest typem niezmiennym. Aby zmieniać wartość takiej zmiennej z wnętrza funkcji, musimy zadeklarować dostęp do niej za pomocą słowa kluczowego global. Dzięki temu będziemy mogli zmieniać wartość zmiennej, która istnieje „poza” funkcją, a jest niezmienna.
Zdefiniujemy funkcję, która poda liczbę wykonanych operacji arytmetycznych podczas wyznaczania wartości wielomianu z zastosowaniem metody rekurencyjnej:
Spróbujmy uruchomić funkcję; pamiętajmy o wcześniejszym zadeklarowaniu zmiennej zlicz oraz o wyświetleniu jej wartości po zakończeniu działania funkcji:
Bazując na postaci rekurencyjnej funkcji obliczającej wartość wielomianu, spróbujmy zapisać ją używając wyrażenia trójargumentowego.
Dla języka Python opracowano moduł o nazwie SymPy – pozwala on na zapisywanie wyrażeń algebraicznych i obliczanie ich wartości.