Programowanie funkcyjne/Procedury wyższych rzędów/Ćwiczenia: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Kubica (dyskusja | edycje)
Kubica (dyskusja | edycje)
Linia 7: Linia 7:


==Ćwiczenia==
==Ćwiczenia==
{{cwiczenie|[Semantyka wyrażeń]||
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ść.
}}


* 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ść.
{{cwiczenie|[]||
 
Zaimplementuj przybliżanie zer funkcji przez bisekcję.  
* Zaimplementuj przybliżanie zer funkcji przez bisekcję. Parametrami powinny być:  
Parametrami powinny być:  
** funkcja <math>f</math>, której zer szukamy,  
* funkcja <math>f</math>, której zer szukamy,  
** dwa punkty, w których funkcja przyjmuje wartości przeciwnych znaków,  
* dwa punkty, w których funkcja przyjmuje wartości przeciwnych znaków,  
** precyzja poszukiwać, tzn. taki <math>\varepsilon</math>, że jeżeli wynik <math>x</math> spełnia <math>|f\ x| \le \varepsilon</math>, to jest dobrym przybliżeniem zera.  
* precyzja poszukiwać, tzn. taki <math>\varepsilon</math>, że jeżeli wynik <math>x</math> spełnia <math>|f\ x| \le \varepsilon</math>, to jest dobrym przybliżeniem zera.
 
}}


== Laboratorium ==
== Laboratorium ==

Wersja z 17:44, 17 gru 2006

Praca domowa

  • Wygładzenie funkcji z odstępem dx polega na uśrednieniu f(xdx), f(x) i f(x+dx). Napisz procedurę wygładzającą daną funkcję z zadanym odstępem.
  • Jaki typ ma procedura compose zastosowana w wyrażeniu:
compose twice twice;;

Ćwiczenia

Ćwiczenie [Semantyka wyrażeń]

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ść.

Ćwiczenie []

Zaimplementuj przybliżanie zer funkcji przez bisekcję. Parametrami powinny być:

  • funkcja f, której zer szukamy,
  • dwa punkty, w których funkcja przyjmuje wartości przeciwnych znaków,
  • precyzja poszukiwać, tzn. taki ε, że jeżeli wynik x spełnia |f x|ε, 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

{{{3}}}

Ćwiczenie [Odwrotność funkcji]

Niech f: będzie funkcją 1-1 i "na" oraz taką, że f(0)=0, f jest rosnąca i |f(x)||x|. Zaimplementuj procedurę odwrotnosc, której wynikiem dla parametru f będzie przybliżenie f1 z dokładnością zadaną przez stałą epsilon (czyli jeśli g = odwrotnosc f, to x |g(x)f1(x)|epsilon).


Ć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 yxyn1 jest xn. Zaimplementuj obliczanie n-tego pierwiastka z x za pomocą obliczania punktu stałego i tłumienia przez uśrednianie z odpowiednimi wagami. Uwaga: W jaki sposób wagi zależą od n?