Metody Numeryczne I A

Zasady zaliczania

Ćwiczenia rozpoczynają się w piątki o 10:15 w OKWF A. Są dwie przerwy 15 minutowe o pełnych godzinach (czyli 11:00--11:15 oraz 12:00--12:15).

Wiadomości

Tutaj będą pojawiały się różne informacje, np. upłynięcie terminu oddawania zadania domowego, termin testu, informacje o odwołaniu zajęć czy informacje o wynikach (czy też informacje o zmianach na stronie). Najnowsze informacje znajdują się u góry. Symbolem [NEW!] oznaczane są wiadomości nie starsze niż tydzień.

Spis treści

Zadania (programy) domowe

Programy będą oceniane w skali ciągłej [0,1]. Na koniec zajęć ilość punktów uzyskanych za oddane programy będzie dzielona przez ilość obowiązkowych zadań domowych i przeliczana do 44 pkt. Za szczególnie "ładne" rozwiązania można dostać dodatkowe punkty. Możliwe jest zatem uzyskanie za programy więcej niż 44 pkt. Każde zadanie domowe ma termin oddania (celem tego rozwiązania jest uniknięcie oddawania wszystkich zadań na ostatnich i przedostatnich zajęciach). Zadania domowe należy oddawać do dwóch tygodni od terminu zadania. Oddanie zadania w części (więcej niż połowa) umożliwia oddanie reszty do dwóch tygodni (a dokładniej dwóch ćwiczeń) po normalnym terminie oddania zadania.

Aby sprawdzić które zadania zostały oddane, oraz wkrótce ile punktów zdobyło się według bieżącej punktacji można zajrzeć do listy oddanych zadań. Znaleźć tam można również listę zadań domowych z terminami oddania. Warto także zajrzeć do spisu zadań domowych (w formacie Postscript, skompresowany), z punktacją zadań i podziałem na części. Aktualniejszą wersję spisu można znaleźć w wynikach.

Programy można wysyłać pocztą (mój adres e-mail to jnareb@fuw.edu.pl), ale preferowane jest oddawanie programów osobiście. Uwaga: proszę zaznaczać które zadanie domowe rozwiązuje przysłany program, oraz podać autorów programu.

W poradach znajduje się opis preferowanego sposobu (stylu) kodowania (zapisywania programu). Nie jest on obowiązkowy. Służy on głównie jako wskazówka, jak należy pisać programy.

Celem każdego zadania domowego powinno być napisanie zadanego algorytmu (metody) oraz jego przetestowanie.

Powrót na górę strony

Zagadnienia przedstawiane na ćwiczeniach

1. Dokładność numeryczna

08-10-2004

1.1. Opis teoretyczny
1.2. Zadania
  1. Znaleźć najmniejszą taką liczbę a != 0, taką że fl(1+a) = 1 (gdzie fl(wyrażenie) oznacza wynik numerycznego obliczenia wyrażenia na liczbach zmiennoprzecinkowych). Znaleźć taką liczbę a, że fl(1/a*a) != 1. Uwaga: podane zadanie można rozwiązać nie korzystając z komputera przy założeniu określonej ilości bitów na mantysę; przy pisaniu programu w razie potrzeby należy zastosować zmienne pomocnicze.
  2. Zaimplementować dwa algorytmy obliczania długości przeciwprostokątnej: bezpośrednie zastosowanie wzoru pitagorasa oraz wzór powstały przez wyłączenie większej co do modułu liczby przed pierwiastek (patrz wstep.ps.gz (tex)). Porównać ich dokładność oraz dokładność funkcji bibliotecznej hypot. Dla jakich wartości parametrów metoda klasyczna nie działa, a druga metoda daje poprawne wyniki (do tego nie potrzeba używać komputera).
1.3. Zadania dodatkowe
  1. Kumulacja błędów w zagadnieniu obliczania sumy. Należy zaimplementować zwykłe sumowanie ciągu, sumowanie ciągu od najmniejszej wartości (ciąg może być zadany przez piszącego program, więc nie ma potrzeby wykonywać sortowanie), oraz algorytm Gilla-Mollera:
      u = p = 0;
      for (i = 0; i < N; i++) {
        v = A[i];
        s = u + v;
        p = u - s + v + p;
        u = s;
      }
      wynik = s + p
      
    Algorytm Gilla-Mollera zapobiega (teoretycznie) kumulacji błędów. Zobaczyć który algorytm daje najdokładniejszy wynik.
