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 3.

Podobné prezentace


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

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

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 atan x / tanh x = b(1) Výraz tvaru: atan x / tanh x = b Pro b platí: 1 <= b < 

4 Nelineární úlohy atan x / tanh x = b(2) a) b  1 výraz tvaru: atan x / tanh x = b Musíme si uchovat rozdíl mezi 1 a b => použijeme substituci b = 1 +  (  je malé) Upravujeme: atan x = (1 +  ) tanh x atan x – tanh x = . tanh x atan x. cosh x – sinh x = . sinh x Teď můžeme použít mocninné řady 2 téměř stejné hodnoty => musíme se jich zbavit

5 Nelineární úlohy atan x / tanh x = b(3) atan x. cosh x – sinh x = . sinh x

6 Nelineární úlohy atan x / tanh x = b(4) t = x 2 ; f(t) je kontrakce (alespoň na [-0,2, 0,2]) iteruji

7 Iterační metody pro řešení nelineárních úloh Hledání pevného bodu: –Metoda prosté iterace Hledání průsečíku s osou x: –Metoda půlení intervalů –Metoda regula falsi Modifikovaná metoda regula falsi –Metoda sečen –Newtonova metoda

8 Iterační metody hledání pevného bodu II Princip iteračních metod: Máme výchozí nelineární rovnici: F(x) = G(x) Vytvoříme z ní rekursivní rovnici tvaru: x i+1 = f(x i,x i-1,...,x 0 ) (Musí splňovat podmínky věty o pevném bodě.) Provedeme iterativní výpočet Nejčastěji se využívají rovnice: x i+1 = f(x i ) x i+1 = f(x i,x i-1 )

9 Iterační metody hledání pevného bodu III Iterativní výpočet: Zvolíme vhodné počáteční hodnoty x 0, x 1,..., x k : i := k; DO x i+1 = f(x i,x i-1,...,x 0 ); i++; WHILE (PODMÍNKA UKONČENÍ != TRUE)

10 Iterační metody hledání pevného bodu IV Jaké mohou být podmínky ukončení: |f(x i+1 ) – f(x i )| < MIN_FX |x i+1 – x i | < MIN_X i > MAX_I

11 Iterační metody hledání pevného bodu - metoda prosté iterace Pracuje s rovnicí: x i+1 = f(x i ) Nepopisuje metodu, jak z výchozí rovnice získat rovnici x i+1 = f(x i ) Pouze klade podmínky, které musí rovnice x i+1 = f(x i ) splňovat: Existuje x*  D(f) tak, že x* je limitou posloupnosti x 0, x 1, x 2, … pro I  .

12 Iterační metody hledání pevného bodu - metoda prosté iterace II Příklad: Výchozí rovnice: cos x = b Rekursivní rovnice: Zhodnocení: Výhody: Rychlost konvergence (odpovídá typu funkce) Nevýhody: Neposkytuje žádný univerzální způsob, jak odvodit rekursivní rovnici. Neposkytuje ani metodu pro určení x 0.

13 Iterační metody Hledání průsečíku s osou x - obecně Výchozí nelineární rovnice: F(x) = G(x) Chceme najít x, pro které platí: F(x) – G(x) = 0 Využijeme metody pro hledání průsečíku s osou x. Hledáme průsečík f(x) s osou x, přičemž: f(x) = F(x) – G(x) Pro hledání průsečíku f(x) s osou x existují standardní metody: půlení intervalů, regula falsi,...

14 Iterační metody Hledání průsečíku s osou x – obecně II Ještě než použijeme standardní metody: Musíme D(f) funkcie f(x) rozdělit na intervaly:, kde i = 1, 2, 3,… Tak, aby platilo: f(x) má v intervalu právě 1 průsečík s osou x f(a i ). f(b i ) < 0 f(x) je v intervalu spojitá

15 Iterační metody Hledání průsečíku s osou x – obecně III Máme výchozí funkci f(x) a interval Zvolíme funkci m pro výpočet x i+1 : x i+1 = m(x i,x i-1,...,x 0 ) Funkce m je popsána v rámci metody pro určování průsečíku s osou x Provedeme iterativní výpočet Nejčastěji se využívají funkce tvaru: x i+1 = m(x i ) x i+1 = m(x i,x i-1 )

