Projekt 2

Opis projektu

Zadanie

W matemtyce bardzo często wykorzystujemy złożenia funkcji. Jeżeli mam dwie funkcje \( f: R \rightarrow R \) i \( g: R \rightarrow R \) to definiujemy złożenie tych funkcji \( (g \circ f)(x) = g(f(x)) \) a więc w pierwszej kolejności obliczamy wartość \( y = f(x) \) a następnie wartość \( g(y) \). Oczywiście możemy definiować złożenia dowolnej (w naszym zadaniu skończonej) liczby funkcji, przykładowo \( (h \circ g \circ f)(x) \). Zadanie polega na zdefiniowaniu takiego samego operatora złożenia funkcji %@%.

Zacznijmy od prostego przykładu, zastosowaniu funkcji do wartości.

sin %@% -pi/4

[1] -3.061617e-17

Powyższa konstrukcja zwraca wartość \( sin(-\pi/4) \). Operator %@% pozwala jednak składać dowolną skończoną liczbę funkcji.

abs %@% sin %@% -pi/4
exp %@% abs %@% sin %@% -pi/4
tanh %@% exp %@% abs %@% sin %@% -pi/4

[1] 3.061617e-17
[1] 0.25
[1] 0.1903985

Powyższe formuły definiują zastosowanie odpowiednio funkcji \( \left| sin(-\pi/4)\right| \), \( e^{\left| sin(-\pi/4)\right|}{} \), oraz \( \tanh(e^{\left| sin(-\pi/4)\right|}) \). Warto zauważyć, że obliczenia dla powyższych formuł przebiegają od prawej do lewej, tak jak w notacji matematycznej, a nie od lewej do prawej tak jak jest standardowo w R dla operatorów binarnych.

Techniczne warunki zaliczenie

Zadanie powinno być rozwiązane w pojedynczym skrypcie w pliku R. Rozwiązanie powinno zawierać definicje oraz przykładowe wykorzystanie (mogą być identyczne jak powyżej). Rozwiązania bez przykładów nie będą zaliczane. W rozwiązaniu nie wolno wykorzystywać dodatkowych pakietów, a jedynie dozwolone symbole to ASCII.

Data: 2021-05-03 Mon 00:00

Autor: Michał Ramsza

Created: 2021-05-03 Mon 20:42

Validate