Wyrażenie ex pojawia się w wielu różnych zagadnieniach matematycznych, więc nieuniknione, że może zajść potrzeba wyliczenia konkretnej wartości przy pomocy komputera. Jednym ze sposobów wyliczenia jest rozwinięcie funkcji w szereg Taylora. Wtedy przybliżoną wartość można policzyć ze wzoru:
Jest to bardzo wygodna metoda, która pozwola na dostosowanie dokładności przybliżenia poprzez wybór ilości sumowanych wyrazów, różnicy pomiędzy kolejnymi wyrazami lub aż któryś wyraz będzie mniejszy od pewnej wartości.
Liczba e w przybliżeniu 2,718281828459.
Przygotujmy funkcję fwykladnicza(), która będzie przyjmowała dwa argumenty: x - wykładnik do którego ma zostać pondniesione e oraz n - ile kolejnych wyrazów rozwinięcia ma zostać zsumowanych. Przykładowy kod będzie wyglądał następująco:
(2.) Inicjalizacja wartości dla n = 0, a potem (3. - 4.) dodawanie w pętli n kolejnych wyrazów. Na koniec (5.) zostaje zwrócona wyliczona suma. W kodzie została wykorzystana funkcja silnia():
Jak można zauważyć ten sposób wyliczania funkcji ex nie jest najbardziej efektywny. Za każdym razem należy wyliczyć kolejną potęge x oraz coraz wyższą wartość silni.
Jeśli dobrze się przyjrzeć rozwinięciu funkcji ex to przypomina ona wielomian. Wyłączając kolejne czynniki przed nawias otrzymujemy:
Zaleta takiego rozpisania powinna być oczywista. Zastosowanie schematu Hornera pozwoli na wykonanie jak najmniejszej ilości operacji arytmetycznych. Ponadto nie jest potrzebna, ani funkcja potęgowania, ani silnii co oznacza, że program nie będzie wykonywał wielokrotnie tych samych operacji.
W powyższym kodzie warto zauważyć, że zaczynamy od największego i, ponieważ najpierw wyliczamy wartość w środku całego schematu, a potem je modyfikujemy n razy.
Szacowanie wyrażenie poprzez określenie ile kolejnych wyrazów rozwinięcia ma zostać zsumowanych jest rozwiązaniem, ale warto dodać warunki np. że wyrazy są sumowane dopóki wyraz nie jest mniejszy niż pewna wartość. Tego typu implementacja jest do wykonania w zadaniu 1.
W celu przetestowania napisanych funkcji
Napisz iteracyjne wyznaczanie funkcji ex, która wyliczając kolejny wyraz będzie pamiętała wynik poprzedniego i na jego podstawie będzie wyliczała następny wyraz. Funkcja powinna przestał sumować kolejne wyrazy rozwinięcia, gdy wyraz będzie mniejszy niż podana wartość z przez użytkownika. Przykładowo jeśli z = 0.0001 to jeśli ai < z to program zwraca wynik.