Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
PA081 Programování numerických výpočtů Přednáška 4
2
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
3
Nelineární úlohy (1-sin x) / ( /2-x)(1) Výraz tvaru: (1-sin x) / ( /2-x) pro x /2 Standardní výpočet pro x = 1,5708: (přesnost 10 desetinných míst) /2 =1,57079 63267 /2-x = 0,00000 36733 sin x = 0,99999 99999 (1-sin x) / ( /2-x) = 0,00002 72235
4
Nelineární úlohy (1-sin x) / ( /2-x)(2) Výraz tvaru: (1-sin x) / ( /2-x) pro x /2 Přesný výpočet pro x = 1,5708: /2 = 1,5707963267949... /2-x = -0,00000367320510341607... sin x = 0,999999999993254... (1-sin x) / ( /2-x) = 0,0000018366168017301
5
Nelineární úlohy (1-sin x) / ( /2-x)(3) Výraz tvaru: (1-sin x) / ( /2-x)pro x /2 Převedení úlohy do vhodnějšího tvaru: Substituce t = /2 – x Pro sin x pak platí: sin x = sin ( /2 – t) = -sin (t - /2) = cos (t) Pozn.:sin (x + /2) = cos x; sin (x - /2) = -cos x
6
Nelineární úlohy (1-sin x) / ( /2-x)(4) Výraz tvaru: (1-sin x) / ( /2-x)pro x /2 Převedení úlohy do vhodnějšího tvaru: x = 1,5708 t = 0,00000 36732
7
Nelineární úlohy (1-sin x) / ( /2-x)(5) Porovnání výsledků (x = 1,5708): Standardní výpočet: 0,00002 72235 Přesný výpočet: 0,00000 18366168017301 Pozměnění výrazu: 0,00000 18366
8
Iterační metody Praktický příklad 2: (1) Prostá iterace: Nalezení rekurzivní rovnice: Nějaké návrhy?
9
Prostá iterace: Nalezení rekurzivní rovnice: a)konverguje b)diverguje Iterační metody Praktický příklad 2: (2)
10
Prostá iterace: Nalezení rekurzivní rovnice: a) konverguje 7 iterací pro přesnost na 6 des. míst Iterační metody Praktický příklad 2: (3)
11
Newtonova metoda: Úprava rovnice není nutná: Derivace: Výpočet x i+1 : Pozor na správnou volbu x 0 : x 0 = 1 (chyba), x 0 = 2 (OK) Iterační metody Praktický příklad 2: (4)
12
Newtonova metoda: 7 iterací pro přesnost na 6 des. míst Iterační metody Praktický příklad 2: (5) 2 2,647466 2,894327 3,008972 3,05884 3,074469 3,076391 3,076421
13
Iterační metody Praktický příklad 3: sin x = x - h(1) Prostá iterace: Pro h = 0,234567 Pro h = 0,000123456
14
Iterační metody Praktický příklad 3: sin x = x - h(1) Prostá iterace: Pro h = 0,234567 Nalezení rekurzivní rovnice: a)x = sin x + hkonverguje (x* = 1,145472; 20 iter.) b)x = asin (x – h)nekonverguje Pro h = 0,000123456 Nalezení rekurzivní rovnice: a)x = sin x + hnekonverguje b)x = asin (x – h)nekonverguje
15
Iterační metody Praktický příklad 3: sin x = x - h(2) Newtonova metoda: Úprava rovnice:f(x) = sin x – x + h = 0 Derivace:f’(x) = cos x - 1 Výpočet x i+1 : Pro h = 0,234567: konverguje; x 0 = 0,5; x* = 1,145472; 6 iter. Pro h = 0,000123456: konverguje; x 0 = 0,001; x* = 0,090492916; 22 iter. VELMI OBTÍŽNÁ VOLBA x 0 ROVNICE PRO x i+1 MÁ NEVHODNÝ TVAR
16
Iterační metody Praktický příklad 3: sin x = x - h(3) Pro h = 0,000123456 Analogický problém pro metodu regula falsi: Má ve jmenovateli: sin a – a – (sin b – b) => velmi malá čísla, navíc jejich rozdíl se blíží 0 Co tedy dělat?:
17
Iterační metody Praktický příklad 3: sin x = x - h(4) Pro h = 0,000123456 Analogický problém pro metodu regula falsi: Má ve jmenovateli: sin a – a – (sin b – b) => velmi malá čísla, navíc jejich rozdíl se blíží 0 Co tedy dělat?: a) Půlení intervalů – zaručené, ale pomalé: konverguje, 22 iterací b) Prostá iterace s rovnicí, využívající Taylorovy řady
18
Pro h = 0,000123456 Prostá iterace s rovnicí, využívající Taylorovy řady: Konverguje; x 0 = 0; 3 iterace Iterační metody Praktický příklad 3: sin x = x - h(5)
19
Iterační metody Praktický příklad 4: x.sin x = h(1) Podobný problém jako v předchozím případě. Existuje ještě jedna metoda, jak pracovat s takovýmito výrazy: Využijeme „pseudokonstantu“ sin x/x: x. sin x = h vynásobíme levou stranu zlomkem x/x a tím si na levé straně vytvoříme výraz sin x/x x 2.(sin x/x) = h pro x 0 je hodnota tohoto výrazu blízká 1 a se změnou x se mění velmi pomalu => vhodná do jmenovatele
20
Prostá iterace s rovnicí (h = 0,00123456): Pro x 0 = 0,001 Konverguje, 2 iterace Iterační metody Praktický příklad 4: x.sin x = h(2) 0,001 0,035136 0,03514
21
Hodnoty konstant: a = 0,8474; b = 0,3; c = 3,27; d = 0,6697 Substituce: Iterační metody Praktický příklad 4: (1)
22
Hodnoty konstant: a = 0,8474; b = 0,3; c = 3,27; d = 0,6697 Substituce: x = u 2 /d Nahradíme cos pomocí sin, abychom mohli použít sin u/u: 1 – cos u = 2 (sin (u/2)) 2 Iterační metody Praktický příklad 4: (1)
23
1 – cos u = 2 (sin (u/2)) 2 =>u = 1,42998 x = 4,55932 Iterační metody Praktický příklad 4: (2)
24
Iterační metody Obecná pravidla Vytvořit graf rovnice. Zjistit, kde zhruba leží kořen rovnice. V případě, že jich je několik, ujistit se, který z nich hledáme. Vymyslet vhodnou iterativní metodu – jednu z těchto: –Prostá iterace s původní rovnicí –Prostá iterace s upravenou rovnicí (Taylorův rozvoj, využití pseudokonstanty sin x / x) –Newtonova metoda –Metoda regula falsi –Metoda půlení intervalů Metodu použít a otestovat správnost výsledků (např. pomocí grafu rovnice). Pokud je výsledek nesprávný, zjistit důvod a zkusit jinou metodu.
25
Domácí úkol 4 Máme kolejnici délky 1 km a 10 cm. Ohneme ji tak, aby mezi jejími konci byla vzdálenost 1 km. Jaká bude vzdálenost mezi spojnicí konců kolejnice a bodem ve středu kolejnice?
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.