Ćwiczenia 8: Procedury wyższych rzędów

Ćwiczenia na procedury wyższych rzędów, ale bez standardowych procedur wyższych rzędów przetwarzających listy:

  1. Potęgowanie funkcji.
    Zasymuluj działanie na prostych przykładach:

     
          iterate 2 (function x -> x * (x+1)) 2
          iterate 3 (function x -> x * (x+1)) 1
     

    rozrysowując ramki.
    W przypadku szybszego potęgowania funkcji co tak na prawdę jest obliczane szybciej: funkcja wynikowa, czy jej wartość?

    Rozwiązania

  2. Wygładzenie funkcji z odstępem \(dx\) polega na uśrednieniu \(f(x - dx)\), \(f(x)\) i \(f(x + dx)\).
    Napisz procedurę wygładzającą daną funkcję z zadanym odstępem.
    Zwróć uwagę na kolejność argumentów.
  3. Niech \(f : {\cal R} \to {\cal R}\) będzie funkcją:

    • wzajemnie jednoznaczną, czyli 1-1 i ,,na'',
    • ciągłą,
    • rosnącą i to tak, że \(\forall_{d>0} f(x+d) - f(x) \ge d\),
    • oraz taką, że \(f(0)=0\).

    Zaimplementuj procedurę odwrotnosc, której wynikiem dla parametru \(f\) będzie przybliżenie \(f^{-1}\) z dokładnością
    zadaną przez stałą epsilon (czyli jeśli \(g = (\mathtt{odwrotnosc}\ f)\), to \(\forall x\ |g(x) - f^{-1}(x)| \le \mathtt{epsilon}\)).

  4. Zaimplementuj aproksymację funkcji za pomocą szeregu Taylora.
    Twoja procedura powinna mieć następujące parametry: liczbę sumowanych wyrazów szeregu punkt, w którym
    badana jest przybliżana funkcja, oraz daną funkcję.
    Wynikiem powinno być przybliżenie funkcji.
    Zastosuj przybliżenie pochodnej oraz sumy częściowe szeregów, przedstawione na wykładzie.