Programowanie funkcyjne/Procedury wyższych rzędów/Ćwiczenia: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 23: | Linia 23: | ||
Zastosuj przybliżenie pochodnej oraz sumy częściowe szeregów, przedstawione na wykładzie. | Zastosuj przybliżenie pochodnej oraz sumy częściowe szeregów, przedstawione na wykładzie. | ||
}} | }} | ||
{{rozwiazanie|nieefektywne, ale proste|| | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> <div class="mw-collapsible-content" style="display:none"> | |||
'''let''' potega x n = iterate n ('''fun''' a -> a *. x) 1.0;; | |||
''val potega : float -> int -> float = <fun>'' | |||
'''let''' wyraz f x0 x n = | |||
iterate (n-1) pochodna f x0 /. float (silnia (n-1)) *. potega (x -. x0) (n - 1);; | |||
''val wyraz : (float -> float) -> float -> float -> int -> float = <fun>'' | |||
'''let''' taylor f x0 n x = szereg (wyraz f x0 x) n;; | |||
''val taylor : (float -> float) -> float -> int -> float -> float = <fun>'' | |||
</div></div>}} | |||
{{cwiczenie|[Odwrotność funkcji]||}} | {{cwiczenie|[Odwrotność funkcji]||}} |
Wersja z 14:38, 18 paź 2006
Praca domowa
- Wygładzenie funkcji z odstępem polega na uśrednieniu , i . Napisz procedurę wygładzającą daną funkcję z zadanym odstępem.
- Jaki typ ma procedura compose zastosowana w wyrażeniu:
compose twice twice;;
Ćwiczenia
- Przypomnij sobie zadanie dotyczące wyliczania wartości wyrażeń. Rozszerz składnię wyrażeń o zmienne. Procedura obliczająca wartość wyrażenia będzie wymagać dodatkowego parametru -- wartościowania zmiennych, czyli procedury, która nazwie zmiennej przyporządkowuje jej wartość.
- Zaimplementuj przybliżanie zer funkcji przez bisekcję. Parametrami powinny być:
- funkcja , której zer szukamy,
- dwa punkty, w których funkcja przyjmuje wartości przeciwnych znaków,
- precyzja poszukiwać, tzn. taki , że jeżeli wynik spełnia , to jest dobrym przybliżeniem zera.
Laboratorium
Ćwiczenie [Szereg Taylora]
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. Wynikiem powinno być przybliżenie funkcji. Zastosuj przybliżenie pochodnej oraz sumy częściowe szeregów, przedstawione na wykładzie.
Rozwiązanie nieefektywne, ale proste
Ćwiczenie [Odwrotność funkcji]
Niech będzie funkcją 1-1 i "na" oraz taką, że , jest rosnąca i . Zaimplementuj procedurę odwrotnosc, której wynikiem dla parametru będzie przybliżenie z dokładnością zadaną przez stałą epsilon (czyli jeśli g = odwrotnosc f, to ).
Ćwiczenie [Pierwiastkowanie jako punkt stały [AS] ]
Przedstawione w wykładzie tłumienie przez uśrednianie opiera się na średniej arytmetycznej. Czasami zamiast średniej arytmetycznej należy użyć średniej ważonej, z odpowiednio dobraną wagą. Punktem stałym funkcji jest . Zaimplementuj obliczanie -tego pierwiastka z za pomocą obliczania punktu stałego i tłumienia przez uśrednianie z odpowiednimi wagami. Uwaga: W jaki sposób wagi zależą od ?