Metody Numeryczne

Uwaga: ze względu na zbyt małą liczbę chętnych, blok został odwołany.

Prowadzi

  1. Tomasz Jędrzejewski

Opis

Na kolejnym roku moich jakże przepięknych studiów zostałem uraczony przedmiotem o jakże uroczej nazwie metody obliczeniowe w nauce i technice poświęconym wykorzystaniu komputerów do przeprowadzania wszelakiej maści obliczeń matematycznych. Z zewnątrz tematyka wygląda okropnie: różne dziwne wzorki, kosmiczne teorie, nazwy i trudności w znalezieniu jakichś sensownych materiałów w sieci. Jednak z czasem okazało się, że w rzeczywistości sprowadza się to do całkiem prostych rzeczy, którymi w dodatku można się ciekawie pobawić - w sam raz, by udało się zorganizować, myślę że ciekawy, pomysł na blok tematyczny.

Zawartość bloku

W programie przewiduję na dzień dzisiejszy:

  1. Liczby zmiennoprzecinkowe i ich właściwości
  2. Krótki wstęp do metod numerycznych
  3. Poszukiwanie miejsc zerowych
  4. Interpolacja
  5. Funkcje sklejane
  6. Kwadratury
  7. Rozwiązywanie układów równań liniowych

Ile zrealizujemy, zależy od naszej własnej szybkości, temperatury lodu na Antarktydzie i od migracji słoni w Afryce.

Pod kogo kurs jest robiony?

Kurs będę prowadzić z myślą o osobach, które chciałyby wybrać się na studia informatyczne, gdzie niechybnie jakiś przedmiot ze słowami metody oraz numeryczne (w wersji AGH: obliczeniowe) się znajdzie. Oczywiście tygodniowe warsztaty nie są w stanie pokryć całego programu studiów i nie to też jest celem; ma to być raczej pokazanie paru podstawowych zagadnień i praktycznych technik ich rozwiązywania z ukierunkowaniem na "z czym to się w ogóle je". Kurs może być też przydatny dla osób, które z różnych powodów będą musiały zajmować się wykonywaniem obliczeń na komputerze i chciałyby poznać bliżej to zagadnienie od kuchni.

Organizacja zajęć

Ponieważ sam jestem z natury praktykiem, kurs będzie ukierunkowany bardziej na praktyczną stronę zagadnień, gdzie teoria to narzędzie, a nie cel sam w sobie. W trakcie zajęć będziemy przede wszystkim pisać różne programy rozwiązujące konkretne problemy numeryczne i analizować uzyskane wyniki. Jeśli starczy mi czasu, postaram się przygotować również jakieś graficzne wizualizacje przynajmniej do niektórych tematów.

Dodatkowo do każdego tematu przygotowane będą odpowiednie opracowania, jako że na miejscu nie będziemy prawdopodobnie mieć Internetu i znalezienie czegoś na bieżąco może mieć dużą złożoność. Śledź uważnie sekcję Materiały w dole strony, gdyż właśnie tam będę wrzucać wszystko, co wyprodukuję.

Wymagana wiedza

Choć nie ma tu trudnej matematyki, niezbędna będzie znajomość paru pojęć:

  1. Macierze i podstawowe operacje na nich: dodawanie, mnożenie, liczenie wyznacznika…
  2. Całka i jej interpretacja: tzn. żeby wiedzieć, co to jest i do czego służy.
  3. Pochodne oraz pochodne cząstkowe.
  4. Wielomiany.
  5. Pojęcie normy.
  6. Ogólnie program matematyki z liceum, ale gdzieś tak z okolic roku 2006-2007, tj. przed jego zredukowaniem do dodawania i odejmowania w zakresie 100.

Zajrzyj na sam dół strony, do sekcji Materiały, gdzie opublikowałem krótkie, ale rzeczowe wprowadzenie do części z wymienionych wyżej pojęć. Będzie ono stopniowo uzupełniane o kolejne pozycje.

Ponadto niezbędna jest również umiejętność programowania, najlepiej w języku C, ponieważ jest do niego trochę fajnych bibliotek numerycznych, które nam ułatwią robotę, a ponadto do naszych zastosowań wystarczy on w zupełności. Mile widziana jest także choć podstawowa znajomość:

  1. GNU Scientific Library
  2. GNU Octave (rysowanie wykresów)

Z pierwszym można się zaznajomić, rozwiązując dodatkowe zadanie kwalifikacyjne, zaś z drugim - rozwiązując dodatkowy podpunkt do drugiego zadania kwalifikacyjnego. Nie są to trudne rzeczy, dlatego zachęcam do zapoznania się z podstawami pracy z nimi już wcześniej, aby na miejscu móc się skupić na konkretach.

Sprzęt i oprogramowanie

Mile widziane posiadanie własnego laptopa. Wprawdzie istnieją środowiska programistyczne zorientowane na pisanie programów na kartce (np. Free Paper Compiler czy Turbo Kartka), ale mimo wszystko osiągnięcie tego samego rezultatu wymaga nieco więcej czasu. Jeśli nie masz laptopa, nie przejmuj się - raczej nie powinno być problemów z jego pożyczeniem od kogoś (np. ode mnie), a szczegółowo możesz się z kimś umówić jeszcze przed warsztatami.

Na miejscu będę mieć dostępną dokumentację do GSL-a, Octave oraz biblioteki standardowej C. Ze względu na mnogość systemów operacyjnych i platform musisz sam zadbać o doinstalowanie wspomnianych programów na własnym sprzęcie.

Uwaga: jeśli zamierzasz pisać w języku innym, niż C, musisz znaleźć sobie do niego dobrą bibliotekę numeryczną oraz zabrać ze sobą dokumentację do niej. Przypominam, że na miejscu najprawdopodobniej nie będzie Internetu.

Kwalifikacja

Treść zadań kwalifikacyjnych w formacie PDF

Do zrobienia są dwa zadania, zaś dla chętnych/ambitnych/hardkorowców dostępne jest także dodatkowe zadanie 3. W każdym zadaniu należy napisać program poświęcony konkretnemu (nietrudnemu) problemowi obliczeniowemu oraz wygenerować za jego pomocą jakieś wyniki z nim związane. Do każdego zadania napisałem krótkie wprowadzenie z zarysem zagadnienia mającym pomóc Ci w znalezieniu potrzebnych informacji w sieci, książkach, mózgach innych ludzi, układzie gwiazd itd. Na rozwiązania czekam do dnia 20 lipca 2009 do godziny 16:34.

Uwaga: zarówno w nazwie archiwum, jak i głównego katalogu, który się w nim znajduje, musi znajdować się Twoje nazwisko i imię, np.: KowalskiJan.tar.gz/KowalskiJan/zad1.

Gdzie przesyłać: Namiary na mnie możesz znaleźć na tej stronie. Zadania postaram się sprawdzić tak szybko, jak to możliwe.

Materiały

  1. Zadania kwalifikacyjne
  2. 00 - niezbędne pojęcia
O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License