16 Iterační metody Hledání průsečíku s osou x – obecně IV Iterativní výpočet: Zvolíme vhodné počáteční hodnoty x 0, x 1,..., x k : i := k; DO x i+1 = m(x i,x i-1,...,x 0 ); i++; WHILE (PODMÍNKA UKONČENÍ != TRUE)

17 Iterační metody Hledání průsečíku s osou x – obecně V Jaké mohou být podmínky ukončení: |f(x i+1 ) – f(x i )| < MIN_DF |f(x i+1 )| < MIN_F |x i+1 – x i | < MIN_X i > MAX_I

18 Iterační metody Hledání průsečíku s osou x – Newtonova metoda Princip: Vysvětlím na tabuli.

19 Iterační metody Hledání průsečíku s osou x – Newtonova metoda II Volba počátečních hodnot:x 0 Výpočet x i+1 Vstup: x 0 Vlastní výpočet:

20 Iterační metody Hledání průsečíku s osou x – Newtonova metoda III Příklad: f(x) = x 3 – x – 1 x 0 = 1 x 1 = 2

21 Iterační metody Hledání průsečíku s osou x – Newtonova metoda IV Zhodnocení: Výhody: Kvadratická konvergence (v každém kroku se zdvojnásobí počet platných cifer) Nevýhody: Je nutno počítat derivaci V některých případech nekonverguje (x i+1 může vyjít mimo interval, kde funkce splňuje dříve uvedené podmínky)

22 Iterační metody Hledání průsečíku s osou x – metoda sečen Patří mezi semi-Newtonovské metody – pracuje podobně jako Newtonova metoda, ale místo derivace využívá pouze její aproximaci (směrnici přímky x i, x i-1 ) Princip: Vysvětlím na tabuli. Obrázek + odvození vzorce:

23 Iterační metody Hledání průsečíku s osou x – metoda sečen II Volba počátečních hodnot:x 0 = a, x 1 = b Výpočet x i+1 Vstup: x 0, x 1 Vlastní výpočet:

24 Iterační metody Hledání průsečíku s osou x – metoda sečen III Příklad: f(x) = x 3 – x – 1 x 0 = 1 x 1 = 2

25 Iterační metody Hledání průsečíku s osou x – metoda sečen IV Zhodnocení: Výhody: Takřka kvadratická konvergence Nepoužívá druhou derivaci Nevýhody: V některých případech opět nekonverguje (x i+1 může vyjít mimo interval, kde funkce splňuje dříve uvedené podmínky)

26 Iterační metody Hledání průsečíku s osou x – půlení intervalu Princip: Vysvětlím na tabuli.

27 Iterační metody Hledání průsečíku s osou x – půlení intervalu II Volba počátečních hodnot:a 0 = a, b 0 = b Výpočet x i+1 (a také a i+1 a b i+1 ) Vstup: a i, b i Vlastní výpočet: IF f(x i+1 ) == 0 konec výpočtu, řešení: x i+1 IF f(x i+1 ).f(a i ) < 0 a i+1 = a i ; b i+1 = x i+1 ELSE a i+1 = x i+1 ; b i+1 = b i

28 Iterační metody Hledání průsečíku s osou x – půlení intervalu III Největší nutný počet kroků pro získání hodnoty x n s přesností  :

29 Iterační metody Hledání průsečíku s osou x – půlení intervalu IV Příklad: f(x) = x 3 – x – 1 x 0 = 1 x 1 = 2

30 Iterační metody Hledání průsečíku s osou x – půlení intervalu V Zhodnocení: Výhody: Konverguje vždy!!! Dokážeme určit největší nutný počet kroků Nevýhody: Konverguje pomalu (lineární konvergence)

31 Iterační metody Hledání průsečíku s osou x – regula falsi Opět semi-Newtonovská metoda Využívá však stejný posun krajních bodů jako metoda půlení intervalů => zůstane v intervalu a 0, b 0 => konverguje vždy Princip: Vysvětlím na tabuli. Obrázek

