Numerická matematika Banka řešených příkladů Radek Kučera, Pavel Ludvík, Zuzana Morávková Katedra matematiky a deskriptivní geometrie Vysoká škola báňská Technická Univerzita Ostrava K D M G
ISBN 978-80-48-894-6
OBSAH Řešení nelineárních rovnic 5 Soustavy lineárních rovnic: přímé metody 9 Soustavy lineárních rovnic: iterační metody 0 4 Interpolace a aproximace funkcí 4 5 Numerické integrování a derivování 59 6 Obyčejné diferenciální rovnice: počáteční úlohy 68 Literatura 79
Předmluva Studijní materiály tvořící tato skripta jsou určeny převážně pro studenty kombinované i prezenční formy fakulty strojní Vysoké školy báňské Technické univerzity Ostrava navštěvující předmět Numerická matematika. Naše skripta obsahují řešené příklady a jsou přirozený doplněk skript Radka Kučery Numerické metody, která jsou zaměřená na teoretický výklad základních partií numerické matematiky. Rádi bychom upozornili na webovou stránku http://mdg.vsb.cz/portal/nm, kde je u- místěn nejen tento text, ale také řada dalších souvisejících studijních materiálů. Tento studijní text vznikl za finanční podpory projektu IRP-FRVŠ 58/05 Inovace předmětu Numerická matematika na Fakultě strojní Vysoké školy báňské - Technické univerzitě Ostrava a Katedry matematiky a deskriptivní geometrie VŠB-TUO. Příjemně strávený čas s numerickou matematikou přeje kolektiv autorů. 4
KAPITOLA ŘEŠENÍ NELINEÁRNÍCH ROVNIC Příklad.: Metodou půlení intervalu určete všechny kořeny rovnice s přesností ε = 0. x = ln0 x) 70 fx)=x ln0 x) 60 50 40 0 0 0 0 0 0 0 4 Z grafu vidíme, že kořen průsečík s osou x) leží v intervalu,. Vytabelujeme si na tomto 5
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC intervalu hodnotu funkce f x) = x ln0 x) a zjistíme, že znaménko funkčních hodnot se mění mezi. a.. Funkce je spojitá na daném intervalu. Rovnice má jeden kořen na intervalu.,.. x....4.5.6.7.8 f x) -.97-0.855-0.4468 0.07 0.59.49.9678.7967.779 Počítáme kořen na intervalu.,., tedy a 0 =., b 0 =.. Spočítáme první aproximaci x : x = b0 + a 0 =. +. =.5. Spočítáme funkční hodnoty funkce f x) = x ln0 x) v bodech a 0, x, b 0 : a určíme interval a, b : f a 0 ) = 0.446, f x ) = 0.59, f b 0 ) = 0.07 f a 0 ) f x ) < 0 a = x 0 =.5, b = b 0 =.. Určíme chybu aproximace b0 a 0 = 0.05 < ε = 0. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x = a + b =.5 +. =.75 a určíme interval a, b : f a ) = 0.59, f x ) = 0.095, f b ) = 0.07, f a ) f x ) < 0 a = x =.75 b = b =.. Určíme chybu aproximace b a = 0.05 < ε = 0. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x = a + b =.75 +. =.875 a určíme interval a, b : f a ) = 0.095, f x ) = 0.005, f b ) = 0.07, f a ) f x ) < 0 a = x =.875, b = b =.. Určíme chybu aproximace b a = 0.05 < ε = 0. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x 4 = a + b =.875 +. =.98 6
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC a určíme interval a 4, b 4 : f a ) = 0.005, f x ) = 0.004, f b ) = 0.07, f a ) f x ) < 0 a 4 = a =.875, b 4 = x =.98 Určíme chybu aproximace b a = 0.006 < ε = 0. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x 4 : x 4 = a4 + b 4 =.875 +.98 =.906 Určíme interval a 5, b 5 : f a 4 ) = 0.005 f x 4 ) = 0.046 f b 4 ) = 0.004 f a 4 ) f x 4 ) < 0 a 5 = x 4 =.906, b 5 = b 4 =.98 Určíme chybu aproximace b4 a 4 = 0.00 < ε = 0. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x 5 : x 5 = a5 + b 5 =.906 +.98 =.9 Určíme interval a 6, b 6 : f a 5 ) = 0.046 f x 5 ) = 0.0066 f b 5 ) = 0.004 f a 5 ) f x 5 ) > 0 a 6 = x 5 =.906, b 6 = b 5 =.98 Určíme chybu aproximace b4 a 4 = 0.006 < ε = 0. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x 4 : x 6 = a6 + b 6 =.9 +.98 =.9 Určíme chybu aproximace b6 a 6 = 0.0008 < ε = 0. Je dosaženo zadané přesnosti. Vše si zapíšeme do tabulky: i a i f a i ) x i f x i ) b i f b i ) b i a i / 0..5. + 0.05.5.75. + 0.05.75.875. + 0.05.875.98 +. + 0.006 4.875.906.98 + 0.00 5.906.9.98 + 0.006 6.9.90.98 + 0.0008 Kořen rovnice je x =.9 ± 0.00. 7
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC Příklad.: Metodou půlení intervalu určete všechny kořeny rovnice: s přesností ε = 0. x + sinx) = 0 fx)=x+sinx) 0 4 5 6 0 Z grafu vidíme, že kořen průsečík s osou x) leží v intervalu,. Vytabelujeme si na tomto intervalu hodnotu funkce f x) = x + sinx) a zjistíme, že znaménko funkčních hodnot se mění mezi. a.. Funkce je spojitá na daném intervalu. Rovnice má jeden kořen na intervalu.,.. x....4.5.6.7 f x) -0.585-0.0088 0.0 0.66 0.854 0.4975 0.5996 0.697 Počítáme kořen na intervalu.,. a tedy a 0 =., b 0 =.,. Spočítáme počáteční aproximaci x 0 : x 0 = b 0 + a 0 =. +. =.5 Spočítáme funkční hodnoty funkce f x) = x + sinx) v bodech a 0, x 0, b 0. A určíme interval a, b : f a 0 ) = 0.0088 f x 0 ) = 0.068 f b 0 ) = 0.0 f a 0 ) f x 0 ) < 0 a = a 0 =., b = x 0 =.5 8
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC Spočítáme chybu aproximace b 0 a 0 = 0.05 < ε = 0. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = a + b =. +.5 =.5 Určíme interval a, b : f a ) = 0.0088 f x ) = 0.07 f b ) = 0.068 f a ) f x ) < 0 a = a =. b = x =.5 Spočítáme chybu aproximace b a = 0.05 < ε = 0. Spočítáme další aproximaci x : x = a + b =. +.5 =.5 Určíme interval a, b : f a ) = 0.0088 f x ) = 0.009 f b ) = 0.07 f a ) f x ) < 0 a = a =., b = x =.5 Spočítáme chybu aproximace b a = 0.05 < ε = 0. Spočítáme další aproximaci x : x = a + b =. +.5 =.06 Určíme interval a 4, b 4 : f a ) = 0.0088 f x ) = 0.000 f b ) = 0.009 f a ) f x ) < 0 a 4 = a =., b 4 = x =.06 Spočítáme chybu aproximace b a = 0.006 < ε = 0. Je dosaženo zadané přesnosti. Vše si zapíšeme do tabulky: i a i f a i ) x i f x i ) b i f b i ) b i a i / 0..5 +. + 0.05..5 +.5 + 0.05..5 +.5 + 0.05..06 +.5 + 0.006 Kořen rovnice je: x =. ± 0.0. 9
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC Příklad.: Newtonovou metodou určete všechny kořeny rovnice: s přesností ε = 0 6. x = ln0 x) 70 fx)=x ln0 x) 60 50 40 0 0 0 0 0 0 0 4 Z grafu vidíme, že kořen průsečík s osou x) leží v intervalu,. Vytabelujeme si na tomto intervalu hodnotu funkce f x) = x ln0 x) a zjistíme, že znaménko funkčních hodnot se mění mezi. a.. Funkce je spojitá na daném intervalu. Rovnice má jeden kořen na intervalu.,.. x....4.5.6.7.8 f x) -.97-0.855-0.4468 0.07 0.59.49.9678.7967.779 Spocítáme první a druhou derivaci: f x) = x ln0 x), f x) = x + 0 x, f x) = 6 x + 0 x), Ověříme předpoklady metody: f a) f a) = 0.4468 4.46 = 0.008 < 0. = b a a vidíme, že podmínka není splněna. Musíme zmenšit interval, na kterém hledáme kořen. 0
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC 0.6 fx)=x ln0 x) 0.4 0. 0 0. 0.4 0.6 0.8..5..5..5.4.45 Z grafu vidíme, ze kořen leží v intervalu.5,.. A opět začneme ověřovat předpoklady metody, tentokrát na intervalu.5,. : f a) f a) = 0.59 4.808 = 0.0450 < 0.05 = b a f b) f b) = 0.07 5.849 = 0.0065 < 0.05 = b a x i f x i ) f x i ).5 4.808 7.5.6 4.877 7.57.7 4.95 7.6.8 5.099 7.69.9 5.07 7.75. 5.849 7.8 Z tabelace první a druhé derivace na intervalu.5,. můžeme usoudit, že: f x) > 0 na.5,. f x) > 0 na.5,.. Jsou tedy splněny předpoklady Newtonovy metody. Zvolíme počáteční aproximaci x 0 = b =.. Spočítáme další aproximaci x : x = x 0 f x 0) f x 0 ) =. 0.0676974946 5.849458756 =.950485098864
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC a chybu aproximace x x 0 = 0.0064954906 < ε = 0 6. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = x f x ) f x ) =.950485098864 0.00064567995 5.478845 =.947805989 a chybu aproximace x x = 0.000004584875 < ε = 0 6. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = x f x ) f x ) =.947805989 0.000000009978 5.40705040059 =.94780468 a chybu aproximace x x 0 = 0.0000000007775 = 7.775 0 0 < ε = 0 6. Je dosaženo zadané přesnosti. Vše si zapíšeme do tabulky: i x i x i x i 0..950485098864 0.0064954906.947805989 0.000004584875.94780468 0.0000000007775 Kořen rovnice je: x =.947 ± 0 6 Příklad.4: Newtonovou metodou určete všechny kořeny rovnice: s přesností ε = 0 8. x 4 cos x) = 0 Nejprve separujeme kořeny rovnice. K tomu si nakreslíme graf funkce na intervalu 0, 5. Tento interval jsme zvolili proto, protože jsou na něm videt všechny kořeny rovnice.
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC 5 fx)=x 4cos x) 4 0 4 0 0.5.5.5.5 4 4.5 5 Z grafu vidíme, že naše rovnice má tři kořeny x,, x,, x, 4. Všechny tři kořeny aproximujeme Newtonovou metodou tak, jak jsme to už učinili v příkladu.. Nejdříve se tedy budeme zabývat prvním kořenem x. Nejdříve ho separujeme na menší interval o délce jední desetiny. Vytabelujeme si na intervalu, hodnoty funkce f x) = x 4 cos x) a zjistíme, že náš kořen x leží v intervalu,.. Spocítáme první a druhou derivaci: f x) = x 4 cos x), f x) = + 8 sinx) cosx) = + 4 sinx), f x) = 8 cosx) Ověříme předpoklady metody na intervalu,. : f a) f a) = 4 cos ) + 4 sin ) = 0.04 < 0. = b a f b) f b) =. 4 cos.) + 4 sin.) = 0.07 < 0. = b a
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC x i f x i ) f x i ).00 4.67 -.9.0 4.60 -.479.0 4.5677 -.674.0 4.508 -.759.04 4.495 -.8998.05 4.458-4.087.06 4.47-4.760.07 4.697-4.6.08 4.55-4.4455.09 4.804-4.5777.0 4.9-4.7080 Z tabelace první a druhé derivace na intervalu,. můžeme usoudit, že: f x) > 0 na,. f x) < 0 na,.. Jsou tedy splněny předpoklady Newtonovy metody, že první ani druhá derivace nemění na tomto intervalu znaménko. Zvolíme počáteční aproximaci x 0 = a =. Spočítáme další aproximaci x : x = x 0 f x 0) f x 0 ) = 4 cos ) + 4 sin ) =.0665509 a chybu aproximace x x 0 = 0.0665509 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = x f x ) f x ) =.0665509.0665509 4 cos.0665509) + 4 sin.0665509) =.06677657 a chybu aproximace x x = 0.000508565 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = x f x ) f x ) =.06677657.06677657 4 cos.06677657) + 4 sin.06677657) =.0667876095 a chybu aproximace x x = 0.0000000 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x 4 : x 4 = x f x ) f x ) =.06678760.06678760 4 cos.06678760) + 4 sin.06678760) =.06678760 a chybu aproximace x 4 x = 0.0000000000000 < ε = 0 8. Je dosaženo žádané přesnosti. Vše si zapíšeme do tabulky: 4
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC Kořen rovnice je: i x i x i x i 0.0665509750 0.0665509750.0667765680 0.000508565080.0667876095 0.000000009 4.0667876096 0.0000000000000 x =.066788 ± 0 8 Podobně to uděláme se zbývajícími kořeny. Tabelací funkce f x) = x 4 cos x) na intervalech,,, 4 zjistíme, že kořen x.4,.5 a kořen x.5,.6. Stejný postup jako výše provedeme nejdříve pro kořen x. Ověříme předpoklady metody na intervalu.4,.5 : f a) f a) =.4 4 cos.4) + 4 sin.4) = 0.08 < 0. = b a f b) f b) = 4 cos.) + 4 sin.) = 0.0 < 0. = b a x i f x i ) f x i ).40 -.9846 0.6999.4 -.9768 0.859.4 -.9674.08.4 -.9565.766.44 -.949.46.45 -.998.490.46 -.94.6489.47 -.8968.805.48 -.8780.9607.49 -.8576.54.50 -.856.69 Z tabelace první a druhé derivace na intervalu,. můžeme usoudit, že: f x) < 0 na.4,.5 f x) > 0 na.4,.5. Jsou tedy splněny předpoklady Newtonovy metody, že první ani druhá derivace nemění na tomto intervalu znaménko. Zvolíme počáteční aproximaci x 0 = a =.4. Spočítáme další aproximaci x : x = x 0 f x 0) f x 0 ) =.4.4 4 cos.4) + 4 sin.4) =.475869750 a chybu aproximace x x 0 = 0.0758698 < ε = 0 8. Ve výpočtu pokračujeme dál. 5
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC Spočítáme další aproximaci x : x = x f x ) f x ) =.4758698.4758698 4 cos.4758698) + 4 sin.4758698) =.47646766749 a chybu aproximace x x = 0.0008475 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = x f x ) f x ) =.47646766.47646766 4 cos.47646766) + 4 sin.47646766) =.476468047 a chybu aproximace x x = 0.000000840 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x 4 : x 4 = x f x ) f x ) =.476468047.476468047 4 cos.476468047) + 4 sin.476468047) =.476468047 a chybu aproximace x 4 x = 0.00000000000005 < ε = 0 8. Je dosaženo žádané přesnosti. Vše si zapíšeme do tabulky: Kořen rovnice je: i x i x i x i 0.4.475869750 0.075869750.47646766749 0.00084748546.4764680470806 0.0000008407057 4.47646804708 0.00000000000005 x =.47646805 ± 0 8 Nyní ještě provedeme stejný postup pro kořen x. Ověříme předpoklady metody na intervalu.5,.6 : f a) f a) =.5 4 cos.5) + 4 sin.5) = 0.00 < 0. = b a f b) f b) =.6 4 cos.6) + 4 sin.6) = 0.09 < 0. = b a 6
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC x i f x i ) f x i ).50.679 6.0.5.6877 5.949.5.7464 5.86.5.8040 5.705.54.8605 5.599.55.958 5.476.56.9700 5.586.57 4.00 5.87.58 4.0748 5.68.59 4.5 4.998.60 4.746 4.8668 Z tabelace první a druhé derivace na intervalu,. můžeme usoudit, že: f x) > 0 na.5,.6 f x) > 0 na.5,.6. Jsou tedy splněny předpoklady Newtonovy metody, že první ani druhá derivace nemění na tomto intervalu znaménko. Zvolíme počáteční aproximaci x 0 = a =.6. Spočítáme další aproximaci x : x = x 0 f x 0) f x 0 ) =.4.6 4 cos.6) + 4 sin.6) =.508850 a chybu aproximace x x 0 = 0.09849787 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = x f x ) f x ) =.508850.508850 4 cos.508850) + 4 sin.508850) =.5076966 a chybu aproximace x x = 0.0060080576 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x : x = x f x ) f x ) =.5076966.5076966 4 cos.5076966) + 4 sin.5076966) =.504799 a chybu aproximace x x = 0.00009577 < ε = 0 8. Ve výpočtu pokračujeme dál. Spočítáme další aproximaci x 4 : x 4 = x f x ) f x ) =.504799.504799 4 cos.504799) + 4 sin.504799) =.50479 a chybu aproximace x 4 x = 0.0000000007 < ε = 0 8. Je dosaženo žádané přesnosti. Vše si zapíšeme do tabulky: 7
KAPITOLA. ŘEŠENÍ NELINEÁRNÍCH ROVNIC i x i x i x i 0.6.508850578 0.0984978748.507696658 0.006008057646.5047995 0.000095769746 4.5047955 0.000000000756 Kořen rovnice je: x =.50479 ± 0 8 Kořeny rovnice jsou: x =.066788 ± 0 8 x =.47646805 ± 0 8 x =.50479 ± 0 8 8
KAPITOLA SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY Příklad.: Je dána matice A = 6 9 0 9 5. Vypočtěte LU-rozklad A = LU pomocí Gaussovy eliminační metody bez výběru hlavního prvku. Využijte nalezeného LU-rozkladu k určení řešení soustavy lineárních rovnic Ax = b, kde b = 9, 59, 8), inverzní matice A a determinantu det A. Gaussovou eliminační metodou dostáváme: 6 6 9 0 + 0 9 5 + 0 0 0 + 0 0 0 Matice U je výsledkem Gaussovy eliminační metody, matici L sestavíme z multiplikátorů s opačnými znaménky), které jsme použili během eliminace: 0 0 L = 6 0, U = 0. 0 0 0 Při řešení Ax = b nejprve spočteme y z Ly = b a potom z Ux = y vypočítáme x: y = 9 9 6y +y = 59 y = 5, y +y = 8 9
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY x x +x = 9 x x = 5 x = x = Inverzní matici vypočítáme tak, že řešíme soustavy Aa i = e i, i =,,, kde e i jsou sloupce jednotkové matice I = e, e, e ). Získané vektory a i jsou sloupci inverzní matice, tj. A = a, a, a ). Všechny tři soustavy budeme řešit současně, přičemž jejich řešení opět rozložíme do dvou kroků: y = 0 0 6y +y = 0 0 y +y = 0 0 x x +x = 0 0 x x = 6 0 x = 0 Y = A =. 0 0 6 0 0, 5 8 0 0 Determinant det A vypočítáme jako součin diagonálních prvků matic L a U: det A = det L det U = ) ) ) ) =.. Příklad.: Je dána matice A = 4 0 6 8 0 Vypočtěte LU-rozklad A = LU pomocí Gaussovy eliminační metody bez výběru hlavního prvku. Využijte nalezeného LU-rozkladu k určení řešení soustavy lineárních rovnic Ax = b, kde b = 9,, 4), inverzní matice A a determinantu det A.. Gaussovou eliminační metodou dostáváme: 4 0 4 0 + 0 6 8 0 + 0 6 + 4 0 0 0 Matice U je výsledkem Gaussovy eliminační metody, matici L sestavíme z multiplikátorů s opačnými znaménky), které jsme použili během eliminace: L = 0 0 0 0, U = 4 0 0 0 Při řešení Ax = b nejprve spočteme y z Ly = b a potom z Ux = y vypočítáme x: y = 9 y = y y +y = 4 y = 9 7., 0
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY x +4x +x = 9 x +x = x = 7 x = Inverzní matici vypočítáme tak, že řešíme soustavy Aa i = e i, i =,,, kde e i jsou sloupce jednotkové matice I = e, e, e ). Získané vektory a i jsou sloupci inverzní matice, tj. A = a, a, a ). Všechny tři soustavy budeme řešit současně, přičemž jejich řešení opět rozložíme do dvou kroků: y = 0 0 y = 0 0 y y +y = 0 0 x +4x +x = 0 0 x +x = 0 0 x = Y = A = 4 7. 0 0 0 0, 6 6 Determinant det A vypočítáme jako součin diagonálních prvků matic L a U: det A = det L det U = ) ) ) ) = 6.. Příklad.: Je dána matice A = 6 0 8 5 4 6. Vypočtěte LU-rozklad A = LU pomocí Gaussovy eliminační metody bez výběru hlavního prvku. Využijte nalezeného LU-rozkladu k určení řešení soustavy lineárních rovnic Ax = b, kde b = 0, 8, 8), inverzní matice A a determinantu det A. Gaussovou eliminační metodou dostáváme: 6 0 8 5 + 4 6 4 6 = + 6 0 0 4 0 4 + 6 0 0 4 0 0 Matice U je výsledkem Gaussovy eliminační metody, matici L sestavíme z multiplikátorů s opačnými znaménky), které jsme použili během eliminace: L = 0 0 0, U = 6 0 0 4 0 0 Nezapomínejte, že při výpočtu matice L Gaussovou eliminační metodou nesmíte měnit pořadí řádků, ani násobit řádky konstantou. Není proto možné vyhnout se práci se zlomky. V dalších úlohách se seznámite s LU-rozkladem s permutační maticí, který můžete použít v případech, kdy je prohození řádků nutné..
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY Při řešení Ax = b nejprve spočteme y z Ly = b a potom z Ux = y vypočítáme x: y = 0 0 y +y = 8 y y y = 8, +y = 8 4 6x +x = 0 +x +4x = 8 x = 4 x = Inverzní matici vypočítáme tak, že řešíme soustavy Aa i = e i, i =,,, kde e i jsou sloupce jednotkové matice I = e, e, e ). Získané vektory a i jsou sloupci inverzní matice, tj. A = a, a, a ). Všechny tři soustavy budeme řešit současně, přičemž jejich řešení opět rozložíme do dvou kroků: y = 0 0 y +y = 0 0 y y +y = 0 0 6x +x = 0 0 +x +4x = 6 0 x = 0 Y = 0. 0 0 0 6 A = 4 Determinant det A vypočítáme jako součin diagonálních prvků matic L a U: det A = det L det U = ) 6 )) = 4. 7 4 8, 4. Příklad.4: Je dána matice A = 4 0 6 6 0 6 0 0. Vypočtěte LU-rozklad A = LU pomocí Gaussovy eliminační metody bez výběru hlavního prvku. Využijte nalezeného LU-rozkladu k určení řešení soustavy lineárních rovnic Ax = b, kde b = 4,, 9, ), inverzní matice A a determinantu det A. Práce s čtvercovou maticí se čtyřmi řádky je o něco náročnější než v případě matic s menšími rozměry, postup je nicméně totožný. Gaussovou eliminační metodou dostáváme: 4 0 0 4 0 6 6 + 0 7 4 0 4 + 0 7 4 + 0 0 + 0 + 4 0 4 0 0 4 0 0 5 5 0 4 5 0 0 5 5 0 0 0 + 0 0 0
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY Matice U je výsledkem Gaussovy eliminační metody, matici L sestavíme z multiplikátorů s opačnými znaménky), které jsme použili během eliminace: 0 0 0 4 0 L = 0 0 0 0, U = 0 4 0 0 5 5. 5 0 0 0 Opět mějte stále na paměti, že tento algoritmus hledání LU-rozkladu zapovídá prohazování řádků a násobení řádků konstantou. Při řešení Ax = b nejprve spočteme y z Ly = b a potom z Ux = y vypočítáme x: y = 4 y +y = y +y = 9 y y + 5 y +y 4 = x 4x +x = 4 x +4x x 4 = 8 +5x +5x 4 = 0 x 4 = 5 y = x = 4 8 0 5 Inverzní matici vypočítáme tak, že řešíme soustavy Aa i = e i, i =,,, 4, kde e i jsou sloupce jednotkové matice I = e, e, e, e 4 ). Získané vektory a i jsou sloupci inverzní matice, tj. A = a, a, a, a 4 ). Všechny čtyři soustavy budeme řešit současně, přičemž jejich řešení opět rozložíme do dvou kroků: y = 0 0 0 0 0 0 y +y = 0 0 0 0 0 y Y = +y = 0 0 0 y y + 5 y 0, +y 4 = 0 0 0 5 6 7 0 5 x 4x +x = 0 0 0 7 8 7 7 x +4x x 4 = 0 0 +5x +5x 4 = A = 8 5 0. x 4 = 6 7 5 0 5 0 Determinant det A vypočítáme jako součin diagonálních prvků matic L a U: 5,. det A = det L det U = ) ) ) 5 )) = 60. Příklad.5: Je dána matice A = 4 0 8 5 0 4 7 8 8. Vypočtěte LU-rozklad A = LU pomocí Gaussovy eliminační metody bez výběru hlavního prvku. Využijte nalezeného LU-rozkladu k určení řešení soustavy lineárních rovnic
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY Ax = b, kde b = 6,, 5, ), inverzní matice A a determinantu det A. Gaussovou eliminační metodou dostáváme: 4 0 4 0 8 5 0 4 + 7 8 0 0 + 0 + 8 + 0 5 4 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + Matice U je výsledkem Gaussovy eliminační metody, matici L sestavíme z multiplikátorů s opačnými znaménky), které jsme použili během eliminace: 0 0 0 4 0 L = 0 0 0, U = 0 0 0 0. 0 0 0 Při řešení Ax = b nejprve spočteme y z Ly = b a potom z Ux = y vypočítáme x: y = 6 6 y +y = y = y y +y = 5 6, y y +y +y 4 = 4x x +x 4 = 6 x +x 4 = x +x 4 = 6 x 4 = Inverzní matici vypočítáme tak, že řešíme soustavy Aa i = e i, i =,,, 4, kde e i jsou sloupce jednotkové matice I = e, e, e, e 4 ). Získané vektory a i jsou sloupci inverzní matice, tj. A = a, a, a, a 4 ). Všechny čtyři soustavy budeme řešit současně, přičemž jejich řešení opět rozložíme do dvou kroků: y = 0 0 0 0 0 0 y +y = 0 0 0 Y = 0 0 y y +y = 0 0 0 0, y y +y +y 4 = 0 0 0 4x x +x 4 = 0 0 0 x +x 4 = 0 0 x +x 4 = 0 x 4 = x = A = 4. + 9 8 8 9 8 8 5 7 Determinant det A vypočítáme jako součin diagonálních prvků matic L a U: det A = det L det U = ) 4 ) ) )) = 8.. 4
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY Příklad.6: Je dána matice A = 4 0 4 6 6 8 0 0. Vypočtěte LU-rozklad A = LU pomocí Gaussovy eliminační metody bez výběru hlavního prvku. Využijte nalezeného LU-rozkladu k určení řešení soustavy lineárních rovnic Ax = b, kde b = 5,,, 9), inverzní matice A a determinantu det A. Gaussovou eliminační metodou dostáváme: 4 4 0 4 + 6 6 0 + 0 7 + 8 0 0 + 0 6 4 4 0 0 0 0 0 0 0 0 0 + 0 0 0 Matice U je výsledkem Gaussovy eliminační metody, matici L sestavíme z multiplikátorů s opačnými znaménky), které jsme použili během eliminace: 0 0 0 4 L = 0 0 0, U = 0 0 0. 0 0 0 Při řešení Ax = b nejprve spočteme y z Ly = b a potom z Ux = y vypočítáme x: y = 5 5 y +y = y = 4 y +y +y = 6, y +y y +y 4 = 9 4x +x +x x 4 = 5 x +x x 4 = 4 x x 4 = 6 x 4 = Inverzní matici vypočítáme tak, že řešíme soustavy Aa i = e i, i =,,, 4, kde e i jsou sloupce jednotkové matice I = e, e, e, e 4 ). Získané vektory a i jsou sloupci inverzní matice, tj. A = a, a, a, a 4 ). Všechny čtyři soustavy budeme řešit současně, přičemž jejich řešení opět rozložíme do dvou kroků: y = 0 0 0 0 0 0 y +y = 0 0 0 Y = 0 0 y +y +y = 0 0 0 0, y +y y +y 4 = 0 0 0 4 5 5 x =. +
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY 4x +x +x x 4 = 0 0 0 x +x x 4 = 0 0 x x 4 = 0 x 4 = 4 5 A = 4 4 4 0 4 5 Determinant det A vypočítáme jako součin diagonálních prvků matic L a U: det A = det L det U = ) 4) )) =. 4. Příklad.7: Je dána matice 7 A = 8. 5 Vypočtěte LU-rozklad s permutační maticí, tj. rozklad PA = LU, pomocí Gaussovy eliminační metody s výběrem hlavního prvku. Při výpočtu LU-rozkladu s permutační maticí budeme postupovat takto: vytvoříme pomocné matice Ũ = A, P = I a L = I = jednotková matice); v matici Ũ provádíme dopředný chod Gaussovy eliminační metody s výběrem hlavního prvku; v matici P přehazujeme řádky stejně jako v matici Ũ; do matice L zapíšeme v každé fázi multiplikátory s opačnými znaménky) a při přehození řádků v Ũ přehodíme v L řádky i sloupce; nakonec dostáváme P = P, L = L a U = Ũ. Výpočet tedy zahájíme tím, že definujeme pomocné matice Ũ, P a L. 7 0 0 0 0 Ũ = 8, P = 0 0, L = 0 0 5 0 0 0 0. Po výběru hlavního prvku v první fázi tj. v absolutní hodnoty největšího prvku v prvním sloupci): 8 Ũ = 7 + 5 +, P = 0 0 0 0 0 0, L = 0 0 0 0 0 0. Po eliminaci v první fázi s multiplikátory m = a m = : 8 0 0 0 0 Ũ = 0 0, P = 0 0, L = 0 0 4 0 0 0. 6
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY Po výběru hlavního prvku ve druhé fázi bez prohození druhého a třetího řádku bychom v eliminaci vůbec nemohli pokračovat!): 8 Ũ = 0 4 0 0 0 + 0 0 0 0, P = 0 0, L = 0. 0 0 0 Eliminace ve druhé fázi je multiplikátorem m = 0, čili veskrze symbolická: Výsledkem jsou matice 8 0 0 0 0 Ũ = 0 4, P = 0 0, L = 0. 0 0 0 0 0 P = P, L = L, U = Ũ. Můžete si vyzkoušet, že skutečně platí PA = LU. Poznámka. Mohli byste považovat za nevýhodu, že získaný tvar ve skutečnosti není rozkladem matice A. Ten byste dostali jeho vynásobením obou stran rovnosti zleva maticí P. Výpočet inverzní matice k permutační matici je naštěstí velice snadný, platí totiž P = P. Matici A proto můžeme rozložit na součin takto: A = P LU = P LU, neboli 7 0 0 0 0 8 8 = 0 0 0 0 4. 5 0 0 0 0 0 Příklad.8: Je dána matice 8 A = 9 6 6. 6 Vypočtěte LU-rozklad s permutační maticí, tj. rozklad PA = LU, pomocí Gaussovy eliminační metody s výběrem hlavního prvku. Při výpočtu LU-rozkladu s permutační maticí budeme postupovat takto: vytvoříme pomocné matice Ũ = A, P = I a L = I = jednotková matice); v matici Ũ provádíme dopředný chod Gaussovy eliminační metody s výběrem hlavního prvku; v matici P přehazujeme řádky stejně jako v matici Ũ; do matice L zapíšeme v každé fázi multiplikátory s opačnými znaménky) a při přehození řádků v Ũ přehodíme v L řádky i sloupce; nakonec dostáváme P = P, L = L a U = Ũ. 7
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY Výpočet tedy zahájíme tím, že definujeme pomocné matice Ũ, P a L. 8 Ũ = 9 6 6 6 0 0 0, P = 0 0 0 0 0 0 0 0 0 0 0 0, L = 0 0 0 0 0 0 0 0 0. Po výběru hlavního prvku v první fázi tj. v absolutní hodnoty největšího prvku v prvním sloupci): 6 Ũ = 9 6 8 6 + + + 0 0 0 0 0 0, P = 0 0 0 0 0 0, L = 0 0 0 0 0 0. 0 0 0 0 0 0 Po eliminaci v první fázi s multiplikátory m =, m = a m 4 = : 6 0 0 0 0 0 0 0 0 Ũ = 5 0 5 4 0, P = 0 0 0 0 0 0, L = 0 0 0 9 0 0 5 4 0 0 0 0 0. Po výběru hlavního prvku ve druhé fázi toho docílíme prohozením druhého a čtvrtého řádku): 6 0 9 5 4 9 5 Ũ = 0 5 4 0 + 0 0 5 0 9 + 0 0 0 0 0 0, P = 0 0 0 0 0 0, 0 0 L = 0 0. 0 0 0 0 0 Při eliminaci ve druhé fázi jsme použili multiplikátory m = 5 9 a m = 0 9 : 6 0 9 5 4 Ũ = 0 0 0 0 0 59 5 9 9 9 0 9 0 0 0 0 0 0, P = 0 0 0 0 0 0 0 0, L = 5 9 0 0 0 0 0 9 0. Po výběru hlavního prvku ve třetím kroku prohozením třetího a čtvrtého řádku): 6 0 9 5 4 Ũ = 0 0 59 5 9 9 0 0 0 9 0 9 0 59 Nakonec provedeme eliminaci koeficientem m 4 = 0 59 : + 0 0 0 0 0 0, P = 0 0 0 0 0 0, 0 0 L = 0 9 0. 0 0 0 5 9 0 8
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: PŘÍMÉ METODY 6 0 0 0 0 0 0 0 9 5 4 Ũ = 0 0 59 5 9 9, P = 0 0 0 0 0 0, 0 0 L = 0 9 0. 0 0 0 59 0 0 0 5 0 5 9 59 Výsledkem jsou matice P = P, L = L, U = Ũ. Můžete si vyzkoušet, že skutečně platí PA = LU. 9
KAPITOLA SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Příklad.: Vyřešte soustavu lineárních rovnic x +x +x = 0, x +x x = 9, x +x +x = 0, pomocí Jacobiho iterační metody s přesností ɛ = 0. Než aplikujeme rekurentní vzorce pro Jacobiho metodu, musíme zajistit, aby posloupnost vektorů, kterou metoda vytváří, konvergovala ke správnému výsledku. Z teorie víme, že konvergence je zaručena, pokud je matice soustavy ostře diagonálně dominantní v ostatních případech konvergovat může, ale také nemusí). Pro tento účel stačí přehodit první a třetí rovnici a následně přičíst první rovnici ke druhé rovnici. Dostaneme pak: Matice soustavy x +x +x = 0, x +x = 9, x +x +x = 0. 0 je ostře diagonálně dominantní, neboť absolutní hodnoty prvků na diagonále jsou ostře) větší než součty absolutních hodnot ostatních prvků na příslušných řádcích, tj. > +, > + 0 a > +. 0
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Upravenou soustavu převedeme na iterační tvar x = 0 x x ), x = 9 x ), x = x x ) a připsáním iteračních indexů dostaneme rekurentní vzorce pro Jacobiho metodu x k+) = 0 xk) x k) x k+) = 9 xk) ), x k+) = xk) x k) ). Poznamenejme, že rekurentní vzorce můžeme zapsat také v maticovém tvaru, který je obzláště výhodný při řešení úlohy pomocí počítačového softwaru. x k+) x k+) x k+) 0 = 0 0 0 x k) x k) x k) ), + Protože výpočet konverguje pro libovolnou počáteční aproximaci x 0) = x 0) zvolíme pro jednoduchost x 0) =,, ). Dosadíme do pravé strany rekurentních vzorců a vypočteme Jestliže takto pokražujeme dále, dostáváme Současně přitom zjišťujeme, zda platí takže postupně počítáme x ) =.6667, 5.6667, 0 ). x ) =.4444, 4.5556, ), 0 9 0 x ) =.48, 5.704,.070 ), atd. x k) x k ) R 0,., x0), x0) ), x ) x 0) R = max{.6667, 5.6667, 0 } = 4.6667, x ) x ) R = max{.4444.6667, 4.5556 5.6667, 0 } =., atd. Výpočet zapíšeme do tabulky: k x k) x k) x k) x k) x k ) R 0.6667 5.6667 0 4.6667.4444 4.5556.0000..48 5.704.070 0.848 4.8889 4.90.074 0.469 5.0576 5.074.004 0.78 6.9767 4.966.0055 0.5 7.046 5.055 0.9950 0.0540 8.99 4.990.000 0.05 9.004 5.0046 0.9990 0.04 0.998 4.9978.0004 0.0068
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Ukončili jsem po jedenácté iteraci, protože x 0) x 9) R = 0.0068 0. Požadovaná přesnost je ε = 0, proto jednotlivé souřadnice výsledku zaokrouhlíme na desetinná místa. Výsledek zapíšeme jako x =.00 ± 0, x = 5.00 ± 0, x =.00 ± 0. Příklad.: Vyřešte soustavu lineárních rovnic x +x +5x = 6, 5x +x +x = 8, 7x +7x +7x = 4, pomocí Gaussovy-Seidelovy iterační metody s přesností ε = 0. Z teorie víme, že konvergence Gaussovy-Seidelovy metody je zaručena, pokud je matice soustavy ostře diagonálně dominantní v ostatních případech konvergovat může, ale také nemusí). Pro dosažení takové matice můžeme například nejprve umístit druhou rovnici na první pozici, třetí rovnici na druhou pozici a první rovnici na třetí pozici: 5x +x +x = 8, 7x +7x +7x = 4, x +x +5x = 6, Pak již jen stačí odečíst první a třetí rovnici od druhé rovnice: Matice soustavy 5x +x +x = 8, x +5x +x = 0, x +x +5x = 6. 5 5 5 je ostře diagonálně dominantní, neboť absolutní hodnoty prvků na diagonále jsou ostře) větší než součty absolutních hodnot ostatních prvků na příslušných řádcích, tj. 5 > +, 5 > + a 5 > +. Upravenou soustavu převedeme na iterační tvar x = 5 8 x x ), x = 5 0 x x ), x = 5 6 x x ) a připsáním iteračních indexů dostaneme rekurentní vzorce pro Gaussovu-Seidelovu metodu x k+) = 5 8 xk) x k) ), x k+) = 5 0 xk+) x k) ), x k+) = 5 6 xk+) x k+) ).
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Protože výpočet konverguje pro libovolnou počáteční aproximaci x 0) = x 0) zvolíme pro jednoduchost x 0) =,, ). Dosadíme do pravé strany rekurentních vzorců a vypočteme Jestliže takto pokražujeme dále, dostáváme Současně přitom zjišťujeme, zda platí takže postupně počítáme x ) = 4,.6, 0.9 ). x ) =.96,.97,.007 ), x ) =.998,,.004 ), atd. x k) x k ) R 0, x ) x 0) R = max{ 4,.6, 0.9 } = 5,, x0), x0) ), x ) x ) R = max{.96 + 4,.97.6,.007 + 0.9 } = 0.7, x ) x ) R = 0.0568, atd. Výpočet zapíšeme do tabulky: k x k) x k) x k) x k) x k ) R 0 4.0000.6000 0.900 5.0000.960.97.0070 0.7.998.0000.004 0.0568 4.9997.000.000 0.0069 Ukončili jsem po jedenácté iteraci, protože x 4) x ) R = 0.0069 0. Požadovaná přesnost je ε = 0, proto jednotlivé souřadnice výsledku zaokrouhlíme na desetinná místa. Výsledek zapíšeme jako x = 4.00 ± 0, x =.00 ± 0, x =.00 ± 0. Příklad.: Vyřešte soustavu lineárních rovnic x +x +x =, 5x x 4x =, x +4x x =, jak pomocí Jacobiho, tak pomocí Gaussovy-Seidelovy iterační metody s přesností ε = 0. Všímejte si odlišností obou metod.
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Aby metody konvergovaly, je třeba převést soustavu rovnic do ekvivalentního tvaru, jehož matice soustavy je ostře diagonálně dominantní. Zdůrazněme, že tato postačující podmínka konvergence je pro obě metody společná! Všimněte si, že v matici soustavy nenajdeme na žádném řádku ostře dominantní prvek ve smyslu, že by byl v absolutní hodnotě ostře) větší než součet absolutních hodnot prvků zbylých. Vhodné ekvivalentní úpravy se nám proto budou hledat obtížněji, protože však je matice soustavy regulární má nenulový determinant - ověřte si!), takové úpravy nutně existují. Se soustavou budeme pracovat v maticovém tvaru, protože je to přehlednější. Po krátkém experimentování ovšem s vědomím toho, co chceme získat) dostáváme následující úpravy: 5 4 4 + 5 0 4 5 4 + 5 4 5 0 4 8 0 5 0 4. 5 4 V tuto chvíli jsme získali ostrou diagonální dominanci na prvním a druhém řádku. Na třetím řádku bychom měli rádi dominantní třetí prvek tj. 4), přičemž nám vadí první prvek tj. 5). Nabízí se odečíst od třetího řádku první na první pozici pak bude místo 5 menší ), jenže tím dominance nedosáhneme. Ukázalo se, že odečtení celého prvního řádku bylo příliš hrubou operací. Zkusme tedy být jemnější a od třetího řádku odečíst 5 8 prvního řádku. Po provedení závěrečné kosmetické úpravy dostaneme: 8 0 5 0 4 5 4 8 0 5 0 4. 0 8 9 Zapsáno opět v rovnicovém tvaru tedy: 5 8 + 8 0 5 0 4 0 4 9 8 8 Matice soustavy 8x x =, x +5x = 4, 8x +x = 9. 8 0 5 0. 0 8 je samozřejmě ostře diagonálně dominantní, neboť absolutní hodnoty prvků na diagonále jsou ostře) větší než součty absolutních hodnot ostatních prvků na příslušných řádcích, tj. 8 > 0 +, 5 > + 0 a > 0 + 8. 4
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Upravenou soustavu převedeme do iteračního tvaru x = 8 + x ), x = 5 4 x ), x = 9 8x ). V tuto chvíli je třeba napsat rekurentní vzorce a ty jsou u Jacobiho i Gaussovy-Seidelovy metody odlišné. Nejprve rekurentní vzorce pro Jacobiho metodu: x k+) = 8 + xk) x k+) = 5 4 xk) x k+) = ), ), 9 8xk) ). A dále rekurentní vzorce pro Gaussovu-Seidelovu metodu: x k+) = 8 + xk) ), x k+) = 5 4 xk+) x k+) = ), 9 8xk+) ). Výpočet konverguje pro libovolnou počáteční aproximaci x 0) = x 0) metod tedy zvolíme pro například x 0) =,, )., x0), x0) ), u obou Dosadíme do pravé strany rekurentních vzorců a vypočteme první prvky. V případě Jacobiho metody dostaneme x ) = 8, 5, 85 ). Po prvním kroku je hodnota chyby x ) x 0) R = max{ 8, 5 V případě Gaussovy-Seidelovy metody to bude 85 6, } = > 0. a chyba bude mít hodnotu x ) = 8, 09 40, 78 55 ) x ) x 0) R = max{ 8, 09 40, 78 55 } = 55 > 0. Výpočet opakujeme, dokud není chyba menší nebo rovna 0. Výpočty zapíšeme do tabulek. Jacobiho metoda: Gaussova-Seidelova metoda: k x k) x k) x k) x k) x k ) R 0 0.750.750.64.64 0.94.6.770 0.559 0.944.6.778 0.00 4 0.9444.6.778 0.000 5
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY k x k) x k) x k) x k) x k ) R 0 0.750.6000.866.866.0909.750.88 0.759 0.9455.588.64 0.455 4 0.94.609.884 0.05 5 0.947.6.779 0.00 6 0.9445.606.770 0.006 Jacobiho metodu jsme ukončili po šesté iteraci a Gaussovu-Seidelovu po čtvrté iteraci. Požadovaná přesnost je ε = 0, proto jednotlivé souřadnice výsledku zaokrouhlíme na desetinná místa. Výsledky obou metod jsou totožné všimněte si však, že na dalších desetinných místech se liší) a zapíšeme je jako x = 0.94 ± 0, x =.6 ± 0, x =.8 ± 0. Příklad.4: Vyřešte soustavu lineárních rovnic 6x +x +x +x 4 = 7, x +5x +x 4 = 9, x +6x +5x =, x +x x +5x 4 =. pomocí Jacobiho iterační metody s přesností ε = 0. Než aplikujeme rekurentní vzorce pro Jacobiho metodu, musíme zajistit, aby posloupnost vektorů, kterou metoda vytváří, konvergovala ke správnému výsledku. Z teorie víme, že konvergence je zaručena, pokud je matice soustavy ostře diagonálně dominantní v ostatních případech konvergovat může, ale také nemusí). Pro tento účel stačí od třetí rovnice odečíst rovnici druhou a dostaneme: Matice soustavy 6x +x +x +x 4 = 7, x +5x +x 4 = 9, x +x +5x x 4 =, x +x x +5x 4 =. 6 5 0 5 5 je ostře diagonálně dominantní, neboť absolutní hodnoty prvků na diagonále jsou ostře) větší než součty absolutních hodnot ostatních prvků na příslušných řádcích, tj. 6 > + +, 5 > + 0 +, 5 > + + a 5 > + +. 6
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Upravenou soustavu převedeme na iterační tvar x = 6 7 x x x 4 ), x = 5 9 x x 4 ), x = 5 + x x + x 4 ), x 4 = 5 x x + x ) a připsáním iteračních indexů dostaneme rekurentní vzorce pro Jacobiho metodu x k+) = 6 7 + xk) + x k) + x k) 9 xk) x k) 4 ), x k+) = 5 x k+) = 5 x k+) 4 = 5 4 ), + xk) x k) + x k) 4 ), xk) x k) + x k) ). Poznamenejme, že rekurentní vzorce můžeme zapsat také v maticovém tvaru, který je obzláště výhodný při řešení úlohy pomocí počítačového softwaru. x k+) x k+) x k+) x k+) 4 0 6 6 = 5 0 0 5 5 5 0 4 5 5 5 0 x k) x k) x k) x k) 4 + 7 6 9 5 5 5 Protože výpočet konverguje pro libovolnou počáteční aproximaci x 0) = x 0) zvolíme pro jednoduchost x 0) = 0, 0, 0, 0 ). Dosadíme do pravé strany rekurentních vzorců a vypočteme Jestliže takto pokražujeme dále, dostáváme x ) = 7 6, 9 5, 5, 5 ). x ) =.,.4, 0.99,.467 ),. x ) =.7,.97,.04,.9907 ), atd. Současně přitom zjišťujeme, zda platí takže postupně počítáme x ) x 0) R = max{ 7 6., 9 5 =.8, x ) x ) R =.6, x ) x ) R = 0.8440, atd. Výpočet zapíšeme do tabulky: x k) x k ) R 0, 7 +.4, 5, x0), x0), x0) 4 ), + 0.99, 5.467 }
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY k x k) x k) x k) x k) 4 x k) x k ) R 0 0 0 0 0.8.8000.4000.4000.8..4 0.99.467.6.7.97.04.9907 0.8440 4.07.8866.07.0878 0.96 5.040.045.007.9558 0.79 6.984.007 0.9959.9885 0.056 7.996.994.0040.0086 0.00 8.006.000.0007.9989 0.0097 Ukončili jsem po osmé iteraci, protože x 8) x 7) R = 0.0097 0. Požadovaná přesnost je ε = 0, proto jednotlivé souřadnice výsledku zaokrouhlíme na desetinná místa. Výsledek zapíšeme jako x =.00 ± 0, x =.00 ± 0, x =.00 ± 0, x 4 =.00 ± 0. Příklad.5: Vyřešte soustavu lineárních rovnic 6x +x +x +x 4 = 6, x 5x x +x 4 =, x x 5x +x 4 =, 5x 6x +7x 4 = 54. pomocí Gaussovy-Seidelovy iterační metody s přesností ε = 0. Z teorie víme, že konvergence Gaussovy-Seidelovy metody je zaručena, pokud je matice soustavy ostře diagonálně dominantní v ostatních případech konvergovat může, ale také nemusí). Pro dosažení takové matice soustavy stačí od čtvrté rovnice odečíst rovnici třetí a dostaneme: 6x +x +x +x 4 = 6, x 5x x +x 4 =, x x 5x +x 4 =, x +x x +6x 4 =. Matice soustavy 6 5 5 6 je ostře diagonálně dominantní, neboť absolutní hodnoty prvků na diagonále jsou ostře) větší než součty absolutních hodnot ostatních prvků na příslušných řádcích, tj. 6 > + +, 5 > + +, 5 > + + a 6 > + +. Upravenou soustavu převedeme na iterační tvar x = 6 6 x x x 4 ), x = 5 x + x x 4 ), x = 5 x + x x 4 ), x 4 = 6 x x + x ) 8
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY a připsáním iteračních indexů dostaneme rekurentní vzorce pro Gaussovu-Seidelovu metodu x k+) = 6 6 xk) x k) x k) 4 ), x k+) = 5 xk+) + x k) x k) 4 ), x k+) = 5 xk+) + x k+) x k) 4 ), x k+) 4 = 6 xk+) x k+) + x k+) ) Protože výpočet konverguje pro libovolnou počáteční aproximaci x 0) = x 0) zvolíme pro jednoduchost x 0) =,,, ). Dosadíme do pravé strany rekurentních vzorců a vypočteme x ) =.8, 0.7667, 4.58, 5.78 ). Jestliže takto pokražujeme dále, dostáváme x ) =.7585,.767, 4.05, 5.994 ), x ) = 0.847,.99,.95, 4.900 ), atd. Současně přitom zjišťujeme, zda platí takže postupně počítáme x k) x k ) R 0,, x0), x0), x0) 4 ), x ) x 0) R = max{.8, 0.7667, 4.58, 5.78 } = 5.58, x ) x ) R =.044, x ) x ) R = 0.968, atd. Výpočet zapíšeme do tabulky: k x k) x k) x k) x k) 4 x k) x k ) R 0 0 0 0 0.8 0.7667 4.5800 5.78 5.5800.7585.767 4.05 5.994.044 0.847.99.95 4.900 0.968 4 0.954.954.998 4.986 0.85 5.087.989 4.008 5.0098 0.0645 6.007.005.9998 5.0000 0.07 7 0.998.000.999 4.999 0.0049 Ukončili jsem po sedmé iteraci, protože x 7) x 6) R = 0.0049 0. Požadovaná přesnost je ε = 0, proto jednotlivé souřadnice výsledku zaokrouhlíme na desetinná místa. 9
KAPITOLA. SOUSTAVY LINEÁRNÍCH ROVNIC: ITERAČNÍ METODY Výsledek zapíšeme jako x =.00 ± 0, x =.00 ± 0, x = 4.00 ± 0, x 4 = 5.00 ± 0. 40
KAPITOLA 4 INTERPOLACE A APROXIMACE FUNKCÍ Příklad 4.: Pro uzly x i a funkční hodnoty y i dané následující tabulkou i= i= i= i=4 i=5 x i 0 y i 0 0 sestavte interpolační polynom v Lagrangeově tvaru. Interpolační polynom v Lagrangeově tvaru je určen předpisem px) = y 0 ϕ 0 x) + y ϕ x) + y ϕ x) + y ϕ x) + y 4 ϕ 4 x), kde ϕ 0 x), ϕ x), ϕ x), ϕ x), ϕ 4 x) jsou polynomy Lagrangeovy báze dané úlohy: ϕ 0 x) = ϕ 0 x) = ϕ 0 x) = ϕ 0 x) = ϕ 0 x) = Dohromady pak dostáváme x + )x 0)x )x ) + ) 0) ) ) = xx + )x )x ), 80 x + )x 0)x )x ) + ) 0) ) ) = xx + )x )x ), 4 x + )x + )x )x ) 0 + )0 + )0 )0 ) = x + )x + )x )x ), 8 x + )x + )x 0)x ) + ) + ) 0) ) = xx + )x + )x ), 0 x + )x + )x 0)x ) + ) + ) 0) ) = xx + )x + )x ), 7 4
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ px) = xx + )x )x ) x + )x + )x )x ) 80 8 xx + )x + )x ). 4 Příklad 4.: Pro uzly x i a funkční hodnoty y i dané následující tabulkou i= i= i= i=4 x i 0 y i 0 0 sestavte interpolační polynom v Newtonově tvaru. Interpolační polynom v Newtonově tvaru je určen předpisem px) = y 0 + f [x, x 0 ]x x 0 ) + f [x, x, x 0 ]x x 0 )x x ) + + f [x, x, x, x 0 ]x x 0 )x x )x x ) + + f [x 4, x, x, x, x 0 ]x x 0 )x x )x x )x x ), kde f [x, x 0 ], f [x, x, x 0 ], f [x, x, x, x 0 ] a f [x 4, x, x, x, x 0 ] jsou poměrné diference.,.,. a 4. řádu. Poměrné diference prvního řádu. Spočítáme všechny poměrného diference prvního řádu podle vzorce: f [x i+, x i ] = f i+ f i x i+ x i pro i = 0,,..., n V tomto příkladě je počet uzlů n = 5, budou tedy čtyři poměrné diference prvního řádu: pro i = 0 f [x, x 0 ] = f f 0 x x 0 = 0 ) = pro i = f [x, x ] = f f x x = 0 0 ) = pro i = f [x, x ] = f f = 0 ) = x x 0 pro i = f [x 4, x ] = f 4 f = 0 x 4 x = Poměrné diference druhého řádu. Spočítáme všechny poměrného diference druhého řádu podle vzorce: f [x i+, x i+, x i ] = f [x i+, x i+ ] f [x i+, x i ] x i+ x i pro i = 0,,..., n 4
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ Poměrné diference druhého řádu budou tři: pro i = 0 f [x, x, x 0 ] = f [x, x ] f [x, x 0 ] = x x 0 0 ) = 6 pro i = f [x, x, x ] = f [x, x ] f [x, x ] x x = ) ) = pro i = f [x 4, x, x ] = f [x 4, x ] f [x, x ] x 4 x = ) ) = 7 6 Poměrné diference třetího řádu. Spočítáme všechny poměrného diference třetího řádu podle vzorce: f [x i+, x i+, x i+, x i ] = f [x i+, x i+, x i+ ] f [x i+, x i+, x i ] x i+ x i pro i = 0,,..., n Poměrné diference třetího řádu budou dvě: pro i = 0 f [x, x, x, x 0 ] = f [x, x, x ] f [x, x, x 0 ] x x 0 = 6 ) ) = 5 pro i = f [x 4, x, x, x ] = f [x 4, x, x ] f [x, x, x ] x 4 x = 7 6 ) = 5 Poměrné diference čtvrtého řádu. Spočítáme poměrnou diference čtvrtého řádu podle vzorce: f [x i+4, x i+, x i+, x i+, x i ] = f [x i+4, x i+, x i+, x i+ ] f [x i+, x i+, x i+, x i ] x i+4 x i pro i = 0,,..., n 4 Poměrná diference čtvrého řádu bude jedna: pro i = 0 f [x 4, x, x, x, x 0 ] = f [x 4, x, x, x ] f [x, x, x, x 0 ] x 4 x 0 = 5 5 ) = 0 Poměrných diference lze zapsat do tabulky: i x i y i.řád.řád.řád 4.řád 0 6 0 5 0 7 6 0 4 5 0 4
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ Interpolační polynom v Newtonově tvaru je určen předpisem: px) = f 0 + f [x, x 0 ]x x 0 ) + f [x, x, x 0 ]x x 0 )x x ) + + f [x, x, x, x 0 ]x x 0 )x x )x x ) + + f [x 4, x, x, x, x 0 ]x x 0 )x x )x x )x x ), Pomocí hodnot vypočtených v prvním řádku tabulky sestavíme interpolační polynom: px) = x + ) 6 x + )x + ) + xx + )x + ) xx )x + )x + ). 5 0 Příklad 4.: Pro uzly x i a funkční hodnoty y i dané následující tabulkou sestavte interpolační polynom: a) v základním tvaru, b) v Lagrangeově tvaru, c) v Newtonově tvaru. i= i= i= x i y i a) Interpolační polynom hledáme ve tvaru px) = a 0 + a x + a x. Dosazením do interpolačních požadavků px i ) = y i, i = 0,, dostaneme p ) = = a 0 a + 9a =, p ) = = a 0 a + a =, p) = = a 0 + a + a =. Tyto rovnosti představují soustavu lineárních rovnic, kterou je možno zapsat také ve tvaru 9 a 0 a =. a Vyřešením dostaneme a 0 = 8, a =, a = 5 8, takže hledaným interpolační polynom má tvar px) = 8 + x + 5 8 x. b) Interpolační polynom v Lagrangeově tvaru je určen předpisem px) = y 0 ϕ 0 x) + y ϕ x) + y ϕ x), kde ϕ 0 x), ϕ x), ϕ x) jsou polynomy Lagrangeovy báze dané úlohy: ϕ 0 x) = ϕ x) = ϕ x) = x + )x ) + ) ) = x + )x ), 8 x + )x ) + ) ) = x + )x ), 4 x + )x + ) + ) + ) = x + )x + ). 8 44
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ Dohromady pak dostáváme px) = 8 x + )x ) + 4 x + )x ) + x + )x + ). 4 c) Interpolační polynom v Newtonově tvaru je určen předpisem px) = y 0 + f [x, x 0 ]x x 0 ) + f [x, x, x 0 ]x x 0 )x x ), kde f [x, x 0 ] a f [x, x, x 0 ] jsou poměrné diference. a. řádu. Výpočet poměrných diferencí je proveden v následující tabulce: i x i y i.řád.řád 0 5 8 Pomocí hodnot vypočtených v prvním řádku tabulky sestavíme interpolační polynom: px) = x + ) + 5 x + )x + ). 8 px) = 8 + x + 5 8 x px) = 8 x + )x ) + 4 x + )x ) + x + )x + ) 4 px) = x + ) + 5 x + )x + ) 8 Příklad 4.4: Aproximujte následující data i= i= i= i=4 i=5 x i.5 5 7 y i 0 6.5 6 5 přímkou ϕx) = c x + c metodou nejmenších čtverců. Pro nalezení nejlepší aproximace ve smyslu nejmenších čtverců je třeba nejprve sestavit normální rovnice. Pokud hledáme aproximaci ve tvaru ϕx) = c ϕ x) + c ϕ x), kde c, c R jsou vhodné koeficienty, a v bodech x i máme předepsané hodnoty y i, přičemž i =,..., n, pak mají normální rovnice tvar n c ϕ x i )) n + c ϕ x i ) ϕ x i ) = i= i= n n c ϕ x i ) ϕ x i ) + c ϕ x i )) = i= i= n i= y i ϕ x i ) n y i ϕ x i ) i= 45
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ V našem případě je ϕ x) = x a ϕ x) = jedná se o konstantní funkci, která má v každém bodě hodnotu ). Nyní již soustavu normálních rovnic pro neznámé koeficienty c, c snadno zapíšeme. 5 c x 5 i + c x i = i= i= 5 5 c x i + c = i= i= 5 y i x i i= 5 y i i= Vypočítáme jednotlivé součty: 5 xi = +.5 + + 5 + 7 = 90.5 i= 5 x i = +.5 + + 5 + 7 = 8.5 i= 5 y i x i = 0 +.5 + 6.5 + 6 5 + 5 7 = 57 i= 5 y i = 0 + + 6.5 + 6 + 5 = 8.5 i= A dosadíme do soustavy lineárních rovnic: 90.5c + 8.5c = 57 8.5c + 5c = 8.5 Soustavu vyřešíme a dostaneme koeficienty c =.647, c =.049. Nalezená funkce má rovnici ϕx) =.647x.049. 46
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ 5 zadana data nalezena funkce 0 5 0 4 5 6 7 Příklad 4.5: Aproximujte následující data i= i= i= i=4 i=5 i=6 i=7 i=8 i=9 i=0 x i 0. 0.8 4.6 6. 6.6.5.8. 4.6 4.9 y i 9-4 -6-5 -59-55 -46-47 -46 funkcí ϕx) = c sin x + c ln x metodou nejmenších čtverců. Pro nalezení nejlepší aproximace ve smyslu nejmenších čtverců je třeba nejprve sestavit normální rovnice. Pokud hledáme aproximaci ve tvaru ϕx) = c ϕ x) + c ϕ x), kde c, c R jsou vhodné koeficienty, a v bodech x i máme předepsané hodnoty y i, přičemž i =,..., n, pak mají normální rovnice tvar n c ϕ x i )) n + c ϕ x i ) ϕ x i ) = i= i= n n c ϕ x i ) ϕ x i ) + c ϕ x i )) = i= i= n i= y i ϕ x i ) n y i ϕ x i ) i= V našem případě je ϕ x) = sin x a ϕ x) = ln x. Nyní již soustavu normálních rovnic pro neznámé koeficienty c, c snadno zapíšeme. 0 c sin 0 x i + c sin x i ln x i = i= i= 0 0 c ln x i sin x i + c ln x i = i= i= 0 y i sin x i i= 0 y i ln x i i= 47
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ Vypočítáme jednotlivé součty: 0 sin x i = sin 0.) + sin 0.8) + sin 4.6) + sin 6.) + sin 6.6) + sin.5) + i= + sin.8) + sin.) + sin 4.6) + sin 4.9) = 4.4748 0 sin x i ln x i = sin0.) ln0.) + sin0.8) ln0.8) + sin4.6) ln4.6) + i= + sin6.) ln6.) + sin6.6) ln6.6) + sin.5) ln.5) + + sin.8) ln.8) + sin.) ln.) + sin4.6) ln4.6) + + sin4.9) ln4.9) = 0.505 0 ln x i = ln 0.) + ln 0.8) + ln 4.6) + ln 6.) + ln 6.6) + ln.5) + i= + ln.8) + ln.) + ln 4.6) + ln 4.9) = 45.09 0 y i sin x i = 9 sin0.) + sin0.8) 4 sin4.6) 6 sin6.) i= 5 sin6.6) 59 sin.5) 55 sin.8) 46 sin.) 47 sin4.6) 46 sin4.9) = 8.564 0 y i ln x i = 9 ln0.) + ln0.8) 4 ln4.6) 6 ln6.) 5 ln6.6) i= 59 ln.5) 55 ln.8) 46 ln.) 47 ln4.6) 46 ln4.9) = 89.4086 A dosadíme do soustavy lineárních rovnic: 4.4748c + 0.505c = 8.564 0.505c + 45.09c = 89.4086 Soustavu vyřešíme a dostaneme koeficienty c = 9.7, c = 9.899. Nalezená funkce má rovnici ϕx) = 9.7 sin x 9.899 ln x. 48
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ 0 zadana data nalezena funkce 0 0 0 0 0 0 40 50 4 6 8 0 4 Příklad 4.6: Aproximujte následující data i= i= i= i=4 i=5 x i - - 4 8 y i 5.5 4.4 0.5 pomocí metody nejmenších čtverců nejprve přímkou ϕx) = c x + c a posléze funkcí ψx) = d sin x + d cos x. Určete, která ze získaných funkcí aproximuje zadaná data lépe. Nejprve je třeba sestavit normální rovnice. V obou případech jde o aproximaci tvaru ϕx) = c ϕ x) + c ϕ x), kde c, c R jsou vhodné koeficienty. Pokud máme v bodech x i předepsané hodnoty y i, přičemž i =,..., n, pak mají normální rovnice tvar n c ϕ x i )) n + c ϕ x i ) ϕ x i ) = i= i= n n c ϕ x i ) ϕ x i ) + c ϕ x i )) = i= i= n i= y i ϕ x i ) n y i ϕ x i ) i= Po zkušenostech získaných v předchozích úlohách jsme s normálními rovnicemi obeznámeni natolik, že se můžeme podívat, jak vypadá přepis do maticového tvaru: i= n ϕ x i )) i= n ϕ ) ) x i ) ϕ x i ) c i= n i= n ϕ x i ) ϕ x i ) i= n ϕ x i )) = y ) i ϕ x i ) c i= n y i ϕ x i ) 49
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ V prvním případě je ϕ x) = x, ϕ x) = a ve druhém ϕ x) = sin x, ϕ x) = cos x. Nyní již obě soustavy normálních rovnic snadno zapíšeme. Aproximace funkcí tvaru ϕx) = c x + c : 5 i= x i 5 i= x ) ) i c i= n 5 i= x i 5 i= = y ) ix i c i= n y i Po dosazení hodnot ze zadání dostaneme soustavu rovnic: ) ) ) 99 c. = 5.4 c Soustavu vyřešíme a dostaneme koeficienty zaokrouhleno na desetinná místa) c = 0.0, c =.6. Nalezená funkce má rovnici ϕx) = 0.0 x +.6. Aproximace funkcí tvaru ψx) = d sin x + d cos x: 5 i= sin x i 5 i= sin x ) i cos x i 5 i= cos x i sin x i 5 i= cos x i d d ) i= n = y ) i sin x i i= n y i cos x i Po dosazení hodnot ze zadání dostaneme soustavu rovnic zaokrouhleno na desetinná místa): ) ) ).4 0. d 0.87 = 0..76 7.6 Soustavu vyřešíme a dostaneme koeficienty zaokrouhleno na desetinná místa) c =.55, c =.7. Nalezená funkce má rovnici ψx) =.55 sin x.7 cos x. d Jak určit, která z aproximací je lepší? Někdy se to zdá být zjevné z obrázku, ale rádi bychom uměli dobrost aproximace měřit exaktně. Principem metody nejmenších čtverců je nalézt takovou funkci určitého tvaru, jejíž součet druhých mocnin tj. čtverců) rozdílů funkčních hodnot a zadaných hodnot v předepsaných bodech je co nejmenší. Pro měření dobrosti aproximace proto využijeme právě těchto součtů. Čím menší součet dostaneme, tím lepší je aproximace. V případě, že dostaneme soušet nulový, je aproximace ideální a předepsaných bodech nabývá předepsaných hodnot. Pro aproximaci ϕx) dat x i, y i, kde i =,..., n, definujeme chybu jako n i= ϕx i) y i ). Chyba aproximace ϕx) = 0.0x +.6 je proto 5 0.0x i +.6 y i ) = 8.9 i= Chyba aproximace ψx) =.55 sin x.7 cos x je proto 5.55 sin x i.7 cos x i y i ) =.5 i= 50
KAPITOLA 4. INTERPOLACE A APROXIMACE FUNKCÍ Protože.5 < 8.9, je lepší aproximací dat funkce ψx). 8 6 zadana data. nalezena funkce. nalezena funkce 4 0 4 6 0 4 5 6 7 8 Příklad 4.7: Aproximujte následující data i= i= i= i=4 i=5 i=6 i=7 x i 0..7 4.5 4.7 7.5 9. y i 0.4.8 5.8 6.4 6.6 7. funkcí ϕx) = c x + c x + c metodou nejmenších čtverců. Pro nalezení nejlepší aproximace ve smyslu nejmenších čtverců je třeba nejprve sestavit normální rovnice. Pokud hledáme aproximaci ve tvaru ϕx) = c ϕ x) + c ϕ x) + c ϕ x), kde c, c, c R jsou vhodné koeficienty, a v bodech x i máme předepsané hodnoty y i, přičemž i =,..., n, pak mají normální rovnice tvar n c ϕ x i )) n n + c ϕ x i ) ϕ x i ) + c ϕ x i ) ϕ x i ) = i= i= i= c n i= n ϕ x i ) ϕ x i ) + c ϕ x i )) n + c ϕ x i ) ϕ x i ) = i= i= c n i= n ϕ x i ) ϕ x i ) + c ϕ x i )) n + c ϕ x i )) = i= i= n i= n i= y i ϕ x i ) y i ϕ x i ) n y i ϕ x i ) i= V našem případě je ϕ x) = x, ϕ x) = x a ϕ x) = tj. funkce, která má v každém bodě hodnotu ). Nyní již soustavu normálních rovnic pro neznámé koeficienty c, c, c snadno zapíšeme. 5