1.4. Zadanie domowe

Zaimplementować dwa: klasyczny i ulepszony (w którym z klasycznego wzoru oblicza się większy co do modułu pierwiastek zaś drugi ze wzoru Verleta) rozwiązywania równania kwadratowego. Poszukać takich współczynników wielomianu, że metody te dają różne wyniki. Który algorytm jest dokładniejszy, tzn. dla którego algorytmu wartości wielomianu w pierwiastkach są bliższe zera? Program powinien sprawdzać czy zagadnienie ma rozwiązania (w liczbach rzeczywistych).
 
Czas oddania: do 22 października 2004 roku.

2. Wielomiany i interpolacja wielomianowa.

15-10-2004 - 22-10-2004

2.1. Opis teoretyczny
2.2. Zadania
  1. Napisać obliczanie wartości wielomianu danego przez swoje współczynniki (zapisane w tablicy) w zadanym punkcie x metodą klasyczną, unikając zbędnych obliczeń:
    W(x) = a0 x0 + a1 x x0 + a2 x x1 + ... + an x xn-1
    Zapisać program dzieląc go na funkcje i moduły. W przypadku pisania obiektowego napisać odpowiednie klasy, także dzieląc program na oddzielne moduły.
  2. Napisać obliczanie wartości wielomianu danego przez swoje współczynniki (zapisane w tablicy) w zadanym punkcie x metodą Hornera:
    W(x) = a0 + x (a1 + ... + x (an-1 + x an)...)
  3. Napisać procedury (funkcje) znajdujące elementy tablicy między którymi leży dane x metodami bisekcji oraz polowania. Dokładniej, znaleźć taki indeks i, że tab[i] <= x < tab[i+1]; przy metodzie polowania należy startować z przybliżonego indeksu i' a później po znalezieniu ograniczenia zastosować metodę bisekcji.