32 Iterační metody Hledání průsečíku s osou x – regula falsi II Volba počátečních hodnot:a 0 = a, b 0 = b Výpočet x i+1 (a také a i+1 a b i+1 ) Vstup: a i, b i Vlastní výpočet: IF f(x i+1 ) == 0 konec výpočtu, řešení: x i+1 IF f(x i+1 ).f(a i ) < 0 a i+1 = a i ; b i+1 = x i+1 ELSE a i+1 = x i+1 ; b i+1 = b i

33 Iterační metody Hledání průsečíku s osou x – regula falsi III Příklad: f(x) = x 3 – x – 1 x 0 = 1 x 1 = 2

34 Iterační metody Hledání průsečíku s osou x – regula falsi IV Problém s metodou regula falsi Vysvětlím na tabuli. Princip modifikované metody regula falsi Vysvětlím na tabuli.

35 Iterační metody Hledání průsečíku s osou x – modifikovaná regula falsi Volba počátečních hodnot:a 0 = a, b 0 = b Výpočet x i+1 (a také a i+1 a b i+1 ) Vstup: a i, b i Vlastní výpočet: IF f(x i+1 ) == 0 konec výpočtu, řešení: x i+1 IF f(x i+1 ).f(a i ) < 0 a i+1 = a i ; f m (a i+1 ) = f(a i+1 )/2 ; b i+1 = x i+1 ; f m (b i+1 ) = f(b i+1 ) ELSE a i+1 = x i+1 ; f m (a i+1 ) = f(a i+1 ) ; b i+1 = b i ; f m (b i+1 ) = f(b i+1 )/2

36 Iterační metody Hledání průsečíku s osou x – modifikovaná regula falsi II Příklad: f(x) = x 3 – x – 1 x 0 = 1 x 1 = 2

37 Iterační metody Praktický příklad: sin x = x/2 + 0,1 (1) Prostá iterace: Nalezení rekurzivní rovnice: Nějaké návrhy?

38 Iterační metody Praktický příklad: sin x = x/2 + 0,1 (2) Prostá iterace: Nalezení rekurzivní rovnice: x i+1 = 2 sin x i – 0,1nefunguje x i+1 = asin (x/2 + 0,1)funguje: Je potřeba 18 iterací na 6 desetinných míst 00 10, , , ,

39 Prostá iterace: Speciální rekurzivní rovnice: Iterační metody Praktický příklad: sin x = x/2 + 0,1 (3)

40 Prostá iterace: Speciální rekurzivní rovnice: x 0 = 0 Je potřeba 4 iterace na 6 desetinných míst Iterační metody Praktický příklad: sin x = x/2 + 0,1 (4) 0 0,2 0, , ,202773

41 Iterační metody Praktický příklad: sin x = x/2 + 0,1 (5) Newtonova metoda: Úprava rovnice: f(x) = x/2 + 0,1 – sin x = 0 Najít v grafu vhodné x 0 x 0 = 0 f’(x) = ½ - cos x

42 Newtonova metoda: Jsou potřeba 3 iterace na 6 desetinných míst Iterační metody Praktický příklad: sin x = x/2 + 0,1 (6) 0 0,2 0, ,202773

43 Iterační metody Praktický příklad: sin x = x/2 + 0,1 (7) Metoda regula falsi metoda: Úprava rovnice: f(x) = x/2 + 0,1 – sin x = 0 Najít v grafu vhodné a 0 a b 0 a 0 = 0, b 0 = 1

44 Iterační metody Praktický příklad: sin x = x/2 + 0,1 (8) Metoda regula falsi: Je potřeba 6 iterací na 6 desetinných míst 0 0, , , , , ,202773

45 Iterační metody Praktický příklad: sin x = x/2 + 0,1 (9) Prostá iterace: x i+1 = asin (x/2 + 0,1)18 iterací Prostá iterace: 4 iterace Newtonova metoda:3 iterace Metoda regula falsi:6 iterací


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

Podobné prezentace


Reklamy Google