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

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

PA081 Programování numerických výpočtů Přednáška 4.

Podobné prezentace


Prezentace na téma: "PA081 Programování numerických výpočtů Přednáška 4."— Transkript prezentace:

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?


Stáhnout ppt "PA081 Programování numerických výpočtů Přednáška 4."

Podobné prezentace


Reklamy Google