2.3. Zadania dodatkowe
  1. Napisać funkcję dokonującą interpolacji wielomianowej w punkcie bezpośrednio za pomocą wzorów Lagrange'a. Porównać dokładność i koszt tego algorytmu z algorytmem Neville'a (i ew. ulepszonym algorytmem Neville'a).
2.4. Omówione tematy
2.5. Zadanie domowe

Napisać program dokonujący interpolacji wielomianem zadanego stopnia za pomocą metodą Neville'a. Wykres można przedstawić zapisując wyniki do pliku i korzystając z programu gnuplot, lub korzystając z którejś z bibliotek graficznych (g2, GRX, GTK, Qt, Xlib,...). W przypadku robienia wykresu należy, przy funkcji zadanej na N >= m + 1 punktach (gdzie m jest stopniem wielomianu interpolacyjnego), wyznaczać wartość wielomianu interpolacyjnego w punkcie na podstawie interpolacji opartej o najbliższe (w sensie odległości albo w sensie indeksów) m+1 punktów. W przypadku programu nie produkującego wykresów należy przynajmniej dać użytkownikowi możliwość punktu obliczenia interpolacji; program w wyniku powinien podawać wartość interpolacji w punkcie, wartość funkcji w punkcie i błąd interpolacji. Najlepiej, jeśli w programie było podanych kilka przykładowych punktów dla których można zobaczyć własności interpolacji (ekstrapolacji).
Przykładowe funkcje do testowania: |x|, 1/(1+x2), exp(-x2), exp(-1/x2), wielomian.

Wymagania (punktacja może ulec zmianie: proszę podawać rzeczywistą trudność poszczególnych podzadań):

  1. Napisanie funkcji znajdującej wartość interpolacji wielomianowej określonego stopnia m rozpiętego na m+1 punktach w zadanym punkcie x (70%). Za użycie rekurencji bądź macierzy pomocniczej -10%. Za użycie algorytmu poprawek z Numerical Recipes +15%.
  2. Napisanie kodu generującego wykres interpolacji wielomianowej, zadanych punktów i porównanie interpolacji z interpolowaną (prawdziwą) funkcją (10%).
  3. Napisanie funkcji znajdującej punkty na których należy rozpiąć interpolację, przy zadanym punkcie interpolacji (i w przypadku metody polowania zgadniętego indeksu) i stopniu wielomianu interpolującego. Użyć funkcji pomocniczej do znalezienia indeksu "środkowego" tabi <= x < tabi+1 (20%).
Czas oddania: do 19 listopada 2004 r.

3. Znajdowanie współczynników wielomianu interpolującego.

29-10-2004

3.1. Opis teoretyczny
3.2. Zadanie domowe

Napisać program znajdujący współczynniki wielomianu interpolującego przez stosowanie algorytmu Neville'a (algorytm z wykładu, patrz także wspolcz_int_wiel.ps.gz (tex)). Program powinien sprawdzić, czy algorytm ten odtwarza wielomian jeśli mamy wystarczającą liczbę punktów, tzn. przy danych wartościach wielomianu w stopień + 1 (lub więcej) punktach czy dostajemy poprawne współczynniki wielomianu. Można porównać wielomian otrzymany z interpolacji np. z rozwinięciem Taylora funkcji.

Wymagania (punktacja może ulec zmianie: proszę podawać rzeczywistą trudność poszczególnych podzadań):

  1. Napisanie funkcji znajdującej współczynniki (w bazie jednomianów bądź w bazie Newtona) interpolacji wielomianowej określonego stopnia n rozpiętej na n+1 punktach (70%). Za wyliczenie współczynników w postaci normalnej jeśli obliczaliśmy współczynniki w postaci Newtona +15%. Za wyliczanie współczynników Newtona (jeśli ich używamy) za pomocą wzoru rekurencyjnego z użyciem ilorazów różnicowych +10%. Za wybór odrzucanego punktu w metodzie korzystającej z metody Neville'a +5%. Za użycie obu metod +35% i za ich porównanie +10% (plus punkty dodatkowe dla obu metod).
  2. Sprawdzenie czy odtwarzamy i z jaką dokładnością współczynniki jeśli funkcją interpolowaną jest wielomian (zadany w takiej postaci, jakie współczynniki znajdujemy, czyli odpowiednio w postaci Newtona lub w postaci naturalnej) (15%). Za sprawdzenie czy odtwarzamy współczynniki w rozwinięciu Taylora funkcji interpolowanej (wymaga współczynników w bazie jednomianów) +5%.
  3. Napisanie kodu generującego wykres interpolacji wielomianowej, zadanych punktów i porównanie interpolacji z interpolowaną (prawdziwą) funkcją (15%). Wartości interpolacji należy znajdować obliczając wielomian interpolowany. Za użycie odpowiedniego wzoru Hornera +2.5%. Za obliczanie wartości wielomianu bazy za każdym razem od początku -2.5%. Za użycie funkcji pow do obliczania potęg o wykładniku będącym niezbyt dużą liczbą naturalną -2.5%.
Czas oddania: do 3 grudnia 2004 roku.

4. Całkowanie numeryczne przy pomocy kwadratur Gaussa.

05-11-2004

4.1. Opis teoretyczny
4.2. Zadania
  1. Całkowanie za pomocą kwadratury Gaussa-Legendre'a, z adaptacyjnym dzieleniem przedziału.
  2. Całkowanie po przedziale nieskończonym za pomocą kwadratur Gaussa-Laguerre'a, Gaussa-Hermite'a oraz przez zamianę zmiennych (sprowadzenia do przedziału skończonego).
4.3. Zadanie domowe

Napisać program całkujący różne funkcje w zadanych przedziałach za pomocą kwadratur Gaussa. Program powinien jako jedną z całek liczyć całkę na przedziale niewłaściwym (nieograniczonym przynajmniej z jednej strony) za pomocą odpowiedniej zamiany zmiennych. Całkowanie powinno się odbywać za pomocą kolejnego dzielenia przedziałów aż do osiągnięcia założonej dokładności lub przekroczenia ilości kroków.

Do oszacowania błędu całkowania można użyć wyników dla przedziału i przedziału podzielonego na części, lub dla kwadratury i kwadratury wyższego stopnia na tym samym przedziale. (Dla chętnych: zaimplementować kwadratury Gaussa-Kronroda, które licząc kwadraturę 2n+1. rzędu korzystają z węzłów kwadratury n. rzędu. Patrz pakiet QUADPACK w Netlib, w szczególności procedury qk21 i podobne.). Przy dzieleniu przedziałów na części warto dzielić ten przedział, który daje największy błąd (szybkie znajdowanie minimum można zrobić za pomocą kolejki priorytetowej zaimplementowanej w postaci kopca/stogu (ang: heap)), ale można po prostu dzielić te przedziały które dają większy błąd (jako wkład do całki) niż założona dokładność.

Dla chętnych: zastosować algorytm sumowania z poprawkami Gilla-Mollera.

Przykładowe funkcje do scałkowania:

całka wynik
\int_0^1 xa log 1/x dx 1/(a+1)2
\int_{-inf}^{inf} exp(-x - x2) dx sqrt(Pi)*exp(1/4)
\int_0^{inf} log(x)/(1 + 100*x2) dx - log(10)/20

Wymagania:

  1. Napisanie funkcji obliczającą całkę na przedziale [a, b] za pomocą kwadratury Gaussa o określonym stopniu (liczbie węzłów) (10%). Za wypisanie wyników dla więcej niż jednego stopnia i porównanie wyników +5%.
    Napisanie funkcji wyliczającej całkę na przedziale [a,b] adaptacyjnie, do osiągnięcia zadanej dokładności lub przekroczenia maksymalnej ilości przedziałów/wywołań funkcji (70%).
    Za wybór przedziału o największym błędzie do podziału +10%. Za wykorzystanie w tym celu kolejki priorytetowej (np. stogu) +20%. Za zrobienie obliczeń obiema metodami (proste dzielenie przedziałów + wybieranie przedziału o największym błędzie) i porównanie obu metod + 10%.
  2. Zwrócenie oszacowania błędu adaptacyjnej kwadratury Gaussa +10%.
  3. Obliczenie metodą adaptacyjną całki na przedziale nieskończonym (przynajmniej jedną z granic jest nieskończoność), albo przez zamianę zmiennych, albo przez użycie odpowiednich kwadratur: Gaussa-Laguerre'a lub Gaussa-Hermite'a (20%). Za brak całkowania adaptacyjnego w tym przypadku -5%. Dodatkowe punkty za zrobienie obu wersji (i ew. ich porównanie).
  4. Użycie kwadratur Gaussa-Kronroda do oszacowania błędu +10% lub więcej. Zastosowanie algorytmu Gilla-Mollera sumowania z poprawkami +7.5% lub więcej. Za szczegółową analizę zachowania adaptacyjnego całkowania metodą Gaussa: w/g uznania prowadzącego ćwiczenia.
Czas oddania: Do końca grudnia (17 grudnia 2004).

5. Interpolacja przy pomocy funkcji sklejanych (splines).

19-11-2004

5.1. Opis teoretyczny
5.2. Zadania
  1. Napisać procedurę (funkcję) rozwiązującą układ równań o macierzy w postaci trójliniowej metodą przeganiania. Sprawdzić, czy daje ona dobre wyniki (przez przemnożenie wyniku przez macierz i sprawdzenie czy wynik jest równy wektorowi prawej strony).
  2. Napisać procedurę (funkcję) dokonującej interpolacji funkcjami sklejanymi trzeciego stopnia (splines) przy zadanych wartościach funkcji i drugiej pochodnej funkcji w punktach, t.j. danych xi, fi = f(xi), d2fi = f''(xi) .
5.3. Zadanie domowe

Napisać program dokonujący interpolacji przy pomocy krzywych sklejanych (splines) trzeciego stopnia (przy zadanych punktach i wartościach funkcji w punkcie). Patrz także opis w spline.ps.gz (tex).
 
Wymagania:

  1. Napisanie funkcji znajdującej wartość interpolacji za pomocą funkcji sklejanej trzeciego stopnia (spline) dowolną metodą (rozwiązanie układu równań na współczynniki trójmianu kwadratowego w każdym przedziale lub wyliczenie drugich pochodnych i skorzystanie ze wzoru interpolacyjnego). W tej części mieści się rozwiązanie układu równań z macierzą trójdiagonalną (90%).
  2. Napisanie kodu generującego wykres krzywej sklejanej, punktów interpolacji i interpolowanej funkcji (10%).
  3. Za napisanie i/lub porównanie z innymi metodami: porównanie z smooth csplines z gnuplota (lub analogicznego sposobu w programie używanym do robienia wykresów) +2.5%; porównanie z inną metodą nie napisaną własnoręcznie (np. z Numerical Recipes lub GNU Scientific Library) +10%; porównanie z drugą metodą +40% (dokładna punktacja do dyskusji: program napisany w dobrym stylu ma większe szanse uzyskać większą ilość dodatkowych punktów).
  4. Spline powinien przechodzić przez punkty interpolacji; jeśli nie przechodzi -0% (ponieważ nie jestem pewien, czy spisywałem wszystkie przypadki kiedy np. spline nie przechodził przez pierwszy punkt, nie będę obniżał punktacji za ten błąd).
Czas oddania: Pierwsze zajęcia po przerwie świątecznej, 7. stycznia 2005 r.

6. Całkowanie numeryczne rozszerzoną metodą trapezów.

26-11-2004 - 03-12-2004

6.1. Opis teoretyczny
6.2. Zadania
  1. Napisać procedurę (funkcję) całkującą zadaną funkcje po przedziale domkniętym rozszerzoną metodą trapezów. Rząd metody powinien być zwiększany do osiągnięcia żądanej dokładności (jako oszacowanie błędu można wziąść różnicę między wynikami z kolejnych rzędów) lub przekroczenia maksymalnej ilości podziałów. Funkcja powinna wykorzystywać wyniki z poprzedniego rzędu dla uniknięcia wielokrotnego obliczania wartości funkcji w tym samym punkcie.
  2. Napisać procedurę (funkcję) całkującą zadaną funkcję po przedziale domkniętym metodą Romberga. Wykorzystać poprzednią procedurę.
  3. Napisać funkcję obliczającą całkę wielokrotną (wielowymiarową) albo pisząc ogólną procedurę całkowania funkcji z parametrem i przekazując pozostałe zmienne jako parametry, albo napisać całkowanie dla zadanej liczby wymiarów, przekazując pozostałe zmienne w zmiennych globalnych (statycznych).
Uwaga: całkowanie wielowymiarowe jest powolne, zatem nie należy zadawać zbyt dużej dokładności.
6.3. Zadanie domowe

Napisać program całkujący zadaną funkcję w zadanym przedziale za pomocą rozszerzonej (złożonej) metody trapezów. Program powinien zwiększać rząd metody (ilość podziałów) aż do osiągnięcia zakładanej dokładności lub przekroczenia maksymalnej ilości iteracji.

Następnie program powinien obliczać tą samą całkę metodą Romberga (stosując ekstrapolację Richardsona do (rozszerzonej) metody trapezów) także zwiększając ilość podziałów aż do osiągnięcia zadanej dokładności lub przekroczenia maksymalnej ilości iteracji (lub ilości wywołań funkcji podcałkowej).

To zadanie domowe można połączyć z poprzednim zadaniem, na całkowanie (adaptacyjne) za pomocą kwadratur Gaussa.
 
Wymagania

  1. Napisanie funkcji obliczającej całkę z podanej funkcji na zadanym przedziale domkniętym [a, b] (zakładając że funkcja jest określona na krańcach przedziału) z zadaną dokładnością (i ograniczeniem na maksymalną liczbę podziałów/krok podziału) złożoną metodą trapezów (50%). Za brak wykorzystania poprzednio wyliczonych wartości funkcji (a dokładniej poprzednio wyliczonej sumy) -20%. Za brak zwracania oszacowania błędu -5%.
  2. Napisanie funkcji obliczającą tę samą całkę metodą Romberga (zastosowanie ekstrapolacji Richardsona do złożonej metody trapezów) z zadaną dokładnością (50%). Za użycie rekurencji bądź macierzy pomocniczej -5%. Za brak zwracania oszacowania błędu -5%.
  3. Ekstrapolacja do h = 0 za pomocą interpolacji wielomianowej bądź funkcją wymierną, na dwóch ostatnich wielkościach kroku bądź na wszystkich dotychczas używanych wartościach kroku +40%.
  4. Analiza zależności od kroku (bądź ilości wywołań funkcji podcałkowej) błędu i oszacowania błędu +20% lub więcej (w zależności od uznania osoby prowadzącej ćwiczenia)
Czas oddania: Drugie zajęcia w nowym roku, 14. stycznia 2005 r.

7. Rozwiązywanie równań nieliniowych.

10-12-2004

7.1. Opis teoretyczny
7.2. Zadania
  1. Napisać procedurę (program) znajdującą zero zadanej funkcji w podanym przedziale z zadaną dokładnością metodą bisekcji, lub do przekroczenia zadanej liczby iteracji. Jako oszacowanie błędu można wziąć długość przedziału (dokładność znalezienia punktu) i/lub wartość bezwzględną funkcji w punkcie (np. pośrodku przedziału) (dokładność spełnienia warunku). Innym warunkiem na osiągnięcie zadanego błędu bezwzględnego (epsabs) i bezwzględnego (epsrel) jest zastosowanie do testowania czy osiągnięto zadane dokładności wzoru: |a - b| < epsabs + epsrel min(|a|, |b|), o ile przedział [a, b] nie zawiera 0. Innym oszacowaniem błędu znalezienia rozwiązania jest |f(x)|/|f'(x)| ~= |f((a+b)/2)| |a-b|/|f(a)-f(b)|.
7.3. Zadanie domowe

Napisać procedurę (program) znajdującą zero zadanej funkcji w podanym przedziale z zadaną dokładnością metodą bisekcji, oraz jedną z pozostałych metod. Porównać czasy wykonania oraz ilości wywołań funkcji i osiągniętą dokładność przy takiej samej funkcji i takiej samej zadanej dokładności. Opis (części) zadania domowego znajduje się także w miejsca_zerowe.ps.gz (tex).
 
Wymagania

  1. Znajdowanie miejsca zerowego podanej funkcji z zadaną dokładnością za pomocą metody bisekcji (40%).
  2. Znajdowanie miejsca zerowego podanej funkcji z zadaną dokładnością za pomocą innej metody (45%).
  3. Porównanie obu metod (15%). Za szczegółowe porównanie metod (czas wykonania, ilość wywołań funkcji, liczba iteracji, przykłady niezbieżności) +5%. Za analizę szybkości zbieżności (zależności dokładności od liczby iteracji) do +15%.
Czas oddania: Ostatnie zajęcia, 21. stycznia 2005 r.

8. Sortowanie.

17-12-2004

8.1. Opis teoretyczny
8.2. Zadania
  1. Napisać procedurę i przykładowy program sortujące tablicę liczb zmiennoprzecinkowych (float) w porządku malejącym dowolnie wybraną metodą.
  2. Posortować tablicę za pomocą standardowej metody języka (biblioteki standardowej, biblioteki STL, odpowiedniej klasy, ...).
8.3. Zadanie domowe

Napisać program sortujący tablicę gdzie kluczami są liczby zmiennoprzecinkowe (float) w porządku malejącym. Program powinien udostępniać sortowanie stabilne i sortowanie w czasie O(N log N). Można to zrobić za pomocą jednej metody, która jest jednocześnie szybka i stabilna. Metoda stabilna powinna być co najwyżej w czasie O(N^2). Podać liczbę elementów, ilość porównań i ilość przestawień elementów. Sprawdzić zachowanie dla tablicy już posortowanej, posortowanej odwrotnie i "losowej".
 
Wymagania

  1. Implementacja algorytmu sortowania stabilnego (50%). Za brak sprawdzenia czy sortuje -5%. Za brak sprawdzenia czy sortuje stabilnie -5%. Za błędne użycie algorytmu który nie sortuje stabilnie -40%.
  2. Implementacja algorytmu sortowania w czasie (średnim) O(N log N) (50%). Za brak sprawdzenia czy sortuje -5%. Za błędne użycie algorytmu który nie sortuje szybko -40%.
  3. Za analizę zachowania użytych algorytmów sortowania (czas wykonania, liczba porównań, liczba zamian/kopiowań t.j. przesunięć elementów, użyta dodatkowa pamięć, różne przypadki: tablica posortowana, tablica prawie posortowana, tablica 'losowa', tablica uporządkowana odwrotnie, przypadek pesymistyczny/najgorszy) - w/g uznania sprawdzającego (około +25%).
  4. Za napisanie algorytmu sortującego w czasie większym niż kwadratowy (np. O(N^3)) -50% (za zadanie nie można uzyskać mniej niż zero punktów).
Czas oddania: do końca sesji.

Powrót na górę strony

Porady

Proszę o zgłaszanie (na ćwiczeniach lub przez e-mail), na jakie tematy potrzeba porad.

Linki (odnośniki)

Literatura dotycząca metod numerycznych

  1. Janina i Michal Jankowscy "Przegląd metod i algorytmów numerycznych".
  2. Josef Stoer, Roland Bulirsch "Wstęp do analizy numerycznej".
  3. Ake Bjorck, Germund Dahlquist "Metody numeryczne".
  4. Richard G.Lyons "Wprowadzenie do cyfrowego przetwarzania sygnałów".
  5. Z. Fortuna, B. Macukow, J. Wąsowski "Metody numeryczne".
  6. Numerical Recipies Software "Numerical Recipies in C: the Art of Scientific Computing".