Zagadnienia

Wprowadzenie

Celem przedmiotu Obliczenia Naukowe jest zapoznanie uczestników zajęć z praktycznymi aspektami wykorzystania metod numerycznych i narzędzi programistycznych do rozwiązywania zagadnień matematyki stosowanej.

Na kolejnych zajęciach będziemy rozważać konkretne zadania obliczeniowe, jakie pojawiają się w realnych zastosowaniach: w elektrotechnice, biologii, telekomunikacji, chemii, rolnictwie, astrofizyce, itd. Jest tradycją tego przedmiotu, że co roku pojawiają się w nim nieco inne zadania, dlatego omówione tutaj przykłady należy traktować jako pewien zestaw, hmmm… przykładowy.

Należy podkreślić, że nasza praca — w odróżnieniu od typowej roli matematyka stosowanego — będzie zdecydowanie łatwiejsza niż w rzeczywistości i ograniczy się wyłącznie do rozwiązania na komputerze dobrze zdefiniowanego problemu matematycznego i przedstawienia wyników. W prawdziwym życiu, jest to tylko część pracy matematyka: wcześniej musi on pomóc poprawnie sformułować model matematyczny badanego zjawiska (co zdecydowanie nie jest trywialne i zazwyczaj wymaga wiedzy wykraczającej poza samą matematykę), następnie go przeanalizować1Niestety, nie zawsze to jest możliwe i wtedy zostają już tylko symulacje numeryczne… na gruncie teorii (słynne pytania egzystencjalne), co może w dalszym ciągu spowodować konieczność wprowadzenia modyfikacji do modelu. Symulacje numeryczne — czyli to, czym będziemy się zajmować podczas zajęć — mogą (i powinny!) stanowić kolejny etap falsyfikacji modelu i być inspiracją do jego ewentualnej zmiany. Są oczywiście również niezbędne wtedy, gdy zechcemy mieć jakikolwiek wgląd w ilościowe cech rozwiązań modelu.

Większość z prezentowanych tu zadań jest na tyle nieskomplikowana, że dają się one w pełni rozwiązać w ramach jednej pary zajęć: wykład + ćwiczenia w laboratorium. To też zwykle jest dalekie od rzeczywistości i dlatego przedstawimy tu także kilka przykładowych zadań o nieco większej złożoności, których rozwiązanie może wymagać kilku(?) godzin naszej pracy (wszelako dla komputera będą one wciąż ,,łatwe” i ich finalne rozwiązanie zajmie mu co najwyżej kilkadziesiąt sekund!).

Na zajęciach będziemy zakładać wstępną podstawową znajomość Octave lub MATLABa (zwykle z tymi systemami można się zetknąć na zajęciach laboratoryjnych z Matematyki Obliczeniowej I) oraz języka C (wykładanego w ramach Wstępu do Informatyki), jednak w razie potrzeby niezbędne wstępne wiadomości zostaną przedstawione na bieżąco podczas zajęć. Przyda się także podstawowa umiejętność pracy w systemie operacyjnym Linux. Naszym podstawowym narzędziem pracy będzie Octave, z języka C będziemy korzystać sporadycznie.

Jeśli odczuwasz pewien niepokój, czy Twoje umiejętności programistyczne/komputerowe są wystarczające, przejrzyj kilka początkowych rozdziałów niniejszego skryptu. Zajrzyj zwłaszcza do rozdziału Octave: jak w nim pracować: zobaczysz, jak łatwa i wygodna jest praca z systemem Octave. Podczas zajęć będziemy oczywiście, jeśli tylko zajdzie taka potrzeba, dokładnie omawiać używane konkretne narzędzia lub konstrukcje programistyczne. Możesz też zawsze skorzystać ze ściągawki do Octave lub dokumentacji online do Octave i do MATLABa (oba są prawie identyczne). Jeśli już znasz system operacyjny Windows, praca w Linuxie wyda Ci się zaskakująco łatwa.

Literatura

Będziemy dużo programować, więc będziesz potrzebować dokumentacji, o której była mowa powyżej. Podręcznik [17] może Ci służyć zarówno jako przewodnik po obliczeniach naukowych, jak i jako źródło wiadomości uzupełniających i poszerzających materiał omawiany na wykładach i zajęciach w laboratorium. Nieco podobna w duchu jest praca zbiorowa [6]. Podstawowy programowania w MATLABie są omawiane w wielu książkach obecnych na rynku, a także w internecie [26]; niezastąpionym bazowym podręcznikiem języka C jest [14].

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.

Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.