Metody numeryczne

podręcznik | PWN 2024

Zdj.: Wydawnictwo Naukowe PWN

O czym jest ten podręcznik?

Metody numeryczne, matematyka obliczeniowa, analiza numeryczna, obliczenia naukowe.... Te wszystkie pojęcia odnoszą się do jednej dziedziny - oglądanej, co prawda, z różnych perspektyw - znajdującej się na styku modelowania, informatyki oraz matematyki, i której wpływ na świat, a zwłaszcza inne obszary nauki i inżynierii, okazał się ogromny.

Potrzeba obliczenia czegoś jest na dobrą sprawę tak stara jak matematyka, a konieczność obliczenia czegoś szybko stała się z jednej strony przyczyną konstruowania coraz lepszych narzędzi wspomagających liczenie (od kamyczków w starożytności, przez maszynę Leibniza i suwak logarytmiczny, aż po komputer w XX wieku), a z drugiej - spowodowała równoległy rozwój metod obliczeniowych, które współtworzyli m.in. Gauss, Euler, Newton, Lagrange, czy Courant.

Moim zasadniczym celem jest nauczenie Czytelnika umiejętności konstrukcji algorytmów rozwiązywania (klasycznych) zadań obliczeniowych, a następnie przeprowadzenia (matematycznej) analizy ich własności; przede wszystkim: kosztu i dokładności.

Przy okazji podaję też krótkie wskazówki, jak takie klasyczne zadania można rozwiązywać w popularnych językach programowania: MATLAB-ie, Octave, Julii i Pythonie. (Znacznie więcej o kwestiach związanych z implementacją piszę w innej książce: Obliczenia inżynierskie i naukowe.)

Dla kogo jest ten podręcznik?

Książkę adresuję przede wszystkim do studentów kierunków ścisłych i technicznych - od matematyki, przez informatykę, uczenie maszynowe i data science, po astronomię, chemię, ekonomię, fizykę i geologię - dysponujących podstawowym aparatem matematycznym z pierwszych dwóch-trzech semestrów studiów licencjackich, a także podstawową wiedzą informatyczną, obejmującą umiejętność konstruowania algorytmów i ich implementacji w jakimś klasycznym języku programowania.

Może być także przydatny dla inżynierów i naukowców, chcących poznać bliżej tę fascynującą gałąź nauki i jej praktyczne zastosowania.

Metody numeryczne zajmują się konstrukcją, analizą, a także komputerową implementacją efektywnych algorytmów rozwiązywania zadań obliczeniowych matematyki ciagłej.

Dzięki rozkwitowi technologii komputerowej, metody numeryczne od kilkudziesięciu lat przenikają do kolejnych gałęzi nauki i techniki, od lotów kosmicznych, po optymalizację łańcuchów produkcji, stając się podstawą niezwykłych zastosowań - takich, jak choćby tomografia komputerowa, nawigacja GPS lub format muzyki MP3. Przyczyniają się też do powstania zupełnie nowych dziedzin, w tym: uczenia maszynowego i komputerowej dynamiki płynów. Rzeczywiste procesy (fizyczne, ekonomiczne, technologiczne, biologiczne, ...) są wszak na tyle skomplikowane, że trudno gdziekolwiek osiągnąć postęp bez solidnego obliczeniowego wsparcia.

Podręcznik poświęcony jest podstawowym, klasycznym tematom; jego intencją jest wprowadzenie Czytelnika w podstawy dziedziny:

Metody numeryczne - przegląd zagadnień

Spis treści

Możesz też pobrać spis treści w formacie PDF, zamieszczony na stronie wydawnictwa.

Zobacz fragment książki zamieszczony na stronie wydawnictwa.

Errata

Zauważone w tekście błędy proszę zgłaszać na adres p.krzyzanowski@mimuw.edu.pl.

Strona 76 linia 4, do końca zdania
Powinno być “… 96 albo 128 bitów (w kompilatorze GCC domyślnie wybierane są takie, które lepiej odpowiadają ABI, tzn. 96 bitów dla IA-32 oraz 128 bitów dla IA-64).”
Strona 106, tw. 4.4.2, linia -6
Powinno być: DRN
Strona 107, tw. 4.4.3, linia 2
Powinno być: F:DRN, gdzie DRN×RM
Strona 123, ramka, linia 4
Zamiast O(Np) powinno być: ConstNp
Strona 128, ramka, linia 2
Zamiast O(N3) powinno być: N3
Strona 154 linia 12
Zamiast “r=s” powinno być “r=d”.
Strona 173 linie -8..-6
Zdanie “W poniższej wersji jedynek z diagonali (…) bo przecież i tak wiemy, gdzie muszą być” odnosi się do alg. 6.3.2.
Strona 179 linia 2
Przed rozpoczęciem pętli “for k…”, należy inicjalizować wektor permutacji: σ=[1,,N].
Strona 179 linia 7
powinno być: σk=p, σp=k (…zapamiętanie permutacji).
Strona 215 linia -3
Powinno być: “wymaga – przy założeniu, że wyznaczając v, zapamiętaliśmy także mnożnik 2/vTv (zob. ramkę powyżej) – obliczenia”
Strona 233
Macierz w drugiej kolumnie tekstu prawidłowo powinna wyglądać tak: [a2a1a3a1aN+1a111]
Strona 239
w równaniu poprzedzającym równanie (8.1), czynnik λ12k jest zbędny.
Strona 239
w równaniu (8.1) i w kończącej dowód nierówności, zamiast α1 powinno być |α1|.
Strona 247
Tw. 8.2.3 powinno brzmieć: Niech v1,,vN stanowią bazę ortogonalną złożoną z wektorów własnych macierzy symetrycznej A, odpowiadających wartościom własnym λ1λN. Analogicznie, niech v~1,,v~N stanowią bazę ortogonalną złożoną z wektorów własnych macierzy symetrycznej A+Δ, odpowiadających wartościom własnym λ~1λ~N. Wtedy dla każdego i=1,,N zachodzi sinθi2minji|λjλi|||Δ||2, gdzie θi oznacza kąt (ostry) pomiędzy vi oraz v~i. (Gdy λi jest wielokrotną wartością własną, po prawej stronie nierówności kładziemy .)
Strona 247 linia -8
Po słowie Dowód należy dodać zdanie: “Ustalmy i oraz oznaczmy dla uproszczenia notacji λ:=λ~i oraz v:=v~i.”
Strona 247 linia -5
Zamiast “uvi” powinno być “uivi”. Zamiast “v,” powinno być “vj”.
Strona 259 linia -2
Powinno być: “przeplatają się z wartościami z diagonali D. W szczególności, gdy β>0, zachodzi:”
Strona 277 linia 4
Powinno być: U^TAV^=Σ^1V^TATA=BV^=Σ^1Σ^2=Σ^.
Strona 324 linia -5
Zamiast “rk” powinno być “Mrk”.
Strona 501 linia -13
Powinno być “dostatecznie blisko”.