Trudno sobie wyobrazić współczesną naukę lub biznes oparty na nowoczesnych technologiach bez wspomagania obliczeniami komputerowymi. Istotna część tych rachunków to obliczenia numeryczne, czyli takie, w których działania wykonuje się na liczbach rzeczywistych (zmiennopozycyjnych). W prostych przypadkach takie obliczenia przeprowadzamy w arkuszu kalkulacyjnym, jednak gdy zadanie jest bardziej skomplikowane, musimy uciec się do użycia bardziej wyrafinowanych narzędzi.
Niniejszy serwis gromadzi różne informacje przydatne osobom stosującym metody numeryczne na co dzień. Zapraszam do współredagowania! Zestawiłem tu rozmaite materiały lub linki do innych stron. Materiały własne opracowałem przede wszystkim w ramach wykładu Obliczenia naukowe, prowadzonego przeze mnie przez wiele lat dla studentów wydziału MIM UW. Znalazły się tu także materiały uzupełniające do podręcznika z obliczeń inżynierskich i naukowych, wydanego przez PWN.
Książka Obliczenia inżynierskie i naukowe (Wydawnictwo Naukowe PWN, 2011) jest przyjaznym Czytelnikowi przewodnikiem po podstawowych narzędziach obliczeń numerycznych. Składa się z trzech części:
Wybrane strony domowe oprogramowania wykorzystywanego w obliczeniach numerycznych.
Z wielu powodów warto polecić system operacyjny Linux jako najwygodniejszy do prowadzenia obliczeń numerycznych. Spośród wielu wygodnych w użytkowaniu dystrybucji Linuxa polecam Fedorę, Ubuntu i OpenSUSE. Pod Windows możemy też zainstalować Linuxa w maszynie wirtualnej, np. VirtualBox.
Niezależnie od systemu operacyjnego (Linux, Windows, MacOS), wymienione poniżej środowiska obliczeniowe będą nas dobrze wspomagać w pracy:
Zestaw funkcji realizujących podstawowe zadania algebry liniowej to dziś obowiązkowy składnik numerycznych bibliotek wielozadaniowych.
Warto jednak sprawdzić, czy poszukiwana funkcjonalność nie jest czasem lepiej realizowana przez biblioteki specjalistyczne lub równoległe.
Warto sprawdzić, czy poszukiwana funkcjonalność nie jest czasem realizowana przez biblioteki wielozadaniowe lub przez biblioteki algebry liniowej.
Obliczenia inżynierskie i naukowe to nie tylko zwykła znajomość rzemiosła: narzędzi programistycznych i sprzętu komputerowego; to także doświadczenie i pomysłowość, które możemy rozwijać tylko poprzez zetknięcie się z prawdzimymi zadaniami obliczeniowymi. Zamieszczone poniżej, szczegółowo opracowane przykłady konkretnych zadań obliczeniowych, pozwalają zapoznać się z praktyką rozwiązywania problemów z życia wziętych.
Często zadanie obliczeniowe wydaje się na tyle proste i standardowe, że możemy przeoczyć podstawowe niejasności dotyczące samego sformułowania modelu matematycznego. To może przełożyć się na niespodziewane trudności w numerycznym wyznaczeniu rozwiązań modelu. Warto o tym pamiętać zwłaszcza w naszej sytuacji, gdy coraz mocniejsze komputery zachęcają do coraz większej wiary w skuteczność brutalnej numeryki.
Słowa kluczowe: RRZ, prawidłowe zrozumienie problemu i sformułowanie go w języku matematyki, wizualizacja
W MATLABie i w Octave znajdują się także funkcje pozwalające wyznaczać rozwiązania mniej typowych równań różniczkowych zwyczajnych. Warto im się przyjrzeć i zwrócić uwagę na to, że wymagają one znacznie więcej przygotowań niż w przypadku standardowych RRZ.
Słowa kluczowe: RRZzO, wizualizacja
Dopasowanie krzywej do punktów pomiarowych to chleb powszedni eksperymentatorów. Często można zrobić to na wiele sposobów. Na klasycznym przykładzie porównujemy kilka znanych metod i pokazujemy, jak możemy wykorzystać nowoczesny software, by zrobić to dobrze i sprawnie.
Słowa kluczowe: Liniowe/nieliniowe zadanie dopasowania parametrów, RRZ
Dopóki nasze symulacje opierają się na niewielu danych i wyznaczają niewiele wyników, wówczas, nawet jeśli wymagają bardzo wielu obliczeń pośrednich, sytuacja pozostaje pod naszą kontrolą i zazwyczaj wystarcza na MATLAB lub Octave. Gdy danych i niewiadomych jest bardzo dużo, sprawy przybierają inny obrót. W prostym koncepcyjnie modelu sieci komunikacyjnej bardzo łatwo o wykładniczy wzrost liczby nieznanych parametrów modelu. Jeśli nie chcemy (lub nie możemy) uprościć samego modelu, musimy wesprzeć się, gdzie trzeba programem w C.
Słowa kluczowe: Hybrydowe programowanie Octave i C (każde z osobna), zagadnienie własne, macierze rzadkie, operacje bitowe, odczyt pliku z parametrami zadania w Octave i w C
Geometryczne zadanie poprowadzenia prostej lub elipsy, czy też dopasowania prostokąta tak, by "najlepiej pasował" do zadanych na płaszczyźnie punktów wydaje się bardzo prostym zadaniem, ale w rzeczywistości, gdy chcemy zrobić to dobrze, musimy chwilę się zastanowić. Na szczęście, w samych obliczeniach możemy potem skutecznie skorzystać z MATLABa lub Octave.
Słowa kluczowe: Nieliniowe zadanie optymalizacji, SVD, wybór i uproszczenia modelu
O tym, że można coś policzyć dokładnie, a mimo to zupełnie źle zinterpretować wyniki, traktuje przykład z dziedziny elektrotechniki. Badając rozwiązania równania różniczkowego opisującego charakterystykę transformatora możemy łatwo dać się zwieść elegancji pierwszego uzyskanego wyniku. Co ciekawe, choć same liczby są poprawne, to jednak wykres rozwiązania - już nie... Pokazujemy, jak można próbować to wychwycić.
Słowa kluczowe: RRZ II rzędu, wizualizacja, aliasing, weryfikacja rozwiązań
Pokazujemy tu, jak ważne w obliczeniach naukowych jest nie tylko sprawne opanowanie narzędzia obliczeniowego, ale także wiedza o metodach numerycznych. Okazuje się, że najważniejsze jest jednak zrozumienie problemu i dogłębna o nim wiedza: dobry kontakt z Zamawiającym Obliczenia jest bezcenny!
Słowa kluczowe: Zadanie najmniejszych kwadratów, dopasowanie sformułowania modelu do narzędzi numerycznych, metoda iteracyjna
Bardzo wiele zjawisk jest modelowanych równaniem dyfuzji: wystarczy wspomnieć wyznaczanie rozkładu temperatury w podgrzewanym obiekcie, rozprzestrzeniania się zapachu perfum w powietrzu, czy przenoszenie chorób. Rozważamy dwa podstawowe równania, w których dyfuzja odgrywa kluczową rolę:
Pokazujemy, jak numerycznie rozwiązywać równanie dyfuzji w przypadku jedno-, dwu- i trójwymiarowym. Choć używamy najprostszych metod (czytaj: najmniej wyrafinowanych i w trudniejszych przypadkach mało skutecznych), i tak zetkniemy się z dość skompilkowanymi zadaniami obliczeniowymi, stanowiącymi duże wyzwanie dla używanych przez nas narzędzi.
» » » Czytaj dalej... » » » o stacjonarnym równaniu dyfuzji
Słowa kluczowe: RRCz eliptyczne liniowe, ze współczynnikiem, w 1D,2D,3D, macierze rzadkie, FFT, metody iteracyjne, ściskanie macierzy, dyskretyzacja
» » » Czytaj dalej... » » ». o ewolucyjnym równaniu dyfuzji
Słowa kluczowe: RRCz paraboliczne nieliniowe, RRZ, instalacja i użytkowanie biblioteki CVODE, wizualizacja w OpenDX i w ParaView, duży program w C, Makefile
Wielokrotnie w badaniach naukowych musimy rozwiązać małe, niewinnie wyglądające zadanko. Na przykładzie obliczania funkcji odwrotnej zobaczymy, że i w takich przypadkach możemy natknąć się na smakowite problemy obliczeniowe.
Słowa kluczowe: Skalarne równanie nieliniowe, transformacja zadania do wygodniejszego numerycznie, funkcje anonimowe