Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.

Podobné prezentace


Prezentace na téma: "Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární."— Transkript prezentace:

1 Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární úlohy Řešení soustav lineárních rovnic Metoda nejmenších čtverců pro lineární úlohy Sumace obecné a s korekcí Numerické výpočty v C a C++ Optimalizace výrazů, optimalizace při překladu

2 Písemka - termíny Poslední přednáška bude za týden (9.5.)
Do dodám na Internet a k Marečkovi všechny materiály + vzorovou písemku + opravím zbylé DCV Vypsala jsem tyto termíny: 24.5. v 16:30 7.6. v 16:30 14.6. v 16:30 Písemka bude trvat 2 hodiny, je povolena kalkulačka

3 Minimalizace součtu čtverců - shrnutí
Optimalizuje teoretický model tak, aby co nejvíce odpovídal naměřeným datům. => Minimalizuje odchylku modelu od naměřených hodnot. Využití: Všude, kde máme co do činění s analýzou nějakého přírodního nebo technického systému.

4 Minimalizace součtu čtverců - shrnutí II
Máme naměřená data: (ai, bi), i = 1, ..., m kde: ai Î Rk bod měření bi hodnota, naměřená v bodě ai Chceme vytvořit matematický model M: Rk+n -> R, který je závislý na n volných parametrech x1, x2, ..., xn a pro který požadujeme, aby: M(ai, x) » bi i = 1, ..., m => Musíme z naměřených hodnot dopočítat hodnoty parametrů JAK?: Pomocí minimalizace součtu čtverců

5 Lineární úloha nejmenších čtverců - shrnutí
Model M(ai, x) je lineární vzhledem k hledaným parametrům a lze tedy zapsat takto: M(ai, x) = f1(ai).x fn(ai).xn  bi kde: i = 1, ..., m m je počet naměřených bodů (m ≥ n) f1, ..., fn jsou lineární funkce Pro odchylku modelu od reálného výsledku měření platí: => ri(x) = M(ai, x) - bi = f1(ai).x fn(ai).xn - bi Hledáme takové x, aby suma čtverců odchylek ri(xi) byla minimální:

6 Lineární úloha nejmenších čtverců - shrnutí II
Metody řešení problému: Využití minimalizace Využití matice lineárních kombinací Řešení rovnice ATAx = ATb Vypočítat x přímo z této rovnice. Využít Choleského faktorizaci. Využít QR faktorizaci Využít SVD (singular value decomposition)

7 Řešení rovnice ATAx = ATb - využití Choleského faktorizace - obecně
Pokud je matice M pozitivně definitní, pak pro ni může být vytvořena matice R tak, aby platilo: M = RT.R přičemž matice R je horní trojúhelníková matice. Proces vytvoření matice R se nazývá Choleského faktorizace matice M.

8 Řešení rovnice ATAx = ATb - využití Choleského faktorizace – příklad 1
Proveďte Choleského faktorizaci matice M: Řešení: => m11 = r112 => r11 = 5 => m21 = r11.r21 => r21 = m21/r11 = 15/5 = 3

9 Řešení rovnice ATAx = ATb - využití Choleského faktorizace – obecně II
Algoritmus: Vypočítej matice C a c: C = AT.A; c = AT.b Poznámka: Matice A obsahuje 1 sloupec navíc (= první sloupec, tvořený čísly 1). Najdi Cholského faktorizaci matice C: C = RT.R Získej x řešením rovnic: RT.y = c (odtud získej y) Rx = y (odtud získej x)

10 Řešení rovnice ATAx = ATb - využití Choleského faktorizace – příklad 2
Měřením jsme získali 3 body: (2, 0, -1); (2, 1,-2) a (1, -1, 1) (m = 3) Chceme vytvořit model: M(si, (g, h, e)) = g.si1 + h.si2 + e  Di Problém lze řešit pomocí rovnice x = (AT.A)-1.ATb a Chol. fakt.:

11 Řešení rovnice ATAx = ATb - využití Choleského faktorizace – příklad 2 (2)
Měřením jsme získali 3 body: (2, 0, -1); (2, 1,-2) a (1, -1, 1) (m = 3) Chceme vytvořit model: M(si, (g, h, e)) = g.si1 + h.si2 + e  Di Problém lze řešit pomocí rovnice x = (AT.A)-1.ATb a Chol. fakt.: => h = -1; g = -1; e = 1 => f(si1, si2) = -si1 - si2 + 1

12 Řešení rovnice ATAx = ATb - využití Choleského faktorizace – příklad 2 (2)
Měřením jsme získali 3 body: (2, 0, -1); (2, 1,-2) a (1, -1, 1) (m = 3) Chceme vytvořit model: M(si, (g, h, e)) = g.si1 + h.si2 + e  Di Problém lze řešit pomocí rovnice x = (AT.A)-1.ATb a Chol. fakt.:

13 Řešení rovnice ATAx = ATb - využití Choleského faktorizace – zhodnocení
Výhoda: Nižší časová složitost než u výpočtu přímo z rovnice (viz d.cv.) Nevýhody: Algoritmus není příliš numericky stabilní: float(ATA) ≠ (ATA) hodnota může být velká, pokud je velké x* přesné řešení, odhad navíc nelze určit, jak přesné je řešení

