Zaawansowane metody numeryczne Komputerowa analiza
Transkrypt
Zaawansowane metody numeryczne Komputerowa analiza
Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych Omówienie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2006/07 Nazwa przedmiotu Przedmiot ten wystepuje ˛ pod dwoma nazwami: • Jeśli studiujesz fizyk˛e, przedmiot nazywa sie˛ Zaawansowane metody numeryczne, jest obowiazkowy ˛ dla IV roku, specjalizacja Fizyka komputerowa oraz, mam nadzieje, ˛ pożyteczny dla studentów innych specjalizacji. • Jeśli studiujesz informatyk˛e, przedmiot nazywa sie˛ Komputerowa analiza zagadnień różniczkowych, jest obowiazkowy ˛ dla III roku, sekcja Modelowanie oraz, mam nadzieje, ˛ pożyteczny dla studentów innych sekcji. • Jeśli uważasz te˛ sytuacje˛ za cokolwiek schizofreniczna, ˛ to. . . Omówienie 2 Zakres materiału Zasadniczym celem kursu jest przedstawienie najważniejszych metod numerycznego rozwiazywania ˛ równań różniczkowych i zagadnień pokrewnych. Niniejszy kurs nie jest kursem programowania — celem nie jest umiejetość ˛ pisania programów w takim lub innym jezyku ˛ programowania, ale umiejetość ˛ świadomego wybrania algorytmu właściwego do danego zagadnienia. Ponieważ numeryczne rozwiazywanie ˛ równań różniczkowych cz˛esto prowadzi do innych zagadnień numerycznych, na poczatku ˛ przypomnimy troche˛ informacji na temat tych “innych zagadnień”. Omówienie 3 Szczegółowy plan kursu obejmuje: 1. Rozwiazywanie ˛ układów równań liniowych (a) Wiadomości wstepne ˛ i metody dokładne (b) Singular Value Decomposition (c) Metody iteracyjne (d) Metody typu gradientów sprz˛eżonych; prewarunkowanie 2. Elementarne metody minimalizacji funkcji wielu zmiennych (metoda najszybszego spadku, gradientów sprz˛eżonych, zmiennej metryki, metoda Levenberga-Marquardta) 3. Rozwiazywanie ˛ układów równań algebraicznych (nieliniowych) 4. Podstawowe twierdzenia o istnieniu i jednoznacznośći rozwiaza ˛ ń ODE • Proste przykłady analityczne, w tym równania liniowe, w tym równania o stałych współczynnikach Omówienie 4 5. Metody Eulera (jawna, niejawna, zgodność, stabilność, układy sztywne) 6. Metody punktu środkowego 7. Metody Rungego-Kutty (a) Ogólne własności (b) Przykłady (c) Wyprowadzenie wzorów (d) Stabilność metod RK; obszary stabilności (e) Szczególne postacie metod RK (f) Metoda Rosenbrocka (g) Zmiana kroku w jawnych metodach RK; metody zagnieżdżone (h) Metody Bulirscha-Stoera 8. Metody Verleta Omówienie 5 9. Liniowe metody wielokrokowe (własności równań różnicowych, metody Adamsa-Bashfortha, Adamsa-Moultona, BDF, stabilność, zmiana kroku) 10. ODE z niezmiennikami (rzutowanie, algorytmy symplektyczne, układy DAE — indeks, postacie Hessenberga) 11. Stochastyczne równania różniczkowe (interpretacja szumów i rachunek Ito, silny i słaby rzad ˛ zbieżności, metoda Eulera-Maryuamy, metoda Milsteina, metoda Heuna, inne metody wyższych rz˛edów) 12. Dwupunktowe problemy brzegowe (istnienie rozwiaza ˛ ń, stabilność, metoda strzelania, relaksacja na siatce) 13. Metody różnicowe dla czastkowych ˛ równań różniczkowych Omówienie 6 Zaliczenie Zaliczenie wykładu dokonuje sie˛ na jeden z dwu sposobów: • Zdanie egazminu , • Regularne rozwiazywanie ˛ zadań “dla wszystkich”, zadawanych po wykładzie. Osoby planujace ˛ zdawać egzamin także sa˛ zachecane ˛ do rozwiazy˛ wania tych zadań. Warunkiem koniecznym dopuszczenia do egzaminu jest uzyskanie zaliczenia z ćwiczeń. Zasady zaliczania ćwiczeń ustalaja˛ prowadzacy ˛ poszczególne grupy. Omówienie 7 W grupie prowadzonej przeze mnie podstawa˛ uzyskania zaliczenia jest rozwia˛ zanie zadań. Zadania “wywieszane” sa˛ przeze mnie wyłacznie ˛ na mojej stronie WWW. Zadania dziela˛ sie˛ na “teoretyczne” i “numeryczne”; te drugie oznaczone sa˛ litera˛ N. Uwaga: Niektóre zadania obliczeniowe uznawane sa˛ za teoretyczne — mianowicie takie, gdy obliczeń jest stosunkowo niewiele i da sie˛ je przeprowadzić na kartce. Warunkiem koniecznym uzyskania zaliczenia jest zaliczenie wszystkich zadań numerycznych. Rozwiazania ˛ zadań numerycznych prosz˛e dostarczać wyłacznie ˛ w formie pisemnej. “Forma pisemna” oznacza wydruk lub “elektroniczna˛ forme˛ pisemna”, ˛ to znaczy plik pdf lub PostScript. Niezależnie od formy, rozwiazanie ˛ powinno zawierać omówinie problemu oraz wyniki w postaci “prezentacyjnej”, a przynajmniej uporzadkowanej. ˛ Jeśli na przykład zadanie wymaga porównania kilku metod, wyniki powinny być przedstawione Omówienie 8 w postaci umożliwiajacej ˛ takie porównanie. Jeśli w zadaniu wymaga sie˛ wycia˛ gniecia ˛ jakichś wniosków z dokonanych obliczeń, rozwiazanie ˛ powinno zawierać te wnioski jasno wyartykułowane. Nie oczekuje˛ dostarczania mi kodu programu w każdym przypadku, ale autor rozwiazania ˛ powinien być przygotowany do przedstawienia mi kodu jeśli sobie tego zażycz˛e. Wolno przy tym posługiwać ˛ procedurami i bibliotekami. Cieżkim ˛ przestepstwem ˛ jest sie˛ legalnie dostepnymi przedstawienie mi kodu, którego działania sie˛ nie rozumie, oznacza to bowiem, że jest to cudzy kod. Warunkiem koniecznym zdania egzaminu jest dobre opanowanie i zrozumienie materiału. Nie wymagam pamieciowego ˛ opanowania złożonych wzorów. W czasie egzaminu można korzystać z dowolnych podreczników ˛ i własnych notatek. (Powtórka z logiki: Prosz˛e przypomnieć sobie różnice pomiedzy ˛ warunkiem koniecznym a wystarczajacym.) ˛ Omówienie 9 Jezyk ˛ programowania Nie ma wielkiego znaczenia. Sukces programu numerycznego o wiele silniej zależy od wyboru właściwego algorytmu niż od wyboru “właściwego” jezyka. ˛ Pamietać ˛ jednak należy, że program realizujacy ˛ (w zasadzie) dowolny algorytm można źle napisać w dowolnym jezyku ˛ programowania. Omówienie 10 Zasoby sieciowe Piszac ˛ programy, można korzystać z dowolnych legalnych źródeł oprogramowania. Nie wymagam pisania programów od zera. Przyzwoity program numeryczny pisze sie˛ cz˛esto kilka miesiecy. ˛ Program numeryczny nadajacy ˛ sie˛ do włacze˛ nia do komercyjnej biblioteki pisze sie˛ zazwyczaj ponad rok. Mnóstwo dobrych i bardzo dobrych programów można znaleźć na sieci: • http://www.netlib.org — Netlib to najwieksze ˛ na sieci źródło darmowych i sprawdzonych programów z wielu dziedzin analizy numerycznej. Uwaga: wiekszość ˛ z programów w Netlibie napisanych jest w FORTRANie (nawet nie w w Fortranie). Można je automatycznie tłumaczyć przy użyciu f2c, ale to na ogół nie jest optymalne wyjście. • http://math.nist.gov/tnt/ Template Numerical Toolkit — algebra liniowa w C++ Omówienie 11 • http://math.nist.gov/tnt/jama_doxygen/index.html JAMA, implementacja w C++ • http://www.oonumerics.org">www.oonumerics.org — obiektowo o numeryce • http://math.nist.gov/javanumerics/ Java Numerics • http://plato.la.asu.edu/guide.html Decision Tree for Optimisation Software • http://www.fftw.org The Fastest Fourier Transform in the West Omówienie 12 Dostepne ˛ na sieci FAQs • http://www.mathcom.com/corpdir/techinfo.mdir/scifaq/index.html Scientific Computing FAQ • http: //www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html Linear Programming FAQ • http://www-unix.mcs.anl.gov/otc/Guide/faq/ nonlinear-programming-faq.html Nonlinear Programming FAQ • http://alife.santafe.edu/alife/topics/cas/ca-faq/ca-faq.html Cellular Automata FAQ • http://www.faqs.org/faqs/ai-faq/genetic/part1/preamble.html Genetic Algorithms FAQ • http://www.faqs.org/faqs/sci/nonlinear-faq/ Nonlinear Sciences FAQ Omówienie 13 Literatura Podreczników ˛ numerycznego rozwiazywania ˛ rónań różniczkowych sa˛ tysiace, ˛ niektóre z nich sa˛ dobre. Ja nie bed ˛ e˛ powielał żadnego konkretnego podrecznika, ˛ korzystał natomiast bed ˛ e˛ z: 1. W. H. Press, B. P. Flannery, S. A. Teukolsky, W. T. Vetterling, Numerical Recipes in C/Fortran, Second Edition, wersja on-line dostepna ˛ pod http://www.nr.com — tekst jest pożyteczny, ale przestrzegam przed używaniem kodu 2. G. H. Golub, C. Van Loan, Matrix Computations 3. J. C. Butcher, Numerical Methods for Ordinary Differential Equations 4. M. R. Allen III, E. L. Isaacson, Numerical Analysis for Applied Science 5. U. M. Asher, L. R. Petzold, Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations Poza pozycja pierwsza, ˛ ksiażki ˛ te sa˛ niezbyt łatwo dostepne ˛ /. Omówienie 14