14 Domácí úkol Určete (+zdůvodněte) časovou složitost řešení úlohy nejmenších čtverců pro metodu: a) Využití matice lineárních kombinací (to máme už od minule) b) Přímé řešení rovnice ATAx = ATb c) Řešení rovnice ATAx = ATb pomocí Choleského faktorizace Snažte se určit složitost co nejpřesněji (vzhledem k m a n) Do Každá část 2%

15 Řešení rovnice ATAx = ATb - využití QR faktorizace - obecně
Pokud má matice M  Rm x n, kde m ≥ n, hodnost n, pak pro ni mohou být vytvořeny matice R a Q tak, aby platilo: M = Q.R kde: R  Rn x n je horní trojúhelníková matice Q  Rm x n je ortogonální matice

16 Řešení rovnice ATAx = ATb - využití QR faktorizace – obecně 2
Algoritmus: Vypočítej matice Q a R: A = Q.R Vypočítej d: d = QT.b Získej x řešením rovnice: Rx = d

17 Řešení rovnice ATAx = ATb - využití QR faktorizace – příklad
Měřením jsme získali 3 body: (3, -6, -1); (4, -8,7) a (0, 1, 2) (m = 3) Chceme vytvořit model: M(ti, (e1, e2, e3)) = e1.ti1 + e2.ti2 + e3  Vi Problém lze řešit pomocí rovnice x = (AT.A)-1.ATb a QR fakt.:

18 Řešení rovnice ATAx = ATb - využití QR faktorizace – příklad (2)
Měřením jsme získali 3 body: (3, -6, -1); (4, -8,7) a (0, 1, 2) (m = 3) Chceme vytvořit model: M(ti, (e1, e2, e3)) = e1.ti1 + e2.ti2 + e3  Vi Problém lze řešit pomocí rovnice x = (AT.A)-1.ATb a QR fakt.:

19 Řešení rovnice ATAx = ATb - využití QR faktorizace – příklad (2)
Měřením jsme získali 3 body: (3, -6, -1); (4, -8,7) a (0, 1, 2) (m = 3) Chceme vytvořit model: M(ti, (e1, e2, e3)) = e1.ti1 + e2.ti2 + e3  Vi Problém lze řešit pomocí rovnice x = (AT.A)-1.ATb a QR fakt.:

20 Řešení rovnice ATAx = ATb - využití QR faktorizace – zhodnocení
Výhody: Časová složitost nižší než u výpočtu přímo z rovnice (viz d.cv.) Větší numerická stabilita než u Choleského faktorizace. Nevýhody: Pomalejší než u Choleského faktorizace. Složitější implementace.

21 Řešení rovnice ATAx = ATb - využití SVD (single value decomposition) - obecně
Nechť M  Rm x n je matice řádu n, pak existují ortogonální matice U  Rm x n a V  Rm x n tak, že platí: M = U..VT kde 1 ≥ 2 ≥ … r > 0. Tento rozklad je určen jednoznačně.

22 Řešení rovnice ATAx = ATb - využití SVD (single value decomposition) – obecně 2
Pro x potom platí následující: kde:

23 Řešení rovnice ATAx = ATb - využití SVD (single value decomposition) – zhodnocení
Výhody: Časová složitost nižší než u výpočtu přímo z rovnice (viz d.cv.) Větší numerická stabilita než u Choleského faktorizace. Nevýhody: Složitější implementace.

24 Sumace - obecně Úkol: Vypočítat hodnotu výrazu Postup:
Rekursivní sumace Párová sumace Sumace s vkládáním

25 Sumace - rekursivní sumace
Vstup: posloupnost čísel x1, …, xn Algoritmus rekursivní sumace: suma = 0 for (i=1; i<=n; i++) suma = suma + xi

26 Sumace - párová sumace Vstup: posloupnost čísel x1, …, xn
Algoritmus párové sumace: Krok 1) xi(1) = x2i-1 + x2i Pokud je n liché, pak Krok j) xi(j+1) = x2i-1(j) + x2i (j) Probíhá v krocích. Je možno realizovat paralelně nebo pomocí vektorů.

27 Sumace - sumace vkládáním
Vstup: posloupnost čísel x1, …, xn Algoritmus párové sumace: Čísla xi setřídíme: Opakuj: (a) t = x1 + x2 (b) zařaď t do posloupnosti x3, ...xn

28 Sumace - zobecnění předchozích 3 algoritmů
Vstup: posloupnost čísel x1, …, xn Obecný algoritmus: Nechť S = {x1,…,xn} WHILE |S| > 1 DO Odstraň z S vybraná čísla x a y. Přidej x + y do S. DONE Na konci získáme jednoprvkovou množinu S, obsahující číslo, které je sumou posloupnosti x1, …, xn

29 Sumace - zhodnocení předchozích 3 algoritmů
Chyba kde: je odhad Sn, získaný uvedeným algoritmem. je definována takto: kde: v i-tém běhu cyklu přičemž u je relativní zaokrouhlovací chyba elementárních operací => Pravidlo: Provádějte sčítání tak, aby se minimalizovaly velikosti => Lépe sčítat čísla vzestupně k jejich velikosti než sestupně.

30 Sumace - sumace s korekcí
Algoritmus: s = 0; e = 0 for (i=1; i<=n; i++) { tmp = s y = xi + e (i-tý sčítanec + oprava chyby z minulého cyklu) s = s + y e = (tmp – s) + y (odhad chyby ve výrazu s+y) } Toto se může výrazně lišit od –y (speciálně pokud je s daleko větší než y)


Stáhnout ppt "Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární."

Podobné prezentace


Reklamy Google