VYSOKÁ ŠKOLA BÁŇSKÁ – TECHNICKÁ UNIVERZITA OSTRAVA
NUMERICKÉ METODY Radek Kučera
Vytvořeno v rámci projektu Operačního programu Rozvoje lidských zdrojů CZ.04.1.03/3.2.15.1/0016 Studijní opory s převažujícími distančními prvky pro předměty teoretického základu studia. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky
ESF – ROVNÉ PŘÍLEŽITOSTI PRO VŠECHNY
ISBN 80-248-1198-7
Numerické metody
STUDIJNÍ OPORY S P EVAŽUJÍCÍMI DISTAN NÍMI PRVKY PRO P EDM TY TEORETICKÉHO ZÁKLADU STUDIA je název projektu, který usp l v rámci první výzvy Opera ního programu Rozvoj lidských zdroj . Projekt je spolufinancován státním rozpo tem
R a Evropským sociálním fondem.
Partnery projektu jsou Regionální st edisko výchovy a vzd lávání, s.r.o. v Most , Univerzita obrany v Brn a Technická univerzita v Liberci. Projekt byl zahájen 5.1.2006 a bude ukon en 4.1.2008. Cílem projektu je zpracování studijních materiál z matematiky, deskriptivní geometrie, fyziky a chemie tak, aby umožnily p edevším samostatné studium a tím minimalizovaly po et kontaktních hodin s u itelem. Je z ejmé, že vytvo ené texty jsou ur eny student m všech forem studia. Studenti kombinované a distan ní formy studia je využijí k samostudiu, studenti v prezen ní form si mohou doplnit získané v domosti. Všem student m texty pomohou p i procvi ení a ov ení získaných v domostí. Nezanedbatelným cílem projektu je umožnit zvýšení kvalifikace širokému spektru osob, které nemohly ve studiu na vysoké škole z r zných d vod (sociálních, rodinných, politických) pokra ovat bezprost edn po maturit . V rámci projektu jsou vytvo eny jednak standardní u ební texty v tišt né podob , koncipované pro samostatné studium, jednak e-learningové studijní materiály, p ístupné prost ednictvím internetu. Sou ástí výstup je rovn ž banka testových úloh pro jednotlivé p edm ty, na níž si studenti ov í, do jaké míry zvládli prostudované u ivo. Bližší informace o projektu m žete najít na adrese http://www.studopory.vsb.cz/. P ejeme vám mnoho úsp ch p i studiu a budeme mít radost, pokud vám p edložený text pom že p i studiu a bude se vám líbit. Protože nikdo není neomylný, mohou se i v tomto textu objevit nejasnosti a chyby. P edem se za n omlouváme a budeme vám vd ni, pokud nás na n upozorníte.
ESF – ROVNÉ P ÍLEŽITOSTI PRO VŠECHNY
-1-
Numerické metody
Pokyny ke studiu
POKYNY KE STUDIU V úvodu si vysv tlíme jednotnou pevnou strukturu každé kapitoly textu, která by vám m la pomoci k rychlejší orientaci p i studiu. Pro zvýrazn ní jednotlivých ástí textu jsou používány ikony a barevné odlišení, jejichž význam nyní objasníme.
Pr vodce studiem
vás stru n seznámí s obsahem dané kapitoly a s její motivací. Slouží také k instrukci, jak pokra ovat dál po vy ešení kontrolních otázek nebo kontrolních text .
Cíle
vás seznámí s u ivem, které v dané kapitole poznáte a které byste po jejím prostudování m li um t.
P edpokládané znalosti
shrnují stru n u ivo, které byste m li znát ješt d íve než kapitolu za nete studovat. Jsou nezbytným p edpokladem pro úsp šné zvládnutí následující kapitoly.
Výklad
ozna uje samotný výklad u iva dané kapitoly, který je len n zp sobem obvyklým v matematice na definice, v ty, p ípadn d kazy. Definice 1.1.1. Zavádí základní pojmy v dané kapitole.
V ta 1.1.1. Uvádí základní vlastnosti pojm zavedených v dané kapitole.
D kaz:
Vychází z p edpoklad v ty a dokazuje tvrzení uvedené ve v t . -2-
Numerické metody
Pokyny ke studiu
Poznámka neformáln komentuje vykládanou látku..
ešené úlohy
ozna ují vzorové p íklady, které ilustrují probrané u ivo. P íklad Uvádí zadání p íkladu. ešení:
Uvádí podrobné ešení zadaného p íkladu.
Úlohy k samostatnému ešení
obsahují zadání p íklad
k procvi ení probraného u iva. Úlohy ozna ené
pat í
k obtížn jším a jsou ur eny zájemc m o hlubší pochopení tématu.
Výsledky úloh k samostatnému ešení
obsahují správné výsledky p edchozích p íklad , slouží ke kontrole správnosti ešení.
Kontrolní otázky
obsahují soubor otázek k probranému u ivu v etn n kolika odpov dí, z nichž je vždy alespo jedna správná.
Odpov di na kontrolní otázky
uvád jí správné odpov di na kontrolní otázky.
Kontrolní test
obsahuje soubor p íklad k probranému u ivu.
Výsledky testu
uvád jí správné odpov di na p íklady kontrolního testu. -3-
Numerické metody
Pokyny ke studiu
Shrnutí lekce
obsahuje stru ný p ehled u iva, které by m l student po prostudování p íslušné kapitoly zvládnout.
Literatura
obsahuje seznam knih, které byly použity p i tvorb p íslušného textu a na které byly p ípadn uvedeny odkazy k hlubšímu prostudování tématu.
Piktogram, který upozor uje na d ležité vztahy nebo vlastnosti, které je nezbytné si zapamatovat.
-4-
Numerick´e metody
OBSAH
Obsah 1. Numerick´ e metody a chyby
7
1.1. Obsah pˇredmˇetu . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.2. Chyby v numerick´ ych v´ ypoˇctech . . . . . . . . . . . . . . . . . . .
13
ˇ sen´ı neline´ 2. Reˇ arn´ıch rovnic
21
2.1. Separace koˇren˚ u. . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.2. Nejjednoduˇsˇs´ı metody . . . . . . . . . . . . . . . . . . . . . . . .
24
2.2.1. Metoda p˚ ulen´ı intervalu . . . . . . . . . . . . . . . . . . .
25
2.2.2. Metoda regula falsi . . . . . . . . . . . . . . . . . . . . . .
26
2.3. Newtonova metoda . . . . . . . . . . . . . . . . . . . . . . . . . .
29
2.4. Metoda prost´e iterace . . . . . . . . . . . . . . . . . . . . . . . . .
34
3. SLR – pˇ r´ım´ e metody
40
3.1. Formulace u ´lohy . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
3.2. Gaussova eliminaˇcn´ı metoda (GEM)
. . . . . . . . . . . . . . . .
43
3.2.1. Zpˇetn´ y chod GEM . . . . . . . . . . . . . . . . . . . . . .
44
3.2.2. Dopˇredn´y chod GEM . . . . . . . . . . . . . . . . . . . . .
45
3.2.3. V´ ybˇer hlavn´ıho prvku . . . . . . . . . . . . . . . . . . . .
46
3.3. LU–rozklad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
3.4. Pouˇzit´ı LU-rozkladu . . . . . . . . . . . . . . . . . . . . . . . . .
54
ˇ sen´ı soustav line´arn´ıch rovnic . . . . . . . . . . . . . . . 3.4.1. Reˇ
54
3.4.2. V´ ypoˇcet inverzn´ı matice . . . . . . . . . . . . . . . . . . .
56
3.4.3. V´ ypoˇcet determinantu . . . . . . . . . . . . . . . . . . . .
58
3.5. Maticov´e normy a podm´ınˇenost matic . . . . . . . . . . . . . . . .
61
4. SLR – iteraˇ cn´ı metody
66
4.1. Pˇr´ıklad iteraˇcn´ıho v´ ypoˇctu . . . . . . . . . . . . . . . . . . . . . .
67
4.2. Obecn´e iteraˇcn´ı metody . . . . . . . . . . . . . . . . . . . . . . .
71
-5-
OBSAH
Numerick´e metody 4.2.1. Jacobiova metoda . . . . . . . . . . . . . . . . . . . . . . .
72
4.2.2. Gauss-Seidelova metoda . . . . . . . . . . . . . . . . . . .
74
4.3. Vlastn´ı ˇc´ısla a vlastn´ı vektory matic . . . . . . . . . . . . . . . . .
78
4.3.1. V´ ypoˇcet vlastn´ıch ˇc´ısel metodou LU-rozkladu . . . . . . .
82
4.4. Konvergence iteraˇcn´ıch metod . . . . . . . . . . . . . . . . . . . .
86
5. Interpolace a aproximace funkc´ı
92
5.1. Interpolaˇcn´ı polynom . . . . . . . . . . . . . . . . . . . . . . . . .
93
5.1.1. Lagrange˚ uv tvar interpolaˇcn´ıho polynomu . . . . . . . . .
95
5.1.2. Newton˚ uv tvar interpolaˇcn´ıho polynomu . . . . . . . . . .
97
5.1.3. Interpolaˇcn´ı chyba . . . . . . . . . . . . . . . . . . . . . .
99
5.2. Interpolaˇcn´ı splajny . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.2.1. Line´arn´ı splajn . . . . . . . . . . . . . . . . . . . . . . . . 102 5.2.2. Kubick´ y splajn . . . . . . . . . . . . . . . . . . . . . . . . 103 5.3. Aproximace metodou nejmenˇs´ıch ˇctverc˚ u . . . . . . . . . . . . . . 108 6. Numerick´ e integrov´ an´ı a derivov´ an´ı
113
6.1. Newton-Cotesovy vzorce . . . . . . . . . . . . . . . . . . . . . . . 114 6.2. Sloˇzen´e vzorce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.3. V´ ypoˇcet integr´alu se zadanou pˇresnost´ı . . . . . . . . . . . . . . . 122 6.4. Numerick´e derivov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . 127 7. ODR – poˇ c´ ateˇ cn´ı u ´ lohy
132
7.1. Formulace u ´lohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.2. Eulerova metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7.3. Jednokrokov´e metody vyˇsˇs´ıho ˇra´du . . . . . . . . . . . . . . . . . 139 7.4. V´ıcekrokov´e metody . . . . . . . . . . . . . . . . . . . . . . . . . 143 Literatura
152
-6-
Numerick´e metody
1.
´ METODY A CHYBY 1. NUMERICKE
Numerick´ e metody a chyby
1.1.
Obsah pˇ redmˇ etu
Pr˚ uvodce studiem Numerickou u ´lohou rozum´ıme jasn´ y a jednoznaˇcn´y popis vztahu mezi koneˇ cn´ ym poˇctem vstupn´ıch a v´ ystupn´ıch dat (re´aln´ ych ˇc´ısel). Podstatn´a je pˇritom koneˇcnost vstupn´ıho a v´ ystupn´ıho souboru, kter´a ve sv´em d˚ usledku umoˇzn ˇ uje pˇri ˇreˇsen´ı pouˇz´ıt poˇc´ıtaˇc. Postupy ˇreˇsen´ı numerick´ ych u ´ loh se pak naz´ yvaj´ı numerick´e nebo poˇc´ıtaˇcov´e metody. Numerick´e u ´ lohy patˇr´ı do skupiny u ´ loh diskr´etn´ıch. Matematick´e modely se vˇsak ˇcasto formuluj´ı jako u ´lohy spojit´e, u nichˇz se mezi vstupn´ımi nebo v´ystupn´ımi daty vyskytuj´ı spojit´e funkce. Pokud chceme takov´e u ´ lohy ˇreˇsit numerick´ ymi metodami, mus´ıme je nejdˇr´ıve na u ´ lohy diskr´etn´ı pˇrev´est, tj. diskretizovat.
C´ıle Na pˇr´ıkladech uk´aˇzeme diskr´etn´ı a spojit´e u ´ lohy. D´ale pˇredvedeme diskretizaci a vysvˇetl´ıme pojmy diskretizaˇcn´ı parametr a ˇra´d.
Pˇredpokl´ adan´ e znalosti Kvadratick´a rovnice, soustava line´arn´ıch rovnic, urˇcit´ y integr´al, poˇc´ateˇcn´ı u ´ loha pro obyˇcejnou diferenci´aln´ı rovnici.
V´ yklad ´ ´ loha diskr´etn´ı. 1) Uloha ˇreˇsit kvadratickou rovnici ax2 + bx + c = 0, a = 0, je u Vstupn´ı data jsou koeficienty a, b, c, v´ ystupn´ı data jsou re´aln´a ˇc´ısla α1 , β1 , α2 , β2 , kter´a urˇcuj´ı dva komplexn´ı koˇreny xk = αk + iβk , k = 1, 2.
-7-
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
2) Diskr´etn´ı u ´ lohou je tak´e soustava line´arn´ıch rovnic Ax = b, y sloupcov´ y kde A = (aij ) je dan´a ˇctvercov´a matice ˇra´du n, b = (bi ) je dan´ y vektor nezn´am´ ych tak´e o n sloˇzk´ach. vektor o n sloˇzk´ach a x = (xi ) je sloupcov´ Napˇr´ıklad pro n = 3 m˚ uˇzeme takovou soustavu ps´at v maticov´em tvaru ⎞⎛ ⎞ ⎛ ⎞ ⎛ x b a a a ⎜ 11 12 13 ⎟ ⎜ 1 ⎟ ⎜ 1 ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎜ a21 a22 a23 ⎟ ⎜ x2 ⎟ = ⎜ b2 ⎟ ⎠⎝ ⎠ ⎝ ⎠ ⎝ a31 a32 a33 x3 b3 nebo po jednotliv´ ych rovnic´ıch a11 x1 + a12 x2 + a13 x3 = b1 , a21 x1 + a22 x2 + a23 x3 = b2 , a31 x1 + a32 x2 + a33 x3 = b3 . Vstupn´ımi daty jsou zde prvky matice aij a vektoru prav´ ych stran bi . V´ ystupn´ımi ych. Pˇripomeˇ nme jeˇstˇe, ˇze ˇreˇsen´ı m˚ uˇze b´yt daty jsou sloˇzky xi vektoru nezn´am´ jedin´e, nemus´ı existovat, nebo jich m˚ uˇze b´yt nekoneˇcnˇe mnoho. ´ 3) Uloha vypoˇc´ıtat urˇcit´ y integr´al
b
f (x) dx
I= a
je spojit´a u ´ loha, protoˇze jedn´ım ze vstup˚ u je spojit´a funkce f . Na tomto pˇr´ıkladˇe si pˇredvedeme diskretizaci. Integraˇcn´ı interval a, b rozdˇel´ıme na n u ´ sek˚ u o d´elce h pomoc´ı bod˚ u xi , i = 0, 1, . . . , n, tak, ˇze xi − xi−1 = h, x0 = a a xn = b. Pak m˚ uˇzeme ps´at x2 xn x1 f (x) dx + f (x) dx + . . . + f (x) dx. I= x0
x1
xn−1
Kaˇzd´y d´ılˇc´ı integr´al nahrad´ıme jeho pˇribliˇznou hodnotou
xi xi−1 + xi f (x) dx ≈ hf 2 xi−1
-8-
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
a m´ısto hodnoty I budeme poˇc´ıtat jej´ı aproximaci
x0 + x1 x1 + x2 xn−1 + xn Ih = hf + hf + . . . + hf . 2 2 2
(1.1.1)
V´ypoˇcet podle posledn´ıho vzorce je jiˇz u ´ loha diskr´etn´ı. Vstupn´ımi daty jsou xi−1 +xi , i = 1, . . . , n a parametr h. V´ ystupn´ı data pˇredstavuje funkˇcn´ı hodnoty f 2 pˇribliˇzn´a hodnota Ih .
Integr´ al I
Aproximace Ih
Obr´azek 1.1.1: Zn´azornˇen´ı integr´alu I a jeho aproximace Ih . Smysl vzorce (1.1.1) ukazuje obr´azek 1.1.1, kde jsou hodnoty I a Ih zn´azornˇeny jako velikosti plochy pˇr´ısluˇsn´eho obrazce. Odtud m˚ uˇzeme usoudit, ˇze pˇri menˇs´ım h bude Ih l´epe aproximovat I, tj., ˇze plat´ı lim Ih = I.
h→0+
(1.1.2)
Jin´ymi slovy ˇreˇsen´ı diskretizovan´e u ´ lohy se m˚ uˇze pˇribl´ıˇzit libovolnˇe pˇresnˇe k ˇreˇsen´ı p˚ uvodn´ı u ´ lohy spojit´e, pokud zvol´ıme dostateˇcnˇe mal´ y diskretizaˇcn´ı parametr h. Kladn´e ˇc´ıslo p, pro nˇeˇz plat´ı |I − Ih | ≤ Chp ,
(1.1.3)
kde C > 0 je konstanta nez´avisl´a na h, se naz´ yv´a ˇra´d diskretizace. V´ yraz na lev´e stranˇe nerovnosti (1.1.3) je velikost diskretizaˇcn´ı chyby. Tato chyba bude pˇri zmenˇsuj´ıc´ım se h klesat k nule t´ım rychleji, ˇc´ım vˇetˇs´ı bude hodnota p. Diskretizace vysok´eho ˇra´du je proto pˇresnˇejˇs´ı neˇz diskretizace n´ızk´eho ˇra´du; viz tabulka 1.1.1.
-9-
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
Tabulka 1.1.1: Odhady diskretizaˇcn´ı chyby Chp pro C = 1. h
p=1
p=2
p=3
0.1
0.1
0.01
0.001
0.01
0.01
0.0001
0.000001
0.001
Pˇ r´ıklad 1.1.1.
0.001 0.000001 0.000000001
Pomoc´ı vzorce (1.1.1) vypoˇctˇete pˇribliˇznou hodnotu integr´alu 1 x2 dx I= 0
pro h = 0.5, 0.25 a 0.125. Z v´ ysledk˚ u odhadnˇete, jak´y je ˇra´d diskretizace. ˇ sen´ı: Pˇresn´a hodnota integr´alu je I = 1 . Pˇribliˇzn´e hodnoty vypoˇc´ıt´ame takto: Reˇ 3 I0.5 = 0.5(0.252 + 0.752 ) = 0.3125, I0.25 = 0.25(0.1252 + 0.3752 + 0.6252 + 0.8752 ) = 0.328125, I0.125 = 0.125(0.06252 + 0.18752 + . . . + 0.93752 ) = 0.33203125. Diskretizaˇcn´ı chyby maj´ı hodnotu: E0.5 = |I − I0.5 | = 0.02083333333333, E0.25 = |I − I0.25 | = 0.00520833333333, E0.125 = |I − I0.125 | = 0.00130208333333. Pˇri odhadu ˇra´du diskretizace budeme pro jednoduchost pˇredpokl´adat, ˇze v (1.1.3) nastane rovnost. Pro h = 0.5 pak dost´av´ame Chp E0.5 = = 2p E0.25 C(h/2)p
=⇒
p = log2
E0.5 . = 2.00000000000069. E0.25
. Podobnˇe pro h = 0.25 vypoˇcteme p = 2.00000000000277. Z tˇechto v´ ysledk˚ u m˚ uˇzeme usoudit, ˇze diskretizace podle vzorce (1.1.1) je druh´eho ˇra´du.
- 10 -
2
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
´ 4) Uloha naj´ıt funkci y = y(x), kter´a splˇ nuje diferenci´aln´ı rovnici y = x2 − 0.2y
(1.1.4)
a vyhovuje poˇc´ateˇcn´ı podm´ınce y(−2) = −1, je spojit´a u ´ loha. Jak uvid´ıme pozdˇeji, diskretizace t´eto u ´ lohy bude v mnoh´em podobn´a postupu, kter´ y jsme pouˇzili pˇri diskretizaci urˇcit´eho integr´alu.
Kontroln´ı ot´ azky Ot´azka 1. Jak´ y je rozd´ıl mezi diskr´etn´ı a spojitou u ´ lohou? Ot´azka 2. Co je to diskretizace? Jak´ y je v´ yznam diskretizaˇcn´ıho parametru? Ot´azka 3. Je pˇresnˇejˇs´ı diskretizace vysok´eho nebo n´ızk´eho ˇra´du?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Vyˇreˇste rovnice: a) x2 + 3x + 1 = 0; b) x2 + 2x + 1 = 0; c) x2 + x + 1 = 0. ˇ ste n´asleduj´ıc´ı soustavy line´arn´ıch rovnic: 2. Reˇ ⎞⎛ ⎞⎛ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎞ ⎛ x x 1 2 1 3 6 3 ⎠⎝ 1 ⎠ = ⎝ ⎠ ⎝ 1 ⎠ = ⎝ ⎠ , b) ⎝ ⎠, a) ⎝ −1 −2 2 −1 5 −3 x2 x2 ⎛ c) ⎝
⎞⎛ 1
2
−1 −2
⎠⎝
⎞ x1
⎛
⎠=⎝
x2
⎞ 1
⎠.
1
Jak lze rozhodnout z hodnoty determinantu matice o existenci ˇreˇsen´ı? 3. Pomoc´ı vzorce (1.1.1) vypoˇctˇete pˇribliˇznou hodnotu integr´alu 1 x2 dx I= −1
pro h = 1, 0.5 a 0.25 a urˇcete diskretizaˇcn´ı chyby. 4. Vyˇreˇste diferenci´aln´ı rovnici (1.1.4) pomoc´ı zn´am´ ych analytick´ ych metod.
- 11 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı . . 1. a) Dva koˇreny x1 = −2.6180, x2 = −0.3820; b) jeden (dvojn´asobn´ y) koˇren . x1 = x2 = −1; c) dva komplexnˇe sdruˇzen´e koˇreny x1 = x2 = −0.5 ± i 0.8660. 2. a) x = (3, 1) , det A = −7; b) nekoneˇcne mnoho ˇreˇsen´ı x = (3 − 2t, 3 − 2t) , t ∈ R, det A = 0; c) ˇreˇsen´ı neexistuje. . . . 3. I = 0.6667, I1 = 0.5, |I − I1 | = 0.1667, I0.5 = 0.625, |I − I0.5 | = 0.0417, . . I0.25 = 0.6563, |I − I0.25 | = 0.0104. 4. Obecn´e ˇreˇsen´ı je y(x) = 5x2 − 50x + 250 + Ce−0.2x, ˇreˇsen´ı vyhovuj´ıc´ı poˇc´ateˇcn´ı podm´ınce je urˇceno konstantou C = −248.688737.
Shrnut´ı lekce Uk´azali jsem rozdˇelen´ı matematick´ ych u ´ loh na u ´ lohy diskr´etn´ı a spojit´e. Diskr´etn´ı u ´ lohy lze zpravidla okamˇzitˇe ˇreˇsit pomoc´ı numerick´ ych metod. Spojit´e u ´ lohy je potˇreba nejdˇr´ıve diskretizovat.
- 12 -
Numerick´e metody
1.2.
´ METODY A CHYBY 1. NUMERICKE
Chyby v numerick´ ych v´ ypoˇ ctech
Pr˚ uvodce studiem Chyby, kter´ ymi jsou ovlivnˇeny v´ ysledky numerick´ ych v´ ypoˇct˚ u, maj´ı r˚ uznou podstatu. Chyba matematick´eho modelu vznik´a v d˚ usledku toho, ˇze m´ısto skuteˇcn´eho technick´eho nebo fyzik´aln´ıho probl´emu ˇreˇs´ıme jeho matematick´ y model. Je-li ˇreˇsen´ı tohoto modelu z nˇejak´eho d˚ uvodu n´aroˇcn´e nebo nemoˇzn´e, provedeme jeho aproximaci jednoduˇsˇs´ı u ´ lohou, ˇc´ımˇz vznikne chyba aproximaˇcn´ı. Jej´ım speci´aln´ım pˇr´ıpadem je diskretizaˇcn´ı chyba, kterou jsme zm´ınili v pˇredchoz´ım odstavci. Dalˇs´ım zdrojem chyb je poˇc´ıt´an´ı s nepˇresn´ymi” ˇc´ısly. Sem patˇr´ı chyby vstup” n´ıch dat a chyby zaokrouhlovac´ı. Vstupn´ı data mohou b´ yt namˇeˇren´e veliˇciny, jejichˇz nepˇresnost je d´ana rozliˇsovac´ı schopnost´ı mˇeˇr´ıc´ıch zaˇr´ızen´ı. K zaokrouhlov´an´ı meziv´ ysledk˚ u doch´az´ı v pr˚ ubˇehu cel´eho v´ ypoˇctu, protoˇze pro ukl´ad´an´ı ˇc´ısel je k dispozici pouze omezen´y pamˇet’ov´ y prostor. Koneˇcnˇe jsou v´ ysledky ovlivnˇeny tak´e chybami lidsk´eho faktoru. Jedn´a se o chyby v poˇc´ıtaˇcov´ ych programech, ˇspatn´a zad´an´ı vstupn´ıch dat, nevhodnou volbu matematick´eho modelu nebo nespr´avn´ y v´ ybˇer metody ˇreˇsen´ı.
C´ıle Budeme se zab´yvat chybami zaokrouhlovac´ımi a uk´aˇzeme jejich vliv na stabilitu numerick´eho v´ ypoˇctu.
Pˇredpokl´ adan´ e znalosti Z´akladn´ı aritmetick´e operace, urˇcit´ y integr´al, rekurentn´ı v´ ypoˇcty.
- 13 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
V´ yklad Definice 1.2.1. Necht’ x¯ je pˇresn´a hodnota re´aln´eho ˇc´ısla a x je jeho aproximace. Rozd´ıl e(x) = x¯ − x se naz´yv´a absolutn´ı chyba. Odhad absolutn´ı chyby je ˇc´ıslo (x), pro kter´e plat´ı |¯ x − x| ≤ (x). Je-li x = 0, pak ˇc´ıslo r(x) =
(1.2.1)
x¯ − x x
se naz´yv´a relativn´ı chyba. Odhad relativn´ı chyby je ˇc´ıslo δ(x), pro kter´e plat´ı
x¯ − x
x ≤ δ(x).
Relativn´ı chyba a jej´ı odhad se ˇcasto ud´avaj´ı v procentech. Nerovnost (1.2.1) znamen´a x¯ ∈ x − (x), x + (x), coˇz symbolicky zapisujeme x¯ = x ± (x). Pokud nebude hrozit nedorozumnˇen´ı, budeme ps´at e, r, a δ m´ısto e(x), r(x), (x) a δ(x).
ˇ ıslo x = 2.72 je aproximace Eulerova ˇc´ısla x¯ = 2.7182818.... Pˇ r´ıklad 1.2.1. C´ Absolutn´ı chyba je e = −0.001718... a jej´ı odhad je napˇr´ıklad ˇc´ıslo = 0.002, protoˇze |e| ≤ . Proto x¯ = 2.72 ± 0.002. Relativn´ı chyba je r = −0.00063168... a za odhad relativn´ı chyby m˚ uˇzeme vz´ıt δ = 0.00064, protoˇze |r| ≤ δ. Nyn´ı uk´aˇzeme jak se ˇs´ıˇr´ı chyby pˇri prov´adˇen´ı aritmetick´ ych operac´ı. Budeme pˇritom pˇredpokl´adat, ˇze vykon´av´ame pˇresn´e aritmetick´e operace s nepˇresn´ymi ˇc´ısly, tj. s aproximacemi, a ˇze zn´ame chyby, respektive jejich odhady.
- 14 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody Necht’ x¯i = xi + e(xi ),
|e(xi )| ≤ (xi ),
|r(xi )| ≤ δ(xi ),
i = 1, 2.
(a) Je-li u = x1 + x2 aproximace souˇctu u¯ = x¯1 + x¯2 , potom u¯ = x1 + e(x1 ) + x2 + e(x2 ) = u + e(u), kde e(u) = e(x1 ) + e(x2 ) a plat´ı |e(u)| ≤ |e(x1 )| + |e(x2 )| ≤ (x1 ) + (x2 ). (b) Je-li v = x1 − x2 aproximace rozd´ılu v¯ = x¯1 − x¯2 , potom e(v) = e(x1 ) − e(x2 ) a plat´ı |e(v)| ≤ |e(x1 )| + |e(x2 )| ≤ (x1 ) + (x2 ). (c) Je-li w = x1 x2 aproximace souˇcinu w¯ = x¯1 x¯2 , potom w ¯ = (x1 + e(x1 ))(x2 + e(x2 )) = w + x1 e(x2 ) + x2 e(x1 ) + e(x1 )e(x2 ) a klademe e(w) ≈ x1 e(x2 ) + x2 e(x1 ). Odtud |e(w)| |x1 |(x2 ) + |x2 |(x1 ). (d) Je-li z = x1 /x2 aproximace pod´ılu z¯ = x¯1 /¯ x2 , potom z¯ = kde e(z) =
x1 + e(x1 ) = z + e(z), x2 + e(x2 )
x2 e(x1 ) − x1 e(x2 ) x2 e(x1 ) − x1 e(x2 ) ≈ x2 (x2 + e(x2 )) x22
- 15 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
a plat´ı |e(z)|
|x2 |(x1 ) + |x1 |(x2 ) . |x2 |2
Pro relativn´ı chyby m˚ uˇzeme z pravidel (a), (b), (c) a (d) odvodit:
1 1 e(x1 ) e(x2 ) + x2 (x1 r(x1 ) + x2 r(x2 )) , x1 = (A) r(u) = x1 + x2 x1 x2 x1 + x2 1 (|x1 |δ(x1 ) + |x2 |δ(x2 )) , |x1 + x2 |
1 1 e(x1 ) e(x2 ) x1 = r(v) = − x2 (x1 r(x1 ) − x2 r(x2 )) , x1 − x2 x1 x2 x1 − x2 |r(u)| ≤
(B)
|r(v)| ≤ (C)
r(w) ≈
1 (|x1 |δ(x1 ) + |x2 |δ(x2 )) , |x1 − x2 |
x1 e(x2 ) + x2 e(x1 ) = r(x2 ) + r(x1 ), x1 x2
|r(w)| δ(x2 ) + δ(x1 ), (D)
r(z) ≈
x2 e(x1 ) − x1 e(x2 ) x2 · = r(x1 ) − r(x2 ), x22 x1
|r(z)| δ(x1 ) + δ(x2 ).
Pozn´ amka Pˇri odˇc´ıt´an´ı bl´ızk´ych ˇc´ısel (pravidlo (B)) m´ a na velikost relativn´ı chyby rozhoduj´ıc´ı atˇe relativn´ı pˇresnosti. vliv zlomek 1/|x1 − x2 |, kter´y ukazuje, ˇze doch´az´ı ke ztr´
Pˇ r´ıklad 1.2.2. Necht’ x¯1 = 758 320, x1 = 758 330, x¯2 = 757 940 a x2 = 757 930. Urˇcete k jak velk´e ztr´atˇe relativn´ı pˇresnosti dojde pˇri odˇc´ıt´an´ı. ˇ sen´ı: Protoˇze e(x1 ) = −10, e(x2 ) = 10, m˚ Reˇ uˇzeme poloˇzit
−10 . −5
758330 = 1.32 · 10 = δ(x1 ),
10 . −5
757930 = 1.32 · 10 = δ(x2 ).
- 16 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
D´ale je v¯ = x¯1 − x¯2 = 380 a v = x1 − x2 = 400, a proto
v¯ − v −20 . −2
=
v 400 = 5 · 10 = δ(v). Doˇslo ke ztr´atˇe relativn´ı pˇresnosti zhruba o tˇri ˇra´dy. Podle pravidla (B) totiˇz plat´ı |r(v)| ≤
758330 (δ(x1 ) + δ(x2 )) ≈ 2000(δ(x1 ) + δ(x2 )). 400
V´ yklad Pˇri prov´adˇen´ı rozs´ahlejˇs´ıch v´ ypoˇct˚ u m˚ uˇze nastat situace, kdy se zaokrouhlovac´ı chyby nekontrolovatelnˇe hromad´ı a mohou znehodnotit v´ ysledek. O takov´em v´ ypoˇctu ˇr´ık´ame, ˇze je numericky nestabiln´ı. Uk´aˇzeme to na pˇr´ıkladu. Pˇredpokl´adejme, ˇze je naˇs´ım u ´ kolem vypoˇc´ıtat hodnoty integr´al˚ u 1 xi yi = dx pro i = 0, 1, . . . , 8. 0 x+5 Pomoc´ı u ´ pravy
yi + 5yi−1 =
1
0
xi + 5xi−1 dx = x+5
1
i−1 x
x 0
+5 dx = x+5
1
xi−1 dx =
0
(1.2.2)
1 i
odvod´ıme rekurentn´ı vzorec yi =
1 − 5yi−1 i
pro i = 1, 2, . . . , 8.
(1.2.3)
Pˇri v´ ypoˇctu budeme zaokrouhlovat na tˇri desetinn´a m´ısta. Nejdˇr´ıve urˇc´ıme startovac´ı hodnotu y0 =
0
1
1 . dx = [ln |x + 5|]10 = 0.18232... = 0.182 x+5
a potom pomoc´ı (1.2.3) poˇc´ıt´ame y1 = 1 − 5y0 1 y2 = − 5y1 2 1 − 5y2 y3 = 3 1 y4 = − 5y3 4
= 1 − 5 · 0.182 = 0.090, 1 = − 5 · 0.090 = 0.050, 2 1 . − 5 · 0.050 = 0.083, = 3 1 − 5 · 0.083 = −0.165. = 4
- 17 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
Posledn´ı hodnota y4 je zjevnˇe nesmysln´a, protoˇze vˇsechny integr´aly mus´ı b´ yt kladn´e. Spr´avn´a hodnota je y4 = 0.03427.... V´ypoˇcet podle vzorce (1.2.3) je tedy numericky nestabiln´ı. Nestability se zbav´ıme vhodnˇejˇs´ı organizac´ı v´ ypoˇctu. Rekurentn´ı vzorec (1.2.3) pˇrep´ıˇseme pro v´ ypoˇcet v opaˇcn´em smˇeru, tj. yi−1 =
1 1 − yi 5i 5
pro i = 9, 8, . . . , 1.
. . Startovac´ı hodnotu y9 urˇc´ıme z pˇribliˇzn´e rovnosti y10 = y9 , odkud y9 = . a proto y9 = 0.017. Pomoc´ı vzorce (1.2.4) dostaneme: 1 1 1 1 − y9 = − · 0.017 45 5 45 5 1 1 1 1 − y8 = − · 0.019 = 40 5 40 5 .. .
y8 =
. = 0.019,
y7
. = 0.021,
y0 =
(1.2.4) 1 50
− 15 y9 ,
1 1 1 1 . − y1 = − · 0.088 = 0.182. 5 5 5 5
Hodnota y0 je pˇresn´a (na tˇri desetinn´a m´ısta), takˇze v´ypoˇcet podle vzorce (1.2.4) je numericky stabiln´ı. Definice 1.2.2. Uvaˇzujme u ´ lohu y¯ = U(¯ x). Necht’ x je poruˇsen´a vstupn´ı hodnota a y je odˇ ıslem podm´ınˇenosti u pov´ıdaj´ıc´ı poruˇsen´a hodnota v´ ysledku. C´ ´ lohy U naz´ yv´ame ˇc´ıslo CU , pro kter´e plat´ı |r(y)| = CU |r(x)|, kde r(x) a r(y) jsou relativn´ı chyby. ˇ ıslo podm´ınˇenosti vyjadˇruje citlivost u C´ ´lohy na poruchu ve vstupn´ıch datech. Je-li CU ≈ 1, ˇr´ık´ame, ˇze u ´ loha U je dobˇre podm´ınˇen´ a. Je-li CU velk´e, ˇr´ık´ame, ˇze u ´ loha U je ˇspatnˇe podm´ınˇen´ a. Podle ˇc´ısla podm´ınˇenosti m˚ uˇzeme posoudit tak´e citlivost u ´ lohy na zaokrouhlovac´ı chyby, protoˇze je m˚ uˇzeme interpretovat jako
- 18 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
d˚ usledek (teoretick´e) poˇc´ateˇcn´ı poruchy. Pokud um´ıme urˇcit jenom odhady relativn´ıch chyb, stanov´ıme ˇc´ıslo pom´ınˇenosti pˇribliˇznˇe, tj. CU ≈
Pˇ r´ıklad 1.2.3.
δ(y) . δ(x)
Urˇcete ˇc´ıslo podm´ınˇenosti u ´ lohy U vypoˇc´ıtat hodnotu y4 podle
vzorc˚ u (1.2.3) pˇri zaokrouhlov´an´ı na tˇri desetinn´a m´ısta. ˇ sen´ı: Reˇ
Dost´av´ame 0.18232... − 0.182 0.182 0.03427... + 0.165 r(y4 ) = −0.165
r(y0 ) =
CU =
. = 0.001758, . = −1.207,
|r(y4)| . = 686.6. |r(y0)|
Vˇsimnˇeme si, ˇze pˇri v´ ypoˇctu podle vzorc˚ u (1.2.3) se hodnota yi−1 n´asob´ı pˇeti, ˇc´ımˇz dojde tak´e k pˇetin´asobn´emu zvˇetˇsen´ı chyby. Vstupn´ı porucha se v hodnotˇe y4 prom´ıtne n´asoben´a ˇc´ıslem 54 = 625, coˇz je zhruba ˇc´ıslo podm´ınˇenosti CU .
Kontroln´ı ot´ azky Ot´azka 1. Jak se definuje absolutn´ı a relativn´ı chyba a jejich odhady? Ot´azka 2. Jak se chovaj´ı chyby pˇri prov´adˇen´ı aritmetick´ ych operac´ı? Ot´azka 3. Jak se definuje ˇc´ıslo podm´ınˇenosti u ´lohy?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pro aproximaci x = 3.14 Ludolfova ˇc´ısla x¯ = 3.1415926... urˇcete absolutn´ı a relativn´ı chybu a jejich odhady. 2. Pro data z pˇr´ıkladu 1.2.2. urˇcete relativn´ı chyby pˇri sˇc´ıt´an´ı, odˇc´ıt´an´ı a dˇelen´ı. u (1.2.4). 3. Urˇcete ˇc´ıslo podm´ınˇenosti u ´lohy vypoˇc´ıtat y0 podle vzorc˚
- 19 -
´ METODY A CHYBY 1. NUMERICKE
Numerick´e metody
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. e(x) = 0.0015926..., (x) = 0.0016, r(x) = 0.000507197, δ(x) = 0.00051. 2. Pro u = x1 + x2 je e(u) = 0, |e(u)| ≤ 20, r(u) = 0, |r(u)| ≤ 1.32 · 10−5; pro w = x1 x2 je e(w) = 3900, |e(w)| ≤ 15162600, r(w) = 6.79 · 10−9 , |r(w)| ≤ 2.64 · 10−5 ; pro z = x1 /x2 je e(z) = −2.64 · 10−5 , |e(z)| ≤ 2.64 · 10−5 , r(z) = −2.64 · 10−5 , |r(z)| ≤ 2.64 · 10−5 . . 3. y9 = 0.0169264..., r(y9) = (y9 − 0.017)/0.017 = −0.004329, r(y0) = (0.18232 − . . 0.1824)/0.1824 = −4.01758, CU = |r(y0)|/|r(y9)| = 0.4061.
Shrnut´ı lekce Uk´azali jsem, jak se ˇs´ıˇr´ı chyby pˇri prov´adˇen´ı aritmetick´ ych operac´ı. D´ale jsme uk´azali jak posuzovat citlivost u ´loh na vstupn´ı a zaokrouhlovac´ı chyby.
- 20 -
Numerick´e metody
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
ˇ sen´ı neline´ Reˇ arn´ıch rovnic
2.
Pr˚ uvodce studiem Budeme se zab´yvat v´ ypoˇctem re´aln´ ych koˇren˚ u neline´arn´ı rovnice f (x) = 0,
(2.0.1)
kde f je v jist´em smyslu rozumn´a” re´aln´a funkce. Pro nˇekter´e funkce (kvadra” tick´e, goniometrick´e atp.) um´ıme koˇreny vypoˇc´ıtat pomoc´ı (uzavˇren´ ych) vzorc˚ u, pro drtivou vˇetˇsinu funkc´ı vˇsak ˇz´adn´e takov´e vzorce neexistuj´ı. Metody, s nimiˇz se sezn´am´ıme v t´eto kapitole, lze pouˇz´ıt pro libovolnou funkci f . Patˇr´ı do tˇr´ıdy metod iteraˇcn´ıch, kter´e poˇc´ıtaj´ı posloupnost {xk } konverguj´ıc´ı pro k → ∞ ke koˇrenu x¯. Obecnˇe plat´ı, ˇze konvergence nastane, pokud je poˇc´ateˇcn´ı aproximace x0 zvolena dostateˇcnˇe bl´ızko u hledan´eho koˇrene. Jednotliv´e iteraˇcn´ı metody se pak liˇs´ı rychlost´ı konvergence.
2.1.
Separace koˇ ren˚ u
C´ıle Uk´aˇzeme nˇekolik moˇznost´ı, jak prov´est rozbor rovnice f (x) = 0, jehoˇz v´ ysledkem je separace koˇren˚ u v dostateˇcnˇe kr´atk´ ych intervalech.
Pˇredpokl´ adan´ e znalosti Spojitost funkce, grafy element´arn´ıch funkc´ı.
V´ yklad a) Grafick´a separace 1. Z grafu funkce f najdeme polohu pr˚ useˇc´ık˚ u s x-ovou osou. b) Grafick´ a separace 2. Rovnici f (x) = 0 pˇrevedeme na ekvivalentn´ı rovnici h(x) = g(x) a nakresl´ıme grafy funkc´ı g a h. Pr˚ useˇc´ıky tˇechto graf˚ u prom´ıtneme
- 21 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
do x-ov´e osy, ˇc´ımˇz zjist´ıme polohu koˇren˚ u. c) Separace tabelac´ı. Sestav´ıme tabulku funkˇcn´ıch hodnot funkce f a podle znam´enkov´ ych zmˇen urˇc´ıme intervaly obsahuj´ıc´ı koˇreny. Vyuˇz´ıv´ame pˇritom n´asleduj´ıc´ı vˇetu. Vˇ eta 2.1.1. Necht’ f je spojit´a funkce na intervalu a, b, pro niˇz plat´ı f (a)f (b) < 0.
(2.1.1)
Pak uvnitˇr intervalu (a, b) leˇz´ı aspoˇ n jeden koˇren rovnice f (x) = 0. Jin´ymi slovy vˇeta ˇr´ık´a, ˇze ze znam´enkov´e zmˇeny u funkˇcn´ıch hodnot v krajn´ıch bodech intervalu a, b m˚ uˇzeme rozpoznat v´ yskyt koˇrene uvnitˇr tohoto intervalu. Pˇ r´ıklad 2.1.1. Pro rovnici 10 cos (x − 1) − x2 + 2x − 1 = 0 urˇcete intervaly d´elky nejv´yˇse 0.1 obsahuj´ıc´ı koˇreny. ˇ sen´ı: Z grafu funkce f (x) = 10 cos (x − 1) − x2 + 2x − 1 na obr´azku 2.1.1.a lze Reˇ usoudit, ˇze existuj´ı dva koˇreny x¯1 a x¯2 , kter´e leˇz´ı v v intervalu −5, 5. Zadanou rovnici pˇrep´ıˇseme do tvaru 10 cos (x − 1) = x2 − 2x + 1. Grafy funkc´ı g(x) = 10 cos (x − 1) a h(x) = x2 − 2x + 1 jsou zn´azornˇeny na obr´azku 2.1.1.b. Odtud plyne, ˇze x¯1 ∈ −1, 0 a x¯2 ∈ 2, 3. Dalˇs´ı zpˇresnˇen´ı polohy koˇren˚ u provedeme pomoc´ı tabelace. Z Tabulky 2.1.1 je patrn´e, ˇze koˇreny leˇz´ı v intervalech x¯1 ∈ −0.4, −0.3 a x¯2 ∈ 2.3, 2.4.
- 22 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
0
30
−20 20
−40 −60
10
−80
0
−100 −120 −10
−5
0
5
10
−10 −5
0
a
b
Obr´azek 2.1.1: a) Graf funkce f ; b) Grafy funkc´ı g a h. Tabulka 2.1.1: Tabelace funkce f . x
f (x)
... ... −0.5 −1.5426 −0.4 −0.2603 −0.3 0.9850 −0.2 2.1836 ... ...
x
f (x)
... ... 2.2 2.1836 2.3 0.9850 2.4 −0.2603 2.5 −1.5426 ... ...
Kontroln´ı ot´ azky Ot´azka 1. Jak se prov´ad´ı separace koˇren˚ u rovnic? Ot´azka 2. Jak´ y je grafick´ y smysl vˇety 2.1.1.? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Proved’te separaci koˇren˚ u rovnice x2 − x − 67 ln x = 0. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Dva koˇreny: x¯1 ∈ (0.9, 0.91), x¯2 = 1.
- 23 -
5
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
2.2.
Numerick´e metody
Nejjednoduˇ sˇ s´ı metody
C´ıle Sezn´am´ıme se s nejjednoduˇsˇs´ımi iteraˇcn´ımi metodami pro v´ ypoˇcet koˇren˚ u rovnice f (x) = 0. Jsou zaloˇzeny na postupn´em zkracov´an´ı intervalu, kter´ y obsahuje koˇren. Tato strategie zaruˇcuje konvergenci pro kaˇzdou spojitou funkci, v´ ypoˇcet je vˇsak pomal´ y.
Pˇredpokl´ adan´ e znalosti Urˇcen´ı polohy koˇrene pomoc´ı znam´enkov´ ych zmˇen, vˇeta 2.1.1. Rovnice pˇr´ımky.
V´ yklad Princip zkracov´an´ı intervalu pouˇzijeme u dvou metod. Zaˇcnˇeme proto nejdˇr´ıve jeho obecn´ ym popisem. Budeme pˇritom pˇredpokl´adat, ˇze f je spojit´a funkce na ym intervalu a0 , b0 , pro niˇz plat´ı f (a0 )f (b0 ) < 0. Zvol´ıme bod x1 ∈ (a0 , b0 ), kter´ rozdˇel´ıme p˚ uvodn´ı interval na dvˇe ˇc´asti, a jako nov´ y interval a1 , b1 vezmeme tu ˇc´ast, v n´ıˇz leˇz´ı koˇren x¯. Rozhodujeme se takto: • je-li f (x1 ) = 0, potom x1 je koˇren, tj. x¯ = x1 ; • je-li f (a0 )f (x1 ) < 0, poloˇz´ıme a1 , b1 = a0 , x1 ; • je-li f (x1 )f (b0 ) < 0, poloˇz´ıme a1 , b1 = x1 , b0 . Pokud nastane prvn´ı pˇr´ıpad, jsme hotovi. V opaˇcn´em pˇr´ıpadˇe zopakujeme cel´ y y bud’to je koˇrenem, postup na intervalu a1 , b1 , tj. zvol´ıme bod x2 ∈ (a1 , b1 ), kter´ nebo s jeho pomoc´ı urˇc´ıme dalˇs´ı interval a2 , b2 koˇren obsahuj´ıc´ı atd.. Uveden´ym postupem tedy vytvoˇr´ıme posloupnosti {ak }, {bk } a {xk } takov´e, ˇze koˇren x¯ leˇz´ı uvnitˇr kaˇzd´eho z interval˚ u ak , bk . Abychom byli schopni urˇcit ˇc´ıselnou hodnotu koˇrene x¯, mus´ı k nˇemu konvergovat posloupnost {xk }. To zajist´ıme vhodnou konkr´etn´ı volbou bod˚ u xk .
- 24 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody 2.2.1.
Metoda p˚ ulen´ı intervalu
Bod xk+1 urˇc´ıme jako stˇred intervalu ak , bk podle vzorce xk+1 =
ak + bk . 2
(2.2.1)
Intervaly tedy postupnˇe p˚ ul´ıme a jejich stˇredy tvoˇr´ıc´ı posloupnost {xk } konverguj´ı ke koˇrenu x¯. V´ypoˇcet ukonˇc´ıme pˇri dosaˇzen´ı zadan´e pˇresnosti , tj. kdyˇz plat´ı |¯ x − xk+1 | ≤ . Ot´azkou je, jak takovou situaci rozpoznat, jelikoˇz x¯ nezn´ame. Mus´ı vˇsak platit |¯ x − xk+1 | ≤
bk − ak , 2
protoˇze koˇren x¯ leˇz´ıc´ı v intervalu ak , bk se od stˇredu xk+1 nem˚ uˇze liˇsit v´ıc neˇz o polovinu d´elky intervalu. Pro ukonˇcen´ı v´ ypoˇctu proto pouˇzijeme krit´erium bk − ak ≤ 2 a posledn´ı stˇred xk+1 je pak aproximac´ı koˇrene x¯ s pˇrenost´ı . Algoritmus (Metoda p˚ ulen´ı intervalu) Vstup: f , a0 , b0 , . Pro k = 0, 1, . . . opakuj: xk+1 := (ak + bk )/2; je-li f (xk+1 ) = 0, potom jdi na V´ ystup; je-li f (ak )f (xk+1 ) < 0, potom ak+1 := ak , bk+1 := xk+1 ; je-li f (xk+1 )f (bk ) < 0, potom ak+1 := xk+1 , bk+1 := bk ; dokud bk+1 − ak+1 > . V´ystup: posledn´ı hodnota xk+1 .
Pˇ r´ıklad 2.2.1. Metodou p˚ ulen´ı intervalu vypoˇctˇete koˇren rovnice f (x) ≡ 10 cos (x − 1) − x2 + 2x − 1 = 0, kter´ y leˇz´ı v intervalu 2.3, 2.4 s pˇresnost´ı = 10−3 .
- 25 -
(2.2.2)
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE ˇ sen´ı: Reˇ
Numerick´e metody
Na zaˇc´atku je a0 = 2.3, b0 = 2.4 a prvn´ı stˇred je x1 = 2.35. Ta-
bulka 2.2.1 ukazuje pr˚ ubˇeh v´ ypoˇctu. Symbolem + nebo − za ˇc´ıslem zaznamen´av´ame znam´enko funkˇcn´ı hodnoty funkce f v tomto bodˇe. Vˇsimnˇeme si, ˇze xk+1 nahrazuje ak nebo bk tak, aby byla zachov´ana znam´enkov´a zmˇena. Aproximace koˇrene s pˇresnost´ı je posledn´ı ˇc´ıslo ve sloupci xk+1 . Proto x¯ = 2.378±10−3. Tabulka 2.2.1: Metoda p˚ ulen´ı intervalu.
2.2.2.
k
ak
bk
xk+1
(bk − ak )/2
0
2.3+
2.4−
2.35+
0.05
1
2.35+
2.4−
2.375+
0.025
2
2.375+
2.4−
2.3875−
0.0125
3
2.375+
2.3875−
2.38125−
0.00625
4
2.375+
2.38125−
2.378125+
0.003125
5
2.378125+
2.38125−
2.3796875−
0.0015625
6
2.378125+
2.3796875−
2.37890625+
0.00078125 < 10−3 =
Metoda regula falsi
V intervalu ak , bk zvol´ıme bod xk+1 jako koˇren pˇr´ımky p, kter´a proch´az´ı krajn´ımi body grafu funkce f , viz obr´azek 2.2.1.α. Uvaˇzovan´a pˇr´ımka je d´ana pˇredpisem p(x) = f (ak ) +
f (bk ) − f (ak ) (x − ak ) bk − ak
a jej´ı koˇren je urˇcen rovnost´ı p(xk+1 ) = 0. Odtud lze snadno odvodit vzorec xk+1 = ak −
bk − ak f (ak ), f (bk ) − f (ak )
(2.2.3)
kter´ y se pouˇz´ıv´a pˇri v´ ypoˇctu. Geometrick´ y smysl metody regula falsi je patrn´ y z obr´azku 2.2.1.β. Ukonˇcen´ı iterac´ı se prov´ad´ı podle krit´eria |xk+1 − xk | ≤ ,
- 26 -
(2.2.4)
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
xk+1
x1 x ¯
ak
x2 x3 x ¯
a0
bk
α
b0
β
Obr´azek 2.2.1: Metoda regula falsi. kde > 0 je dan´e mal´e ˇc´ıslo. Algoritmus (Metoda regula falsi) Vstup: f , a0 , b0 , , x0 := a0 . Pro k = 0, 1, . . . opakuj: xk+1 := ak − (bk − ak )/(f (bk ) − f (ak ))f (ak ); ystup; je-li f (xk+1 ) = 0, potom jdi na V´ je-li f (ak )f (xk+1 ) < 0, potom ak+1 := ak , bk+1 := xk+1 ; je-li f (xk+1 )f (bk ) < 0, potom ak+1 := xk+1 , bk+1 := bk ; dokud |xk+1 − xk | > . V´ystup: posledn´ı hodnota xk+1 .
Pˇ r´ıklad 2.2.2.
Metodou regula falsi vypoˇctˇete koˇren rovnice z pˇr´ıkladu 2.2.1.
ˇ sen´ı: Na zaˇc´atku je a0 = 2.3, b0 = 2.4 a poloˇz´ıme jeˇstˇe x0 = a0 . V prvn´ı Reˇ iteraci vypoˇc´ıt´ame . x1 := 2.3 − (2.4 − 2.3)f (2.3)/(f (2.4) − f (2.3)) = 2.379095, |x1 − x0 | = |2.379095 − 2.3| = 0.079095. Tabulka 2.2.2 zachycuje cel´ y v´ ypoˇcet, kter´ y se ˇr´ıd´ı podobn´ ymi pravidly jako u me-
- 27 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
tody p˚ ulen´ı intervalu. V´ ysledn´a aproximace koˇrene je x¯ = 2.379 ± 10−3 . Tabulka 2.2.2: Metoda regula falsi. k
ak
bk
xk+1
|xk+1 − xk |
0
2.3+
2.4−
2.379095+
0.079095
1
2.379095+
2.4−
2.379363+
0.000268 < 10−3 =
Pozn´ amka Ukonˇcovac´ı krit´erium (2.2.4) ˇr´ık´a, ˇze posledn´ı dvˇe aproximace koˇrene se liˇs´ı m´enˇe neˇz . M˚ uˇze se ovˇsem st´ at, ˇze obˇe jsou od skuteˇcn´e hodnoty koˇrene vzd´ alen´e v´ıce neˇz . Pozn´ame to tak, ˇze u funkˇcn´ıch hodnot f (xk − ), f (xk ), f (xk + ) nedojde ke znam´enkov´e zmˇenˇe. V takov´em pˇr´ıpadˇe je moˇzno prov´est doplˇ nuj´ıc´ı v´ypoˇcet funkˇcn´ıch hodnot . . . , f (xk − 2), f (xk − ), f (xk ), f (xk + ), f (xk + 2), . . . kter´y zastav´ıme, kdyˇz dojde ke znam´enkov´e zmˇenˇe. Kontroln´ı ot´ azky Ot´azka 1. V ˇcem se shoduj´ı a v ˇcem se liˇs´ı metoda p˚ ulen´ı intervalu a metoda regula falsi? Kter´a z nich je rychlejˇs´ı? Ot´azka 2. Podrobnˇe odvod’te vzorec (2.2.3). Ot´azka 3. Proˇc nelze metodu regula falsi ukonˇcovat podle krit´eria (2.2.2)? ´ Ulohy k samostatn´ emu ˇreˇsen´ı ulen´ı intervalu, = 10−3 . 1. Vypoˇctˇete koˇreny rovnice x2 −x− 67 ln x = 0 metodou p˚ 2. Vypoˇctˇete koˇreny rovnice z pˇredchoz´ı u ´ lohy metodou regula falsi. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Zaˇcneme-li na intervalu (0.9, 0.91), bude ve ˇctvrt´e iteraci x¯ = 0.9019 ± 10−3 . 2. Zaˇcneme-li na stejn´em intervalu, bude ve druh´e iteraci x¯ = 0.9021 ± 10−3 .
- 28 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
2.3.
Newtonova metoda
C´ıle Odvod´ıme Newtonovu metodu, kter´a kromˇe funkˇcn´ıch hodnot pouˇz´ıv´a tak´e hodnoty prvn´ı derivace. D˚ usledkem je vyˇsˇs´ı ˇra´d metody a rychlejˇs´ı konvergence. Nev´ yhodou je nutnost zvolit poˇc´ateˇcn´ı aproximaci bl´ızko” koˇrene tak, aby byly ” splnˇeny pˇredpoklady zaruˇcuj´ıc´ı konvergenci.
Pˇredpokl´ adan´ e znalosti Spojitost funkce. V´ypoˇcty derivac´ı. Taylor˚ uv rozvoj.
V´ yklad Budeme pˇredpokl´adat, ˇze zn´ame aproximaci xk koˇrene x¯ rovnice f (x) = 0 a chceme urˇcit dalˇs´ı (pˇresnˇejˇs´ı) aproximaci xk+1 . Zap´ıˇseme-li danou rovnici pomoc´ı Taylorova polynomu prvn´ıho stupnˇe v okol´ı bodu xk , dostaneme f (xk ) + (x − xk )f (xk ) + (x − xk )2
f (ξ) = 0, 2
kde ξ je bl´ıˇze neurˇcen´e ˇc´ıslo mezi x a xk . V tomto tvaru rovnice provedeme lineaˇ sen´ım linearizovan´e rizaci, pˇri n´ıˇz vypust´ıme kvadratick´ y ˇclen na lev´e stranˇe. Reˇ rovnice urˇc´ıme aproximaci xk+1 , tj. f (xk ) + (xk+1 − xk )f (xk ) = 0. Odtud snadno vyj´adˇr´ıme vzorec xk+1 = xk −
f (xk ) . f (xk )
(2.3.1)
Vˇsimnˇeme si jeˇstˇe, ˇze t(x) = f (xk ) + (x − xk )f (xk ) je rovnice teˇcny ke grafu funkce f v bodˇe xk , jej´ıˇz koˇren je aproximace xk+1 , viz obr´azek 2.3.1.α. Geometrick´ y smysl Newtonovy metody je zn´azornˇen na obr´azku 2.3.1.β.
- 29 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
Pro zah´ajen´ı v´ ypoˇctu podle vzorcem (2.3.1) mus´ıme zadat poˇc´ateˇcn´ı aproximaci x0 . O ukonˇcen´ı iterac´ı rozhodujeme pomoc´ı vhodn´eho krit´eria, budeme pouˇz´ıvat opˇet krit´erium (2.2.4).
x ¯
x ¯ x3 x2 x1 x0
xk+1 xk α
β
Obr´azek 2.3.1: Newtonova metoda. Algoritmus (Newtonova metoda) Vstup: f , f , x0 , . Pro k = 0, 1, . . . opakuj: xk+1 := xk − f (xk )/f (xk ); dokud |xk+1 − xk | > . V´ystup: posledn´ı hodnota xk+1 .
Pˇ r´ıklad 2.3.1.
Newtonovou metodou vypoˇctˇete koˇren rovnice z pˇr´ıkladu 2.2.1.
s pˇresnost´ı = 10−6 . ˇ sen´ı: Reˇ
Derivace funkce f (x) = 10 cos (x − 1) − x2 + 2x − 1 m´a tvar f (x) =
−10 sin (x − 1) − 2x + 2. Newtonova metoda je proto d´ana vzorcem xk+1 = xk −
10 cos (xk − 1) − (xk )2 + 2xk − 1 . −10 sin (xk − 1) − 2xk + 2
Poˇc´ateˇcn´ı aproximaci zvol´ıme napˇr´ıklad x0 = 2.4 a dostaneme x1 = 2.4 −
10 cos (2.4 − 1) − 2.42 + 2 · 2.4 − 1 = 2.37942798004. −10 sin (2.4 − 1) − 2 · 2.4 + 2
- 30 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
Cel´y pr˚ ubˇeh v´ ypoˇctu je zachycen v tabulce 2.3.1. V´ ysledn´a aproximace koˇrene je x¯ = 2.379364 ± 10−6 .
2 Tabulka 2.3.1: Newtonova metoda. k
|xk − xk−1 |
xk
1
2.37942798004 0.02057201996
2
2.37936459485 0.00006338519
3
2.37936459422 0.00000000062
V pˇr´ıkladu jsme mˇeli moˇznost si vˇsimnout velice rychl´e konvergence Newtonovy metody. N´asleduj´ıc´ı anal´ yza ukazuje, ˇze se nejednalo o n´ahodu. Vˇ eta 2.3.1. Necht’ f je spojit´a, f nenulov´a na a, b a necht’ {xk } je posloupnost na a, b poˇc´ıtan´a podle vzorce (2.3.1), kter´a konverguje k ˇc´ıslu x¯. Potom x¯ je koˇrenem rovnice f (x) = 0 a plat´ı x − xk |2 |¯ x − xk+1 | ≤ C|¯
pro k = 0, 1, 2, . . . ,
(2.3.2)
kde konstanta C ≥ 0 nez´avis´ı na k. D˚ ukaz: Limitn´ım pˇrechodem ve vzorci (2.3.1) dostaneme f (¯ x) = 0, ˇcili x¯ je uˇzeme f (¯ x) = 0 zapsat koˇren. Protoˇze pˇredpokl´ad´ame, ˇze f je spojit´a funkce, m˚ pomoc´ı Taylorova rozvoje ve tvaru x − xk )f (xk ) + (¯ x − xk )2 f (xk ) + (¯
f (ξ) = 0, 2
kde ξ je bod mezi xk a x¯. Vydˇel´ıme derivac´ı f (xk ) a dosad´ıme ze vzorce (2.3.1), ˇc´ımˇz dostaneme
f (ξ) = 0. 2f (xk ) Oznaˇc´ıme-li C = maxξ,x∈a,b |f (ξ)/2f (x)|, m˚ uˇzeme ps´at
f (ξ) x − xk |2 . |¯ x − xk+1 | =
k
|¯ x − xk |2 ≤ C |¯ 2f (x ) x − xk )2 x¯ − xk+1 + (¯
2
- 31 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
Pozn´ amka Nerovnost (2.3.2) dokazuje, ˇze Newtonova metoda je druh´ eho ˇ ra ´du. D˚ usledkem tohoto faktu je velmi rychl´a konvergence, pˇri n´ıˇz se poˇcet spr´avn´ych ˇc´ıslic za desetinnou teˇckou v kaˇzd´e iteraci pˇribliˇznˇe” zdvojn´ asob´ı. ” N´asleduj´ıc´ı vˇeta ˇr´ık´a, za jak´ ych pˇredpoklad˚ u konvergence nastane. Vˇ eta 2.3.2. Necht’ jsou splnˇeny n´asleduj´ıc´ı pˇredpoklady: a) f je nenulov´a na intervalu a, b; b) f nemˇen´ı znam´enko v intervalu (a, b); c) plat´ı f (a)f (b) < 0; d) plat´ı |f (a)/f (a)| < b − a a |f (b)/f (b)| < b − a. Potom posloupnost {xk } poˇc´ıtan´a podle vzorce (2.3.1) konverguje pro libovolnou poˇc´ateˇcn´ı aproximaci x0 ∈ a, b. Pˇ r´ıklad 2.3.2.
Ukaˇzte, ˇze pro rovnici z pˇr´ıkladu 2.3.1. jsou na intervalu
2.3, 2.4 splnˇeny pˇredpoklady vˇety 2.3.2. ˇ sen´ı: Reˇ
Rovnice je zadan´a funkc´ı f (x) = 10 cos (x − 1) − x2 + 2x − 1, jejiˇz
prvn´ı a druh´a derivace maj´ı tvar f (x) = −10 sin (x − 1) − 2x + 2 a f (x) = uˇzeme −10 cos (x − 1)−2. V tabulce 2.3.2 jsou vypoˇcteny hodnoty f , f , z nichˇz m˚ usoudit, ˇze jsou splnˇeny pˇredpoklady a) a b). . . V´ypoˇctem dost´av´ame f (2.3)f (2.4) = −0.2564 < 0, |f (2.3)/f (2.3)| = 0.0805 < . 0.1 a |f (2.4)/f (2.4)| = 0.0206 < 0.1, coˇz znamen´a, ˇze jsou splnˇeny tak´e pˇredpoklady c) a d). Poˇc´ateˇcn´ı aproximaci x0 je proto moˇzn´e zvolit libovolnˇe na 2.3, 2.4.
- 32 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
Tabulka 2.3.2: Tabelace prvn´ı a druh´e derivace. x
f (x)
f (x)
2.30 2.31 2.32 2.33 2.34 2.35 2.36 2.37 2.38 2.39 2.40
−12.2356 −12.2818 −12.3272 −12.3715 −12.4148 −12.4572 −12.4986 −12.5391 −12.5785 −12.6170 −12.6545
−4.6750 −4.5785 −4.4818 −4.3848 −4.2875 −4.1901 −4.0924 −3.9945 −3.8964 −3.7981 −3.6997
Kontroln´ı ot´ azky Ot´azka 1. Jak se odvozuje vzorec (2.3.1)? Jak´ y je jeho grafick´ y smysl? Ot´azka 2. Zkuste nakreslit situace, kdy Newtonova metoda diverguje. Ot´azka 3. Jak´eho ˇra´du je Newtonova metoda a jak se to projev´ı pˇri v´ ypoˇctu? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Ovˇeˇrte, ˇze pro rovnici x2 − x − 67 ln x = 0 jsou na intervalu 0.9, 0.91 splnˇeny pˇredpoklady a)–d) z vˇety 2.3.2. 2. Vypoˇctˇete koˇren z pˇredchoz´ı u ´ lohy pomoc´ı Newtonovy metody, = 10−6 . V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Z tabelace f (x) = 2x − 1 −
6 7x
a f (x) = 2 +
6 7x2
zjist´ıme, ˇze na uveden´em
intervalu je prvn´ı derivace z´aporn´a a druh´a derivace kladn´a. Pˇr´ım´ ym v´ ypoˇctem . . dostaneme f (0.9)f (0.91) = −3.28 · 10−7 < 0, |f (0.9)/f (0.9)| = 2.03 · 10−3 < 0.01 . a |f (0.91)/f (0.91)| = 8.71 · 10−3 < 0.01. 2. Zaˇcneme-li z x0 = 0.9, dostaneme ve tˇret´ı iteraci x¯ = 0.9020709 ± 10−6 .
- 33 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
2.4.
Numerick´e metody
Metoda prost´ e iterace
C´ıle Sezn´am´ıme se s obecnou metodu pro v´ ypoˇcet pevn´eho bodu funkce. Metody z pˇredchoz´ıch odstavc˚ u m˚ uˇzeme ch´apat jako jej´ı speci´aln´ı varianty. Pojem pevn´eho bodu hraje d˚ uleˇzitou roli v r˚ uzn´ych oblastech matematick´eho modelov´an´ı.
Pˇredpokl´ adan´ e znalosti Spojitost funkce. V´ypoˇcty derivac´ı. Vˇeta o stˇredn´ı hodnotˇe diferenci´aln´ıho poˇctu.
V´ yklad Rovnici f (x) = 0 pˇrevedeme na ekvivalentn´ı rovnici x − g(x) = 0, kde g je vhodn´a spojit´a funkce. M´ısto p˚ uvodn´ı rovnice budeme ˇreˇsit rovnici v iteraˇcn´ım tvaru: x = g(x).
(2.4.1)
ˇ ıslo x¯, kter´e je ˇreˇsen´ım rovnice (2.4.1), se naz´yv´a pevn´y bod funkce g. C´ Vˇ eta 2.4.1. (Brouwerova vˇ eta o pevn´ em bodu) Necht’ g je spojit´a funkce na intervalu a, b, pro niˇz plat´ı g(x) ∈ a, b ∀x ∈ a, b.
(2.4.2)
Pak na intervalu a, b existuje pevn´y bod funkce g. D˚ ukaz: Poloˇzme f (x) = x − g(x). Pokud f (a) = 0 resp. f (b) = 0, pak je bevn´ ym bodem a, resp. b. Necht’ f (a) = 0 a f (b) = 0. Protoˇze g(a) ∈ a, b, plat´ı f (a) = a − g(a) < 0. Podobnˇe lze uk´azat f (b) > 0. Dohromady dost´av´ame
- 34 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
2
f (a)f (b) < 0, takˇze existence pevn´eho bodu plyne z vˇety 2.1.1.
O funkci g, kter´a splˇ nuje (2.4.2), ˇr´ık´ame, ˇze zobrazuje interval a, b do sebe. yv´ame Necht’ x0 ∈ a, b je poˇc´ateˇcn´ı aproximace. Metodou prost´ych iterac´ı naz´ v´ ypoˇcet podle pˇredpisu: xk+1 = g(xk ),
k = 0, 1, 2, . . . .
(2.4.3)
Jestliˇze posloupnost {xk } poˇc´ıtan´a t´ımto postupem konverguje k ˇc´ıslu x¯, pak limitn´ım pˇrechodem v (2.4.3) dostaneme, ˇze x¯ je pevn´ym bodem funkce g. V´ychoz´ı rovnici f (x) = 0 m˚ uˇzeme pˇrev´est na iteraˇcn´ı tvar r˚ uzn´ymi zp˚ usoby, ale jen nˇekter´e vedou ke konvergentn´ımu v´ ypoˇctu.
Pˇ r´ıklad 2.4.1.
Rovnici f (x) ≡ ex − x2 + 1 = 0,
(2.4.4)
pˇreved’te na iteraˇcn´ı tvar a poˇc´ıtejte koˇren, kter´y leˇz´ı v intervalu −1.2, −1.1. ˇ sen´ı: Navrhneme tˇri iteraˇcn´ı tvary: Reˇ √ x = − ex + 1
≡ ga (x);
x = x + (ex − x2 + 1) ≡ gb (x); x = x−
ex − x2 + 1 ex − 2x
≡ gc (x).
ypoˇcet konverguje Pr˚ ubˇeh v´ ypoˇct˚ u pro x0 = −1.1 ukazuje tabulka 2.4.1. Pro ga v´ ypoˇcet diverguje a pro gc v´ ypoˇcet konverguje rychle. pomalu, pro gb v´
- 35 -
2
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
Tabulka 2.4.1: Metoda prost´e iterace. k
xk+1 = ga (xk )
xk+1 = gb (xk ) xk+1 = gc (xk )
0 1 2 3 4 5 6 7 8
−1.1 −1.1545003 −1.1468282 −1.1478861 −1.1477398 −1.1477600 −1.1477572 −1.1477576 −1.1477576
−1.1 −0.9771289 −0.5555196 +0.7096523 +3.2393301 +19.262693 ∞
−1.1 −1.1485105 −1.1477578 −1.1477576 −1.1477576
Pˇri studiu konvergence metody prost´ ych iterac´ı se pouˇz´ıv´a pojem kontrakce. Definice 2.4.1. Funkce g se naz´yv´a kontrakce na intervalu a, b, jestliˇze existuje konstanta L, 0 < L < 1, takov´a, ˇze |g(x) − g(y)| ≤ L|x − y| ∀x, y ∈ a, b.
(2.4.5)
Vˇ eta 2.4.2. Necht’ g je spojit´a kontrakce na a, b, kter´a zobrazuje tento interval do sebe. Pak na intervalu a, b existuje jedin´ y pevn´ y bod x¯ funkce g. Nav´ıc posloupnost {xk } vypoˇc´ıtan´a podle pˇredpisu (2.4.3) konverguje k x¯ pro kaˇzdou poˇc´ateˇcn´ı aproximaci x0 ∈ a, b.
D˚ ukaz: Existence pevn´eho bodu plyne z vˇety 2.4.1. Jednoznaˇcnost dok´aˇzeme sporem. Necht’ x˜ je dalˇs´ı pevn´ y bod g. Pomoc´ı (2.4.5) dostaneme |¯ x − x˜| = |g(¯ x) − g(˜ x)| ≤ L|¯ x − x˜|, odkud (1 − L)|¯ x − x˜| ≤ 0. Protoˇze 1 − L > 0, dost´av´ame x¯ = x˜. Zb´yv´a dok´azat, ˇze posloupnost {xk } vypoˇc´ıtan´a podle pˇredpisu (2.4.3) konverguje
- 36 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody k x¯. Podle (2.4.5) je
x)| ≤ L|xk−1 − x¯|, |xk − x¯| = |g(xk−1) − g(¯ odkud plyne |xk − x¯| ≤ Lk |x0 − x¯|. Protoˇze L ∈ (0, 1), je limk→∞ Lk = 0, a proto limk→∞ |xk − x¯| = 0.
(2.4.6) 2
V konkr´etn´ıch situac´ıch je zpravidla nesnadn´e dok´azat, ˇze dan´a funkce g je kontrakce. Jednoduˇsˇs´ı je ovˇeˇrovat n´asleduj´ıc´ı silnˇejˇs´ı pˇredpoklad: necht’ g m´a v (a, b) derivaci a ∃L ∈ (0, 1) tak, ˇze |g (η)| ≤ L ∀η ∈ (a, b).
(2.4.7)
Vˇ eta 2.4.3. Necht’ g je spojit´a funkce na a, b, kter´a zobrazuje tento interval do sebe a splˇ nuje (2.4.7). Pak plat´ı tvrzen´ı vˇety 2.4.2..
D˚ ukaz: Pomoc´ı vˇety o stˇredn´ı hodnotˇe diferenci´aln´ıho poˇctu dost´av´ame |g(x) − g(y)| = |g (η)| |x − y| ≤ L|x − y|, kde η ∈ (x, y). Funkce g je proto kontrakce na intervalu a, b a vˇeta 2.4.3. je tak 2
d˚ usledkem vˇety 2.4.2.
N´asleduj´ıc´ı pozn´amka d´av´a n´avod, jak rozhodnout o konvergenci metody prost´ ych iterac´ı. Pozn´ amka Je-li ˇc´ıslo Mg = max |g (x)| x∈(a,b)
menˇs´ı neˇz jedna, pak m˚ uˇzeme poloˇzit L = Mg a funkce g bude kontrakce na intervalu a, b. Rychlost konvergence lze posoudit podle velikosti L. Vztah (2.4.6) totiˇz ukazuje, ˇze v´ypoˇcet bude konvergovat rychleji pro menˇs´ı hodnoty L.
- 37 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Pˇ r´ıklad 2.4.2.
Numerick´e metody
Rozhodnˇete o konvergenci metody prost´ ych iterac´ı u iteraˇcn´ıch
tvar˚ u z pˇr´ıkladu 2.4.1. ˇ sen´ı: Reˇ
Derivov´an´ım ga , gb a gc dostaneme ex ga (x) = − √ x , 2 e +1 gb (x) = 1 + ex − 2x, gc (x) =
(ex − x2 + 1)(ex − 2) . (ex − 2x)2
Tabulka 2.4.2 obsahuje absolutn´ı hodnoty tˇechto derivac´ı na intervalu −1.2, −1.1. . . . Odtud Mga = 0.1442, Mgb = 3.7012 a Mgc = 0.0323. Protoˇze Mgb > 1 iteraˇcn´ı tvar b) diverguje. Pro iteraˇcn´ı tvary a) resp. c) m˚ uˇzeme poloˇzit Lga = Mga resp. Lgc = Mgc , takˇze funkce ga a gb jsou kontrakce a metoda prost´ ych iterac´ı konverguje. Protoˇze Lgc < Lga , je konvergence rychlejˇs´ı u iteraˇcn´ıho tvaru c). Tabulka 2.4.2: Posouzen´ı rychlosti konvergence metody prost´e iterace. x
|ga (x)|
|gb (x)|
|gc (x)|
−1.2000 −1.1875 −1.1750 −1.1625 −1.1500 −1.1375 −1.1250 −1.1125 −1.1000
0.1320 0.1335 0.1350 0.1365 0.1380 0.1395 0.1410 0.1426 0.1442
3.7012 3.6800 3.6588 3.6377 3.6166 3.5956 3.5747 3.5537 3.5329
0.0323 0.0248 0.0172 0.0094 0.0014 0.0067 0.0149 0.0233 0.0319
Kontroln´ı ot´ azky Ot´azka 1. Co naz´ yv´ame pevn´ ym bodem funkce? Jak se pevn´y bod poˇc´ıt´a? ˇ ım je zaruˇcena konvergence metody prost´ Ot´azka 2. C´ ych iterac´ı? Ot´azka 3. Jak´ y je vztah mezi metodou prost´e iterace a Newtonovou metodou?
- 38 -
ˇ SEN ˇ ´I NELINEARN ´ ´ICH ROVNIC 2. RE
Numerick´e metody
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pro rovnici x2 − x − 67 ln x = 0 uvaˇzujte iteraˇcn´ı tvar x = x2 − 67 log x ≡ g(x). Vypoˇc´ıtejte hodnotu konstanty Mg na intervalu 0.9, 0.91. 2. U iteraˇcn´ıho tvaru z pˇredchoz´ı u ´ lohy vypoˇc´ıtejte pevn´y bod s pˇresnost´ı = 10−6 . V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Z tabelace g (x) = 2x −
6 7x
. zjist´ıme, ˇze Mg = L = 0.8781.
. 2. Zaˇcneme-li z x0 = 0.9, dostaneme ve 38-m´e iteraci x38 = 0.9020659 a plat´ı . |x38 − x37 | = 0.00000086 < .
Shrnut´ı lekce Probrali jsem z´akladn´ı metody pro ˇreˇsen´ı neline´arn´ıch rovnic a uk´azali jsme jak tyto metody souvis´ı s vlastnostmi funkce, kter´a rovnici popisuje. Metoda p˚ ulen´ı intervalu a metoda regula falsi konverguj´ı pro kaˇzdou spojitou funkci. Rychlejˇs´ı Newtonova metoda vyˇzaduje spojitost druh´e derivace a splnˇen´ı dalˇs´ıch pˇredpoklad˚ u. Metoda prost´e iterace zahrnuje ostatn´ı iteraˇcn´ı metody jako speci´aln´ı pˇr´ıpad.
- 39 -
ˇ ´IME ´ METODY 3. SLR – PR
3.
Numerick´e metody
SLR – pˇ r´ım´ e metody
Pr˚ uvodce studiem Pˇr´ım´e metody ˇreˇsen´ı soustav line´arn´ıch rovnic (SLR) jsou zaloˇzeny na eliminaci nezn´am´ ych. V´ychoz´ı myˇslenka spoˇc´ıv´a v tom, ˇze z nˇekter´e rovnice vyj´adˇr´ıme jednu nezn´amou a dosad´ıme ji do ostatn´ıch rovnic tak, aby soustava po eliminaci byla sn´aze ˇreˇsiteln´a neˇz soustava p˚ uvodn´ı. Z´akladn´ı algoritmus tohoto typu je Gaussova eliminaˇcn´ı metoda. V maticov´em z´apisu j´ı odpov´ıd´a LU-rozklad matice. Charakteristick´ ym rysem pˇr´ım´ ych metod je v´ ypoˇcet (pˇresn´eho) ˇreˇsen´ı po koneˇcn´em poˇctu eliminac´ı, tj. po koneˇcn´em poˇctu aritmetick´ ych operac´ı.
3.1.
Formulace u ´lohy
C´ıle Pˇripomeneme z´akladn´ı poznatky o soustav´ach line´arn´ıch rovnic.
Pˇredpokl´ adan´ e znalosti Operace s maticemi. Determinant. Matice jednotkov´a a inverzn´ı.
V´ yklad V pˇredchoz´ıch odstavc´ıch jsme ˇreˇsili rovnici f (x) = 0. Nejjednoduˇsˇs´ım pˇr´ıkladem je line´arn´ı rovnice ax = b. Je–li a = 0, m˚ uˇzeme ˇreˇsen´ı zapsat ve tvaru ´ lohy: x = a−1 b. Nyn´ı se budeme zab´yvat zobecnˇen´ım t´eto u Necht’ A = (aij ) je dan´a ˇctvercov´a matice ˇra´du n s prvky aij a necht’ b = (bi ) je dan´ y sloupcov´ y vektor s n prvky bi , i = 1, . . . , n, j = 1, . . . , n; hled´ame sloupcov´ y vektor x takov´ y, ˇze Ax = b.
- 40 -
(3.1.1)
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Oznaˇc´ıme–li xi prvky vektoru x, pak m˚ uˇzeme rovnici (3.1.1) zapsat jako soustavu line´arn´ıch rovnic:
⎫ ⎪ a11 x1 + a12 x2 + . . . + a1n xn = b1 , ⎪ ⎪ ⎪ ⎪ ⎪ a21 x1 + a22 x2 + . . . + a2n xn = b2 , ⎬ ⎪ ⎪ .............................. ⎪ ⎪ ⎪ ⎪ an1 x1 + an2 x2 + . . . + ann xn = bn . ⎭
Pro existenci jedin´eho ˇreˇsen´ı rovnice ax = b mus´ı b´ yt a = 0. Analogick´ y pˇrepoklad je potˇreba i pˇri ˇreˇsen´ı rovnice (3.1.1). T´ımto pˇredpokladem je nenulovost determinantu matice A, tj. det A = 0. Matice A, kter´a m´a nenulov´ y determinant se naz´ yv´a regul´ arn´ı, v opaˇcn´em pˇr´ıpadˇe se naz´yv´a singul´arn´ı. Ke kaˇzd´e regul´arn´ı matici A existuje jedin´a inverzn´ı matice A−1 , pro niˇz plat´ı AA−1 = A−1 A = I, kde I je matice jednotkov´a. Je-li matice A regul´arn´ı, pak m˚ uˇzeme obˇe strany rovnice (3.1.1) vyn´asobit inverzn´ı matic´ı A−1 , tj. A−1 (Ax) = A−1 b. Protoˇze A−1 (Ax) = (A−1 A)x = Ix = x, dost´av´ame x = A−1 b.
(3.1.2)
Tento vzorec d´av´a n´avod jak vypoˇc´ıtat ˇreˇsen´ı. Pˇ r´ıklad 3.1.1.
Pomoc´ı vzorce (3.1.2) vyˇreˇste soustavu line´arn´ıch rovnic: x1 + x2 + x3 = 6, 2x1 + 4x2 + 2x3 = 16,
(3.1.3)
−x1 + 5x2 − 4x3 = −3. ˇ sen´ı: Protoˇze Reˇ ⎛ ⎜ ⎜ A=⎜ ⎜ ⎝
1 1
1
⎛
⎞
⎟ ⎟ 2 4 2 ⎟ ⎟, ⎠ −1 5 −4
A
−1
- 41 -
13 3
⎜ ⎜ =⎜ ⎜ −1 ⎝ − 73
− 32 1 2
1 3
⎞
⎟ ⎟ 0 ⎟ ⎟ ⎠
1 − 13
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
(staˇc´ı ovˇeˇrit A−1 A = I), dost´av´ame ˇreˇsen´ı ⎞⎛ ⎛ ⎞ ⎛ ⎞ 13 3 1 − 6 1 2 3 ⎟⎜ ⎜ 3 ⎟ ⎜ ⎟ ⎟⎜ ⎜ ⎟ ⎜ ⎟ 1 ⎟ ⎜ 16 ⎟ = ⎜ 2 ⎟ . x=⎜ −1 0 ⎟⎜ ⎜ ⎟ ⎜ ⎟ 2 ⎠⎝ ⎝ ⎠ ⎝ ⎠ 7 1 −3 1 −3 −3 3
Pozn´ amka U rozs´ ahlejˇs´ıch soustav line´ arn´ıch rovnic je pouˇzit´ı vzorce (3.1.2) neekonomick´e, protoˇze nalezen´ı inverzn´ı matice vyˇzaduje velk´e mnoˇzstv´ı v´ypoˇct˚ u.
Kontroln´ı ot´ azky Ot´azka 1. Kdy je matice regul´arn´ı a kdy je singul´arn´ı? Ot´azka 2. Pˇripomeˇ nte si metody v´ ypoˇctu determinatu a inverzn´ı matice. ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Uvaˇzujme soustavu line´arn´ıch rovnic −x1 − 3x2 + 2x3 = −9, −6x1 − 19x2 + 10x3 = −59, 3x1 + 9x2 − 5x3 = 28. Vypoˇctˇete inverzn´ı matici a soustavu vyˇreˇste pomoc´ı vzorce (3.1.2). V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1.
⎛
−1
−3
2
⎜ ⎜ A=⎜ ⎜ −6 −19 10 ⎝ 3 9 −5
⎛
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
−1
A
5
3
8
⎞
⎜ ⎟ ⎜ ⎟ ⎜ = ⎜ 0 −1 −2 ⎟ ⎟, ⎝ ⎠ 3 0 1
- 42 -
⎛
2
⎞
⎜ ⎟ ⎜ ⎟ ⎟ x=⎜ ⎜ 3 ⎟. ⎝ ⎠ 1
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
3.2.
Gaussova eliminaˇ cn´ı metoda (GEM)
C´ıle Pˇripomeneme GEM a posoud´ıme v´ ypoˇcetn´ı n´aroˇcnost jejich ˇc´ast´ı. Pro jednoduchost budeme uvaˇzovat soustavy s regul´arn´ı matic´ı. Pˇredpokl´ adan´ e znalosti Prov´adˇen´ı eliminac´ı u soustav line´arn´ıch rovnic. V´ yklad Nejdˇr´ıve uk´aˇzeme GEM na pˇr´ıkladu. Soustavu line´arn´ıch rovnic (3.1.3) m˚ uˇzeme zapsat ve tvaru:
Ax = b, tj.
⎛ ⎜ ⎜ ⎜ ⎜ ⎝
1 1
1
⎞⎛
x1
⎞
⎛
6
⎞
⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎜ x ⎟ = ⎜ 16 ⎟ . 2 4 2 ⎟ 2 ⎟ ⎟⎜ ⎟ ⎜ ⎠ ⎠⎝ ⎠ ⎝ −3 −1 5 −4 x3
(3.2.1)
V prvn´ı f´azi eliminujeme v prvn´ım sloupci. Prvn´ı rovnici vyn´asob´ıme ˇc´ıslem m21 = −2 resp. m31 = 1 a pˇriˇcteme ⎛ 1 ⎜ ⎜ A1 x = b1 , tj. ⎜ ⎜ 0 ⎝ 0
ke druh´e resp. tˇret´ı rovnici. Dostaneme: ⎞ ⎛ ⎞ ⎞⎛ 1 1 6 x1 ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ 2 0 ⎟ ⎟ ⎜ x2 ⎟ = ⎜ 4 ⎟ . ⎠ ⎝ ⎠ ⎠⎝ x3 6 −3 3
Ve druh´e f´azi eliminujeme ve druh´em sloupci. Druhou rovnici vyn´asob´ıme ˇc´ıslem m32 = −3 a pˇriˇcteme ke tˇret´ı rovnici. Dostaneme: ⎛ ⎞ ⎛ ⎞⎛ 1 1 1 6 x1 ⎜ ⎟ ⎜ ⎟⎜ ⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ x ⎟ = ⎜ 4 A2 x = b2 , tj. ⎜ 0 2 0 ⎜ ⎟⎜ 2 ⎟ ⎜ ⎝ ⎠ ⎝ ⎠⎝ x3 0 0 −3 −9
⎞ ⎟ ⎟ ⎟ ⎟ ⎠
Posledn´ı soustavu s horn´ı troj´ uheln´ıkovou matic´ı budeme zapisovat jako Ux = y, tj. U = A2 , y = b2 . Pro lepˇs´ı n´azornost pouˇzijeme z´apis po rovnic´ıch:
- 43 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
x1 + x2 + x3 = 6,
.
= 4,
2x2
(3.2.2)
−3x3 = −9. Odtud x3 = 3, x2 = 2 a x1 = 1. Na pˇr´ıkladu jsme vidˇeli,ˇze GEM m´a dvˇe ˇc´asti: • dopˇredn´y chod je u ´ prava v´ ychoz´ı soustavy Ax = b na soustavu Ux = y s horn´ı troj´ uheln´ıkovou matic´ı U; • zpˇetn´y chod je v´ ypoˇcet ˇreˇsen´ı ze soustavy Ux = y. 3.2.1.
Zpˇ etn´ y chod GEM
Uvaˇzujme soustavu line´arn´ıch rovnic Ux = y s horn´ı troj´ uheln´ıkovou matic´ı U = (uij ), uij = 0, i > j, a vektorem prav´e strany y = (yi). Zap´ıˇseme-li tuto soustavu po jednotliv´ ych rovnic´ıch, dostaneme u11 x1 + u12 x2 + . . . + u1n xn = y1 , u22 x2 + . . . + u2n xn = y2 , ..................... unn xn = yn . V´ypoˇcet ˇreˇsen´ı x = (xi ) se prov´ad´ı postupn´ym dosazov´an´ım od konce”. ” Algoritmus (Zpˇ etn´ y chod GEM) Vstup: U = (uij ), y = (yi). xn := yn /unn . Pro i = n − 1, . . . , 1 poˇc´ıtej i-tou nezn´amou: xi := (yi − uin xn − . . . − uii+1 xi+1 )/uii . V´ystup: x = (xi ). Vˇsimnˇeme si poˇctu operac´ı. Pˇri v´ ypoˇctu i-t´e nezn´am´e potˇrebujeme prov´est
- 44 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
jedno dˇelen´ı a n − i odˇc´ıt´an´ı a n´asoben´ı. Celkov´ y poˇcet operac´ı je 1
[1 + 2(n − i)] = n2 = O(n2 ).
i=n
3.2.2.
Dopˇ redn´ y chod GEM
Dopˇredn´y chod GEM se dˇel´ı na f´aze. V k-t´e f´azi, 1 ≤ k ≤ n − 1, se prov´ad´ı eliminace v k-t´em sloupci matice. Pro jednoduchost budeme pˇredpokl´adat, ˇze nen´ı potˇreba mˇenit poˇrad´ı ˇra´dk˚ u tak, jak tomu bylo v naˇsem u ´ vodn´ım pˇr´ıkladu. Na tomto pˇr´ıkladu by si mˇel ˇcten´aˇr tak´e ilustrovat vˇsechny n´ıˇze uveden´e pojmy. (k)
Prvky matice na zaˇc´atku k–t´e f´aze oznaˇc´ıme aij a prvky vektoru prav´e strany (k)
(1)
(1)
ain+1 (na zaˇc´atku 1. f´aze je aij = aij a ain+1 = bi ). Eliminace prov´ad´ıme v k-t´em (k)
sloupci matice pod jej´ım diagon´aln´ım prvkem akk , kter´emu ˇr´ık´ame hlavn´ı prvek k-t´e f´aze. Nejdˇr´ıve poˇc´ıt´ame multiplik´ atory k-t´e f´aze (k)
mik = −
aik
(k)
,
i = k + 1, . . . , n
akk
(3.2.3)
a pak pˇriˇcteme mik -n´asobek k-t´eho ˇra´dku k ˇra´dku i-t´emu, tj. (k+1)
aij
(k)
(k)
:= aij + mik akj ,
j = k + 1, . . . , n + 1,
pro i = k + 1, . . . , n + 1. Algoritmus (Dopˇ redn´ y chod GEM) Vstup: A = (aij ), b = (bi ). (1)
(1)
aij := aij , ain+1 := bi , i, j = 1, . . . , n. Pro k = 1, . . . , n − 1 proved’ k-tou f´azi: Pro i = k + 1, . . . , n pˇriˇcti mik -n´asobek k-t´eho ˇra´dku k i-t´emu ˇra´dku: (k)
(k)
mik := − aik /akk ; Pro j = k + 1, . . . , n + 1 proved’ pˇriˇc´ıt´an´ı v j-t´em sloupci: (k+1)
aij
(k)
(k)
:= aij + mik akj .
(n)
(n)
Poloˇz uij := aij pro i ≤ j, uij := 0 pro i > j, yi := ain+1 , i, j = 1, . . . , n. V´ystup: U = (uij ), y = (yi ).
- 45 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Ze vzorce (3.2.3) je vidˇet, ˇze hlavn´ı prvek mus´ı b´ yt nenulov´ y. Pokud nen´ı, provedeme na zaˇc´atku k-t´e f´aze v´ybˇer hlavn´ıho prvku, viz pˇr´ıˇst´ı odstavec. Vˇsimnˇeme si jeˇstˇe poˇctu operac´ı. V k-t´e f´azi mus´ıme prov´est n − k dˇelen´ı pˇri (k+1)
v´ ypoˇctu multiplik´ator˚ u a kromˇe toho poˇc´ıt´ame (n − k)(n − k + 1) prvk˚ u aij pomoc´ı dvou operac´ı (n´asoben´ı a sˇc´ıt´an´ı). Celkov´ y poˇcet operac´ı je proto n−1
[(n − k) + 2(n − k)(n − k + 1)] =
k=1
2 3 1 2 1 n − n + n. 3 2 3
ˇ ık´ame, ˇze dopˇredn´y chod Pro velk´a n pˇrevaˇzuje v posledn´ım v´ yrazu ˇclen 23 n3 . R´ GEM vyˇzaduje O( 23 n3 ) operac´ı. 3.2.3.
V´ ybˇ er hlavn´ıho prvku
C´ılem je vybrat hlavn´ı prvek tak, aby byl co nejvˇetˇs´ı v absolutn´ı hodnotˇe. V prvn´ı f´azi dopˇredn´eho chodu GEM se za hlavn´ı prvek vybere v absolutn´ı hodnotˇe nejvˇetˇs´ı ˇc´ıslo z prvn´ıho sloupce matice a eliminace se provedou ve vˇsech ˇra´dc´ıch neobsahuj´ıc´ıch hlavn´ı prvek. V k-t´e f´azi se cel´y v´ ypoˇcet omez´ı na ˇra´dky, v nichˇz dosud hlavn´ı prvek nebyl vybr´an. Nejprve se jako hlavn´ı prvek vybere v absolutn´ı hodnotˇe nejvˇetˇs´ı z ˇc´ısel leˇz´ıc´ıch v k-t´em sloupci a pˇr´ısluˇsn´ych ˇra´dc´ıch a pak se provedou eliminace ve zb´ yvaj´ıc´ıch ˇra´dc´ıch. Tento postup lze snadno realizovat pˇrehazov´an´ım ˇra´dk˚ u. Do algoritmu dopˇredn´eho chodu GEM staˇc´ı na zaˇc´atek k-t´e f´aze vsunout n´asleduj´ıc´ı doplnˇek: ⎧ ⎨ Najdi p, p ≥ k, takov´e, ˇze |a(k) | = max{|a(k) |, i ≥ k}; pk ik ⎩ Prohod’ p-t´y a k-t´y ˇradek matice v k-t´e f´azi. Algoritmus dopˇredn´eho chodu GEM s v´ ybˇerem hlavn´ıho prvku je pouˇziteln´ y pro kaˇzdou regul´arn´ı matici. Pˇ r´ıklad 3.2.1. Soustavu line´arn´ıch rovnic (3.2.1) ˇreˇste pomoc´ı GEM s v´ybˇerem hlavn´ıho prvku.
- 46 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody ˇ sen´ı: Reˇ ⎛ ⎜ ⎜ ⎜ ⎜ ⎝
V´ybˇer hlavn´ıho prvku a eliminace v prvn´ı f´azi:
2 4
2
⎞⎛
x1
⎞
⎛
16
⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎜ x ⎟=⎜ 6 1 1 1 ⎟ ⎟⎜ 2 ⎟ ⎜ ⎠ ⎝ ⎠⎝ x3 −1 5 −4 −3
⎞ ⎛
2
4
2
⎟ ⎜ ⎟ ⎜ ⎟ , ⎜ 0 −1 0 ⎟ ⎜ ⎠ ⎝ 0 7 −3
⎞⎛
x1
⎞
⎛
16
⎞
⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ x ⎟ = ⎜ −2 ⎟ . ⎟ ⎟⎜ 2 ⎟ ⎜ ⎠ ⎝ ⎠ ⎠⎝ x3 5
V´ybˇer hlavn´ıho prvku a eliminace ve druh´e f´azi: ⎛
2
4
2
⎞⎛
x1
⎜ ⎟⎜ ⎜ ⎟⎜ ⎜ 0 ⎟⎜ x 7 −3 ⎜ ⎟⎜ 2 ⎝ ⎠⎝ x3 0 −1 0
⎞
⎛
⎟ ⎜ ⎟ ⎜ ⎟=⎜ ⎟ ⎜ ⎠ ⎝
16
⎞ ⎛
2 4
2
⎟ ⎜ ⎟ ⎜ ⎜ 5 ⎟ ⎟ , ⎜ 0 7 −3 ⎠ ⎝ −2 0 0 − 37
⎞⎛
x1
⎞
⎛
16
⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ x ⎟ = ⎜ 5 ⎟⎜ 2 ⎟ ⎜ ⎠⎝ ⎠ ⎝ x3 − 97
⎞ ⎟ ⎟ ⎟ ⎟ ⎠
Zpˇetn´ ym chodem GEM vypoˇc´ıt´ame x3 = 3, x2 = 2 a x1 = 1.
Kontroln´ı ot´ azky Ot´azka 1. Z jak´ ych ˇc´ast´ı se skl´ad´a algoritmus GEM a jak jsou v´ ypoˇcetnˇe n´aroˇcn´e? Ot´azka 2. Proˇc se prov´ad´ı v´ ybˇer hlavn´ıho prvku? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Soustavu line´arn´ıch rovnic −x1 − 3x2 + 2x3 = −9, −6x1 − 19x2 + 10x3 = −59, 3x1 + 9x2 − 5x3 = 28 ˇreˇste pomoc´ı GEM bez v´ybˇeru a s v´ ybˇerem hlavn´ıho prvku. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı ˇ sen´ım je vektor x = (2, 3, 1). 1. Reˇ
- 47 -
ˇ ´IME ´ METODY 3. SLR – PR
3.3.
Numerick´e metody
LU–rozklad
C´ıle Z Gaussovy eliminaˇcn´ı metody odvod´ıme LU-rozklad matice.
Pˇredpokl´ adan´ e znalosti Dopˇredn´y a zpˇetn´ y chod GEM. V´ybˇer hlavn´ıho prvku. Permutaˇcn´ı matice.
V´ yklad K regul´arn´ı ˇctvercov´e matici A budeme hledat doln´ı troj´ uheln´ıkovou matici L a horn´ı troj´ uheln´ıkovou matici U tak, aby platilo A = LU. Zaˇcneme pˇr´ıkladem s matic´ı soustavy (3.2.1). Nav´aˇzeme pˇritom na pˇr´ıklad ze zaˇc´atku odstavce 3.2, kdy jsme pomoc´ı dopˇredn´eho chodu GEM vytvoˇrili z A v prvn´ı f´azi A1 a ve druh´e f´azi A2 : ⎛ ⎜ ⎜ A=⎜ ⎜ ⎝
1 1
1
⎞
⎟ ⎟ 2 4 2 ⎟ ⎟, ⎠ −1 5 −4
⎛
1 1
1
⎜ ⎜ A1 = ⎜ 0 ⎜ 0 2 ⎝ 0 6 −3
⎛
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
1 1
1
⎜ ⎜ A2 = ⎜ 0 ⎜ 0 2 ⎝ 0 0 −3
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
uheln´ıkov´a matice, poloˇz´ıme U = A2 . Zb´yv´a uk´azat, jak Protoˇze A2 je horn´ı troj´ vypad´a doln´ı troj´ uheln´ıkov´a matice L. u Prvn´ı f´azi zap´ıˇseme jako n´asoben´ı matic´ı M1 , kterou sestav´ıme z multiplik´ator˚ m21 = −2 a m31 = 1: ⎛
⎞ 1
0 0
⎜ ⎜ A1 = M1 A, kde M1 = ⎜ m21 1 0 ⎝ m31 0 1
- 48 -
⎛
⎞ 1 0 0
⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ −2 1 0 ⎠ ⎝ 1 0 1
⎟ ⎟ ⎟. ⎠
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Podobnˇe druhou f´azi zap´ıˇseme jako n´asoben´ı matic´ı M2 , kter´a je urˇcena multiplik´atorem m32 = −3:
A2
⎞
⎛
⎞
⎛
1 0 0 1 0 0 ⎟ ⎟ ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ = M2 A1 , kde M2 = ⎜ 0 1 0 ⎟ = ⎜ 0 1 0 ⎟. ⎠ ⎠ ⎝ ⎝ 0 −3 1 0 m32 1
Dosazen´ım dostaneme U = A2 = M2 M1 A a odtud −1 A = M−1 1 M2 U. −1 ıme vˇsak jeˇstˇe provˇeˇrit, Zd´a se, ˇze matice L by mohl b´ yt souˇcin M−1 1 M2 . Mus´
zda je to opravdu doln´ı troj´ uheln´ıkov´a matice. Nejdˇr´ıve si vˇsimnˇeme, ˇze inverzn´ı −1 ı tvar matice M−1 1 a M2 maj´ ⎛
⎞ 1
0 0
⎜ ⎜ M−1 = ⎜ −m21 1 0 1 ⎝ −m31 0 1
⎟ ⎜ ⎟ ⎜ ⎟=⎜ ⎠ ⎝ ⎞
⎛ 1
0
⎛
0
⎞ 1 0 0
⎟ ⎟ 2 1 0 ⎟, ⎠ −1 0 1
⎛
⎞ 1 0 0
⎟ ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ ⎟ = = M−1 ⎟ ⎜ ⎜ 0 1 0 0 1 0 ⎟ 2 ⎠ ⎝ ⎝ ⎠ 0 −m32 1 0 3 1 −1 asoben´ım dostaneme (staˇc´ı ovˇeˇrit, ˇze plat´ı M−1 1 M1 = I a M2 M2 = I ). Vyn´ ⎞ ⎛ ⎛ ⎞ 1 0 0 1 0 0 ⎟ ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ ⎟ −1 −1 M1 M2 = ⎜ −m21 1 0 ⎟ = ⎜ 2 1 0 ⎟. ⎠ ⎝ ⎝ ⎠ −m31 −m32 1 −1 3 1 −1 Proto m˚ uˇzeme poloˇzit L = M−1 1 M2 ⎛ 1 0 ⎜ ⎜ A=⎜ 2 1 ⎝ −1 3
a plat´ı ⎞⎛ 0 1 1 1 ⎟⎜ ⎟⎜ 0 ⎟⎜ 0 2 0 ⎠⎝ 1 0 0 −3
- 49 -
⎞ ⎟ ⎟ ⎟. ⎠
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Uveden´y postup lze zobecnit pro matici libovoln´eho ˇra´du n. Vˇ eta 3.3.1. Necht’ A je matice ˇra´du n, kterou lze dopˇredn´ym chodem GEM bez v´ybˇeru hlavn´ıho prvku upravit na horn´ı troj´ uheln´ıkovou matici U. Necht’ mik , k = 1, . . . , n − 1, i = k + 1, . . . , n jsou multiplik´atory k-t´e f´aze, z nichˇz vytvoˇr´ıme doln´ı troj´ uheln´ıkovou matici L = (lik ) tak, ˇze lik = −mik , i > k, lii = 1 a lik = 0, i < k. Potom plat´ı A = LU. Z pˇredchoz´ıho odstavce v´ıme, ˇze dopˇredn´y chod GEM bez v´ ybˇeru hlavn´ıho prvku nelze prov´est pro kaˇzdou matici A. Obecn´ y tvar LU-rozkladu proto obsahuje jeˇstˇe permutaˇcn´ı matici, kter´a popisuje pˇrehazov´an´ı ˇra´dk˚ u, k nimˇz doch´az´ı pˇri v´ ybˇeru hlavn´ıho prvku. Vˇ eta 3.3.2. Necht’ A je regul´arn´ı matice ˇra´du n. Pak existuj´ı doln´ı troj´ uheln´ıkov´a matice L, horn´ı troj´ uheln´ıkov´a matice U a permutaˇcn´ı matice P ˇra´du n takov´e, ˇze PA = LU.
(3.3.1)
D˚ ukaz: Princip d˚ ukazu je n´asleduj´ıc´ı. Pˇrehazov´an´ı ˇra´dk˚ u v pr˚ ubˇehu dopˇredn´eho chodu GEM se zaznamen´a v permutaˇcn´ı matici P. Jestliˇze se vr´at´ıme na zaˇc´atek a vytvoˇr´ıme PA (tj. pˇrehod´ıme ˇra´dky matice A tak, jak to vyˇzaduje pr˚ ubˇeh v´ ypoˇctu), pak m˚ uˇzeme pro tuto matici naj´ıt jej´ı LU-rozklad podle vˇety 3.3.1. 2 Pˇri praktick´em v´ ypoˇctu LU-rozkladu (3.3.1) postupujeme napˇr´ıklad takto: ˜ = A, P ˜ =IaL ˜ = I; • vytvoˇr´ıme pomocn´e matice U ˜ prov´ad´ıme dopˇredn´y chod GEM s v´ybˇerem hlavn´ıho prvku; • v matici U ˜ pˇrehazujeme ˇra´dky stejnˇe jako v matici U; ˜ • v matici P ˜ zap´ıˇseme v kaˇzd´e f´azi multiplik´atory (s opaˇcn´ymi znam´enky) • do matice L ˜ pˇrehod´ıme v L ˜ ˇra´dky i sloupce; a pˇri pˇrehozen´ı ˇra´dk˚ uvU ˜ L=L ˜ a U = U. ˜ • nakonec dost´av´ame P = P,
- 50 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Pˇ r´ıklad 3.3.1.
Vypoˇctˇete LU-rozklad (3.3.1) pro matici ⎛ ⎜ ⎜ A=⎜ ⎜ ⎝
1 1
1
⎞
⎟ ⎟ 2 4 2 ⎟ ⎟. ⎠ −1 5 −4
ˇ sen´ı: Reˇ ⎛
1 1 1 ⎜ ⎜ ˜ =⎜ 2 4 2 U ⎜ ⎝ −1 5 −4
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
⎞
⎛
1 0 0 ⎟ ⎜ ⎟ ⎜ ⎜ ˜ P=⎜ 0 1 0 ⎟ ⎟, ⎠ ⎝ 0 0 1
⎞
⎛
1 0 0 ⎟ ⎜ ⎟ ⎜ ⎜ ˜ L=⎜ 0 1 0 ⎟ ⎟. ⎠ ⎝ 0 0 1
V´ybˇer hlavn´ıho prvku v prvn´ı f´azi: ⎛
2
4
2
⎜ ⎜ ˜ =⎜ 1 1 1 U ⎜ ⎝ −1 5 −4
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
⎛
0 1 0
⎜ ⎜ ˜ =⎜ 1 0 0 P ⎜ ⎝ 0 0 1
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
⎛
1 0 0
⎜ ⎜ ˜ =⎜ 0 1 0 L ⎜ ⎝ 0 0 1
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
Eliminace v prvn´ı f´azi s multiplik´atory m21 = − 12 a m31 = 12 : ⎛
2
4
2
⎜ ⎜ ˜ = ⎜ 0 −1 0 U ⎜ ⎝ 0 7 −3
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
⎛
0 1 0
⎜ ⎜ ˜ =⎜ 1 0 0 P ⎜ ⎝ 0 0 1
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
⎛ ⎜ ⎜ ˜ =⎜ L ⎜ ⎝
1 0 0 1 2
− 12
⎞
⎟ ⎟ 1 0 ⎟ ⎟. ⎠ 0 1
V´ybˇer hlavn´ıho prvku ve druh´e f´azi: ⎛
⎞
2 4 2 ⎜ ⎟ ⎜ ⎟ ˜ ⎜ U = ⎜ 0 7 −3 ⎟ ⎟, ⎝ ⎠ 0 −1 0
⎛
⎞
0 1 0 ⎜ ⎟ ⎜ ⎟ ˜ ⎜ P=⎜ 0 0 1 ⎟ ⎟, ⎝ ⎠ 1 0 0
- 51 -
⎛
⎞
1 0 0 ⎟ ⎜ ⎟ ⎜ 1 ˜ ⎜ L = ⎜ −2 1 0 ⎟ ⎟. ⎠ ⎝ 1 0 1 2
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Eliminace ve druh´e f´azi s multiplik´atorem m32 = 17 : ⎛
2 4
2
⎜ ⎜ ˜ U=⎜ ⎜ 0 7 −3 ⎝ 0 0 − 37
⎛
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
0 1 0
⎜ ⎜ ˜ P=⎜ ⎜ 0 0 1 ⎝ 1 0 0
⎞
⎛
⎟ ⎟ ⎟, ⎟ ⎠
⎜ ⎜ 1 ˜ L=⎜ ⎜ −2 ⎝
1
1 2
0 0
⎟ ⎟ 1 0 ⎟ ⎟. ⎠ 1 −7 1
˜ L=L ˜ a U = U. ˜ V´ysledek je P = P,
Kontroln´ı ot´ azky Ot´azka 1. Jak souvis´ı LU-rozklad s GEM? Ot´azka 2. Jak se prov´ad´ı v´ ypoˇcet LU-rozkladu? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pro matici
⎛
−1
−3
2
⎜ ⎜ A=⎜ ⎜ −6 −19 10 ⎝ 3 9 −5
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
vypoˇctˇete LU-rozklad A = LU. 2. Pro matici z pˇredchoz´ı u ´ lohy vypoˇctˇete LU-rozklad PA = LU. 3. Jak´a je v´ ypoˇcetn´ı n´aroˇcnost LU-rozkladu? V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1.
⎛ ⎜ ⎜ L=⎜ ⎜ ⎝
1 0 0
⎞
⎟ ⎟ 6 1 0 ⎟ ⎟, ⎠ −3 0 1
⎛ ⎜ ⎜ U=⎜ ⎜ ⎝
- 52 -
−1 −3
2
⎞
⎟ ⎟ 0 −1 −2 ⎟ ⎟. ⎠ 0 0 1
⎞
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody 2. ⎛
0 1 0
⎜ ⎜ P=⎜ ⎜ 0 0 1 ⎝ 1 0 0
⎞
⎛
⎟ ⎟ ⎟, ⎟ ⎠
⎜ ⎜ 1 L=⎜ ⎜ −2 ⎝
1
1 6
0 0
⎞
⎟ ⎟ 1 0 ⎟ ⎟, ⎠ 1 −3 1
⎛ ⎜ ⎜ U=⎜ ⎜ ⎝
−6 −19 10 0
− 12
0
0
⎞
⎟ ⎟ 0 ⎟ ⎟. ⎠ 1 3
3. V´ypoˇcetn´ı n´aroˇcnost je zhruba stejn´a jako u dopˇredn´eho chodu GEM. Objem v´ ypoˇctu se zmenˇsil o u ´ pravu vektoru prav´e strany, coˇz pˇredstavuje O(n2 ) operac´ı. Plat´ı O( 23 n3 ) − O(n2 ) = O( 23 n3 ).
- 53 -
ˇ ´IME ´ METODY 3. SLR – PR
3.4.
Numerick´e metody
Pouˇ zit´ı LU-rozkladu
C´ıle LU-rozklad pouˇzijeme pro ˇreˇsen´ı z´akladn´ıch u ´ loh line´arn´ı algebry.
Pˇredpokl´ adan´ e znalosti V´ypoˇcet LU-rozkladu.
V´ yklad 3.4.1.
ˇ sen´ı soustav line´ Reˇ arn´ıch rovnic
Uvaˇzujme soustavu line´arn´ıch rovnic Ax = b s regul´arn´ı ˇctvercovou matic´ı ˇra´du n a pˇredpokl´adejme, ˇze P, L a U jsou matice, kter´e tvoˇr´ı LU-rozklad PA = LU. Plat´ı n´asleduj´ıc´ı ekvivalence: Ax = b
⇔
PAx = Pb
⇔
LUx = Pb.
Posledn´ı rovnici rozloˇz´ıme s vyuˇzit´ım pomocn´e promˇenn´e y na dvˇe rovnice Ly = Pb,
Ux = y
a dost´av´ame n´asleduj´ıc´ı algoritmus. Algoritmus Vstup: A, b. Krok 1: Vypoˇcti matice P, L a U, kter´e tvoˇr´ı LU-rozklad PA = LU. Krok 2: Vyˇreˇs soustavu line´arn´ıch rovnic Ly = Pb. Krok 3: Vyˇreˇs soustavu line´arn´ıch rovnic Ux = y. V´ystup: x.
- 54 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Protoˇze matice L a U jsou troj´ uheln´ıkov´e, staˇc´ı k proveden´ı krok˚ u 2 a 3 zhruba 2O(n2 ) operac´ı. Krok 1 je podstatnˇe pracnˇejˇs´ı, vyˇzaduje totiˇz O( 23 n3 ) operac´ı. Podrobn´ ym rozborem se d´a uk´azat, ˇze pracnost cel´eho algoritmu je naprosto stejn´a jako pracnost Gaussovy eliminaˇcn´ı metody. Pˇ r´ıklad 3.4.1.
Pomoc´ı LU-rozkladu PA = LU ˇreˇste ⎛ ⎞ ⎛ ⎞⎛ 1 1 1 6 x1 ⎜ ⎟ ⎜ ⎟⎜ ⎜ ⎟ ⎜ ⎟⎜ ⎜ 2 4 ⎟ ⎜ ⎜ 2 ⎟ ⎜ ⎟ ⎜ x2 ⎟ = ⎜ 16 ⎝ ⎠ ⎝ ⎠⎝ x3 −1 5 −4 −3
soustavu ⎞ ⎟ ⎟ ⎟. ⎟ ⎠
ˇ sen´ı: LU-rozklad pro matici t´eto soustavy jsme vypoˇc´ıtali v Pˇr´ıkladu 3.3.1.: Reˇ ⎛
0 1 0
⎜ ⎜ P=⎜ ⎜ 0 0 1 ⎝ 1 0 0
⎞
⎛
⎟ ⎟ ⎟, ⎟ ⎠
⎜ ⎜ 1 L=⎜ ⎜ −2 ⎝
1
1 2
0 0
⎛
⎞
⎟ ⎟ 1 0 ⎟ ⎟, ⎠ 1 −7 1
2 4
2
⎜ ⎜ U=⎜ ⎜ 0 7 −3 ⎝ 0 0 − 37
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
(3.4.1)
Pro druh´ y krok algoritmu potˇrebujeme nachystat pravou stranu ⎞⎛
⎛
6 0 1 0 ⎟⎜ ⎜ ⎟⎜ ⎜ ⎟⎜ Pb = ⎜ ⎜ 0 0 1 ⎟ ⎜ 16 ⎠⎝ ⎝ −3 1 0 0
⎞
⎛
⎞
16 ⎟ ⎟ ⎜ ⎟ ⎟ ⎜ ⎟ = ⎜ −3 ⎟ . ⎟ ⎟ ⎜ ⎠ ⎠ ⎝ 6
M´ame tedy ˇreˇsit soustavu ⎛
1
⎜ ⎜ ⎜ −1 ⎜ 2 ⎝
1 2
0 0
⎞⎛
y1
⎞
⎛
16
⎞
⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎜ ⎜ ⎟ ⎟ 1 0 ⎟ ⎜ y2 ⎟ = ⎜ −3 ⎟ ⎟. ⎠ ⎠⎝ ⎠ ⎝ 1 6 −7 1 y3
Odtud postupnˇe vypoˇc´ıt´ame y1 = 16, y2 = 5 a y3 = − 97 . Soustava ve tˇret´ım
- 55 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
kroku algoritmu m´a tvar ⎞⎛ ⎛ 2 4 2 x1 ⎟⎜ ⎜ ⎟⎜ ⎜ ⎜ 0 7 −3 ⎟ ⎜ x ⎟⎜ 2 ⎜ ⎠⎝ ⎝ 3 x3 0 0 −7
⎞
⎛
⎟ ⎜ ⎟ ⎜ ⎟=⎜ ⎟ ⎜ ⎠ ⎝
16
⎞
⎟ ⎟ 5 ⎟ ⎟. ⎠
− 97
Z n´ı postupnˇe vypoˇc´ıt´ame ˇreˇsen´ı x3 = 3, x2 = 2 a x1 = 1. 3.4.2.
V´ ypoˇ cet inverzn´ı matice
y slouPˇripomeˇ nme, ˇze pro inverzn´ı matici plat´ı AA−1 = I. Oznaˇc´ıme-li a(i) i–t´ y sloupec matice jednotkov´e I, pak m˚ uˇzeme pec matice inverzn´ı A−1 a e(i) i–t´ uvedenou rovnost zapsat jako A(a(1) , . . . , a(n) ) = (e(1) , . . . , e(n) ) a po rozn´asoben´ı jako (Aa(1) , . . . , Aa(n) ) = (e(1) , . . . , e(n) ). Odtud je zˇrejm´e, ˇze mus´ı b´ yt splnˇeny soustavy line´arn´ıch rovnic Aa(i) = e(i) ,
i = 1, . . . , n.
Protoˇze matice je u vˇsech soustav stejn´a, staˇc´ı pˇri jejich ˇreˇsen´ı vypoˇc´ıtat LUrozklad jenom jednou. Algoritmus Vstup: A. Krok 1: Vypoˇcti matice P, L a U, kter´e tvoˇr´ı LU-rozklad PA = LU. Pro i = 1, . . . , n vypoˇcti i–t´ y sloupec inverzn´ı matice: Krok 2: Vyˇreˇs soustavu line´arn´ıch rovnic Ly = Pb, kde b = e(i) ; Krok 3: Vyˇreˇs soustavu line´arn´ıch rovnic Ux = y a poloˇz a(i) = x. V´ystup: A−1 = (a(1) , . . . , a(n) ). V´ ypoˇcetn´ı n´aroˇcnost je O( 23 n3 ) v kroku 1 a n-kr´at 2O(n2 ) v kroc´ıch 2 a 3. Celkem tedy vyˇzaduje algoritmus O( 83 n3 ) operac´ı, coˇz je zhruba ˇctyˇrikr´at v´ıc neˇz pˇri ˇreˇsen´ı soustavy line´arn´ıch rovnic.
- 56 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Pˇ r´ıklad 3.4.2.
Vypoˇctˇete inverzn´ı matici A−1 k matici ⎛ ⎜ ⎜ A=⎜ ⎜ ⎝
ˇ sen´ı: Reˇ
1 1
⎞
1
⎟ ⎟ 2 4 2 ⎟ ⎟. ⎠ −1 5 −4
LU-rozklad tvoˇr´ı matice (3.4.1). Podle algoritmu d´ale poˇc´ıt´ame po-
stupnˇe jednotliv´e sloupce inverzn´ı matice.
1 0 0
Pro i = 1 v kroku druh´em ˇreˇs´ıme Ly = P ⎛
1
⎜ ⎜ ⎜ −1 ⎜ 2 ⎝ 1 2
0 0
⎞⎛
y1
⎞
⎛
⎜ ⎜ ⎜ −1 ⎜ 2 ⎝
1 2
⎞
0
⎛
⎞⎛
⎞
⎛
=⇒
⎞
=⇒
0 1 0
:
⎛
⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ 1 0 ⎟ ⎟ ⎜ y2 ⎟ = ⎜ 0 ⎟ ⎠ ⎝ ⎠ ⎠⎝ 1 −7 1 y3 0
⎜ ⎜ y=⎜ ⎜ ⎝
y1
1
Pro i = 2 v kroku tˇret´ım ˇreˇs´ıme Ux = y: ⎞⎛ ⎞ ⎛ ⎛ x1 1 2 4 2 ⎟⎜ ⎟ ⎜ ⎜ ⎟⎜ ⎟ ⎜ ⎜ ⎜ 0 7 −3 ⎟ ⎜ x ⎟ = ⎜ 1 ⎟⎜ 2 ⎟ ⎜ 2 ⎜ ⎠⎝ ⎠ ⎝ ⎝ 3 −3 x3 0 0 −7 7
- 57 -
⎞
13 3
⎟ ⎜ ⎟ ⎜ ⎟ = a(1) . x=⎜ −1 ⎟ ⎜ ⎠ ⎝ 7 −3
⎞
0 0
⎞
0
⎜ ⎟ ⎜ ⎟ ⎟ y=⎜ ⎜ 0 ⎟. ⎝ ⎠ 1 ⎛
⎟ ⎟ ⎟ ⎟ ⎠
Pro i = 2 v kroku druh´em ˇreˇs´ıme Ly = P 1
:
⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟ ⎜ ⎜ ⎟ 1 0 ⎟ ⎜ y2 ⎟ ⎟=⎜ 0 ⎟ ⎠⎝ ⎠ ⎝ ⎠ 1 −7 1 y3 1
Pro i = 1 v kroku tˇret´ım ˇreˇs´ıme Ux = y: ⎞⎛ ⎞ ⎛ ⎛ x1 0 2 4 2 ⎟⎜ ⎟ ⎜ ⎜ ⎟⎜ ⎟ ⎜ ⎜ ⎜ 0 7 −3 ⎟ ⎜ x ⎟ = ⎜ 0 2 ⎟⎜ ⎟ ⎜ ⎜ ⎠⎝ ⎠ ⎝ ⎝ 3 x3 1 0 0 −7
⎛
=⇒
1 1 2
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
−3 7
⎞
⎛
⎟ ⎟ ⎟ ⎟ ⎠
⎜ ⎜ x=⎜ ⎜ ⎝
=⇒
− 32 1 2
1
⎞ ⎟ ⎟ ⎟ = a(2) . ⎟ ⎠
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Pro i = 3 v kroku druh´em ˇreˇs´ıme Ly = P ⎛
1
⎜ ⎜ ⎜ −1 ⎜ 2 ⎝ 1 2
0 0
⎞⎛
y1
⎞
⎛
0 0 1
0
:
⎞
⎛
⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ 1 0 ⎟ ⎜ y2 ⎟ ⎟=⎜ 1 ⎟ ⎠ ⎝ ⎠ ⎠⎝ 1 −7 1 y3 0
0
⎞
⎜ ⎟ ⎜ ⎟ ⎟ y=⎜ ⎜ 1 ⎟. ⎝ ⎠
=⇒
1 7
Pro i = 3 v kroku tˇret´ım ˇreˇs´ıme Ux = y: ⎛
2 4
2
⎜ ⎜ ⎜ 0 7 −3 ⎜ ⎝ 0 0 − 37
⎞⎛
⎞
⎛
⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ x ⎟ = ⎜ 1 ⎟ ⎟⎜ 2 ⎟ ⎜ ⎟ ⎠⎝ ⎠ ⎝ ⎠ 1 x3 7
⎜ ⎜ x=⎜ ⎜ ⎝
⎞
x1
⎛
0
=⇒
1 3
⎞
⎟ ⎟ (3) 0 ⎟ ⎟=a . ⎠ − 13
Vypoˇc´ıtali jsme inverzn´ı matici: ⎛ −1
A
3.4.3.
13 3
⎜ ⎜ = (a , a , a ) = ⎜ ⎜ −1 ⎝ − 73 (1)
(2)
(3)
− 32 1 2
1 3
⎞
⎟ ⎟ 0 ⎟ ⎟. ⎠
1 − 13
V´ ypoˇ cet determinantu
Pouˇzijeme jedno ze z´akladn´ıch pravidel pro poˇc´ıt´an´ı s determinanty, kter´e ˇr´ık´a, ˇze determinant ze souˇcinu (ˇctvercov´ ych) matic se rovn´a souˇcinu jejich determinant˚ u. Jestliˇze matice P, L a U tvoˇr´ı LU-rozklad PA = LU, pak m˚ uˇzeme ps´at det A = (det P)−1 · det L · det U. Determinanty troj´ uheln´ıkov´ ych matic vypoˇc´ıt´ame snadno jako souˇciny jejich diagon´aln´ıch prvk˚ u. Determinant permutaˇcn´ı matice je +1, resp. −1 podle toho, jestli vznikla z jednotkov´e matice sud´ ym, resp. lich´ ym poˇctem pˇrehozen´ı ˇra´dk˚ u.
- 58 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Pˇ r´ıklad 3.4.3.
Vypoˇc´ıtejte determinat matice A z pˇr´ıkladu 3.3.1.
ˇ sen´ı: Pomoc´ı v´ Reˇ ysledku pˇr´ıkladu 3.3.1. dost´av´ame det L = 1 · 1 · 1 = 1, −3 det U = 2 · 7 · = −6. 7 Protoˇze pˇri v´ ypoˇctu LU-rozkladu doˇslo ke dvˇema z´amˇen´am ˇra´dk˚ u, bude det P = 1. Celkem je det A = 1 · 1 · (−6) = −6.
Kontroln´ı ot´ azky Ot´azka 1. Jak se pomoc´ı LU-rozkladu ˇreˇs´ı soustava line´arn´ıch rovnic? Ot´azka 2. Jak se pomoc´ı LU-rozkladu poˇc´ıt´a inverzn´ı matice? Ot´azka 3. Jak se pomoc´ı LU-rozkladu poˇc´ıt´a determinant? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Soustavu line´arn´ıch rovnic −x1 − 3x2 + 2x3 = −9, −6x1 − 19x2 + 10x3 = −59, 3x1 + 9x2 − 5x3 = 28 ˇreˇste pomoc´ı LU-rozkladu A = LU. 2. Soustavu line´arn´ıch rovnic z prvn´ı u ´ lohy ˇreˇste pomoc´ı LU-rozkladu PA = LU. 3. Pro matici
⎛
−1
−3
2
⎜ ⎜ A=⎜ ⎜ −6 −19 10 ⎝ 3 9 −5
⎞ ⎟ ⎟ ⎟ ⎟ ⎠
vypoˇctˇete inverzn´ı matici pomoc´ı LU-rozkladu A = LU. 4. K pˇredchoz´ı matici vypoˇctˇete inverzn´ı matici pomoc´ı LU-rozkladu PA = LU.
- 59 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
5. Vypoˇctˇete determinant matice z 3. u ´ lohy pomoc´ı LU-rozkladu A = LU. 6. Vypoˇctˇete determinant matice z 3. u ´ lohy pomoc´ı LU-rozkladu PA = LU. 7. Kolik operac´ı je potˇreba pˇri v´ ypoˇctu determinantu matice pomoc´ı LU-rozkladu?
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Dostaneme y = (−9, −5, 1) a x = (2, 3, 1) . 2. Dostaneme y = (−59, − 32 , 13 ) a x = (2, 3, 1) . 3. Pro i = 1 je y = (1, 6, −3) , pro i = 2 je y = (0, 1, 0) a pro i = 3 je y = (0, 0, 1) . Inverzn´ı matice m´a tvar ⎛ −1
A
5
3
8
⎞
⎜ ⎟ ⎜ ⎟ ⎟. =⎜ 0 −1 −2 ⎜ ⎟ ⎝ ⎠ 3 0 1
4. Pro i = 1 je y = (0, 0, 1) , pro i = 2 je y = (1, 12 , 0) a pro i = 3 je ´ loze. y = (0, 1, 13 ) . Inverzn´ı matice je stejn´a jako v pˇredchoz´ı u 5. det L = 1, det U = 1 a det A = 1. 6. det P = 1, det L = 1, det U = 1 a det A = 1. 7. Zhruba O( 23 n3 ) operac´ı.
- 60 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
3.5.
Maticov´ e normy a podm´ınˇ enost matic
C´ıle V prvn´ı kapitole jsme v definici 1.2.2. zavedli ˇc´ıslo podm´ınˇenosti u ´ lohy, kter´e vyjadˇruje citlivost na r˚ uzn´e typy poruch. Stejn´y smysl m´a ˇc´ıslo podm´ınˇenosti matice.
Pˇredpokl´ adan´ e znalosti Maticov´e operace. Absolutn´ı hodnota.
V´ yklad Pˇri posuzov´an´ı poruch u maticov´ ych v´ ypoˇct˚ u je potˇreba nˇejak´ ym zp˚ usobem mˇeˇrit velikost” matic a vektor˚ u. Pro tyto u ´ˇcely se zav´ad´ı norma matice, kter´a ” je zobecnˇen´ım funkce absolutn´ı hodnota pro re´aln´a ˇc´ısla. Definice 3.5.1. Norma matice je zobrazen´ı, kter´e kaˇzd´e matici A = (aij ) typu m × n pˇriˇrad´ı ˇc´ıslo A tak, ˇze plat´ı: (i)
A ≥ 0 a pˇritom A = 0, pr´avˇe kdyˇz A je matice nulov´a;
(ii)
αA = |α| · A pro kaˇzd´e re´aln´e ˇc´ıslo α;
(iii) A+B ≤ A+B pro kaˇzdou matici B stejn´eho typu jako je matice A.
Z´akladn´ı maticov´e normy jsou: n
• ˇra´dkov´ a norma: AR = max
i=1,...,m
• sloupcov´ a norma: AS = max
j=1,...,n
|aij |;
j=1 m i=1
- 61 -
|aij |;
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
n m • Frobeniova norma: AF = a2ij . i=1 j=1
Pˇ r´ıklad 3.5.1. Vypoˇc´ıtejte ˇra´dkovou, sloupcovou a Frobeniovu normu pro matici ⎛ ⎜ ⎜ A=⎜ ⎜ ⎝
1 1
1
⎞
⎟ ⎟ 2 4 2 ⎟ ⎟ ⎠ −1 5 −4
a pro matici inverzn´ı A−1 . ˇ sen´ı: Dost´av´ame Reˇ AR = max{1 + 1 + 1, 2 + 4 + 2, 1 + 5 + 4} = 10, AS = max{1 + 2 + 1, 1 + 4 + 5, 1 + 2 + 4} = 10, √ √ . AF = 1 + 1 + 1 + 4 + 16 + 4 + 1 + 25 + 16 = 69 = 8.3066. Matici inverzn´ı A−1 jsem vypoˇc´ıtali v pˇr´ıkladu 3.4.2. Pomoc´ı tohoto v´ ysledku dostaneme A−1 R =
37 , 6
A−1 S =
23 , 3
. A−1 F = 5.38.
Vˇ eta 3.5.1. Necht’ A je matice typu m×n a B je matice typu n×p. Pro ˇra´dkovou, sloupcovou a Frobeniovu normu plat´ı: AB ≤ AB.
(3.5.1)
D˚ ukaz: Platnost tvrzen´ı uk´aˇzeme pouze pro ˇra´dkovou normu, ostatn´ı pˇr´ıpady ponech´ame jako cviˇcen´ı. Prvky matice souˇcinu C = AB jsou urˇceny pˇredpisem cij = nk=1 aik bkj . Proto ABR =
max
i=1,...,m
p j=1
|cij | =
p n max | aik bkj | ≤
i=1,...,m
- 62 -
j=1
k=1
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
≤
p n
max
i=1,...,m
≤
max
i=1,...,m
|aik ||bkj | =
j=1 k=1 n
|aik | max
l=1,...,n
k=1
p
max
i=1,...,m
n k=1
|aik |
p
|bkj |
j=1
|blj | = AR BR .
j=1
2 Definice 3.5.2. ˇ ıslo podm´ınˇenosti regul´arn´ı ˇctvercov´e matice A je definov´ano pˇredpisem C´ κ(A) = AA−1 .
Pˇ r´ıklad 3.5.2.
Vypoˇctˇete ˇc´ıslo podm´ınˇenosti matice z pˇr´ıkladu 3.5.1. pomoc´ı
ˇra´dkov´e, sloupcov´e a Frobeniovy normy. ˇ sen´ı: S vyuˇzit´ım v´ Reˇ ysledk˚ u pˇr´ıkladu 3.5.1. dostaneme: . κR (A) = 61.67,
. κS (A) = 76.67,
. κF (A) = 44.69.
Vˇ eta 3.5.2. Necht’ A je regul´arn´ı ˇctvercov´a matice ˇra´du n a necht’ b a x jsou nenulov´e nsloˇzkov´e vektory takov´e, ˇze plat´ı: Ax = b. ˜ax ˜ jsou n-sloˇzkov´e vektory takov´e, ˇze plat´ı D´ale necht’ b ˜ A˜ x = b. Potom
˜ ˜ b − b x − x ≤ κ(A) . x b
D˚ ukaz: Zˇrejmˇe plat´ı b = Ax
resp.
˜ ˜ = A−1 (b − b) x−x
- 63 -
(3.5.2)
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
a pomoc´ı (3.5.1) odtud dostaneme x−1 ≤ Ab−1
resp.
˜ ˜ ≤ A−1 b − b. x − x
Vyn´asoben´ım tˇechto nerovnost´ı vznikne tvrzen´ı (3.5.2).
2
Nerovnost (3.5.2) ˇr´ık´a, ˇze pˇri velk´e hodnotˇe κ(A) m˚ uˇze mal´a porucha ve vektoru b vyvolat velkou zmˇenu v ˇreˇsen´ı. V´ ypoˇcty s matic´ı, kter´a m´a velk´e ˇc´ıslo podm´ınˇenosti, jsou zpravidla znehodnoceny kumulac´ı zaokrouhlovac´ıch chyb, jak ukazuje n´asleduj´ıc´ı pˇr´ıklad. Pˇ r´ıklad 3.5.3.
Vypoˇcteme ˇc´ısla podm´ınˇenosti Hilbertovy matice ⎞ ⎛ 1 1/2 1/3 . . . ⎟ ⎜ ⎟ ⎜ ⎜ 1/2 1/3 1/4 . . . ⎟ ⎟ ⎜ ⎟. A=⎜ ⎟ ⎜ ⎜ 1/3 1/4 1/5 . . . ⎟ ⎟ ⎜ ⎠ ⎝ .. . . .. .. . . . .
ˇra´d˚ u n = 5, 10, 15, 20, 25 a pokus´ıme se vypoˇc´ıtat inverzn´ı matici. ˇ ısla podm´ınˇenosti jsou zaznamen´ana v tabulce 3.5.1. Posledn´ı sloupec ˇ sen´ı: C´ Reˇ Tabulka 3.5.1: Podm´ınˇenost Hilbertovy matici A. n
κ(A)
AA−1 − I
5
4.8 × 105
1.4 × 10−11
10 1.6 × 1013
3.3 × 10−3
15 1.1 × 1018
2.8 × 103
20 2.5 × 1028
2.6 × 1011
25 1.0 × 1036
1.3 × 1019
tabulky ukazuje, jak se (na poˇc´ıtaˇci) podaˇrilo vypoˇc´ıtat inverzn´ı matice. Je vidˇet, ˇze pro ˇra´d n = 15 a vyˇs´ı jsou v´ ysledky naprosto nesmysln´e.
- 64 -
ˇ ´IME ´ METODY 3. SLR – PR
Numerick´e metody
Kontroln´ı ot´ azky Ot´azka 1. Jak se definuje norma matice? Ot´azka 2. Co vyjadˇruje ˇc´ıslo podm´ınˇenosti matice?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pro matici
⎛
−1 −3 2 ⎜ ⎜ A=⎜ ⎜ −6 −19 10 ⎝ 3 9 −5
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
vypoˇctˇete ˇc´ıslo podm´ınˇenosti pomoc´ı ˇra´dkov´e, sloupcov´e a Frobeniovy normy.
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. AR = 35, A−1 R = 16, κR (A) = 560; AS = 31, A−1 S = 11, κS (A) = 341; AF = 25.02, A−1 F = 10.63, κF (A) = 265.96.
Shrnut´ı lekce V kapitole jsme se zab´ yvali Gaussovou eliminaˇcn´ı metodou vyj´adˇrenou na maticov´e u ´ rovni jako LU-rozklad. D´ale jsme uk´azali, ˇze v´ypoˇcty mohou b´ yt podstatnˇe ovlivnˇeny nahromadˇen´ım zaokrouhlovac´ıch chyb, coˇz lze rozpoznat pomoc´ı ˇc´ısla podm´ınˇenosti.
- 65 -
ˇ ´I METODY 4. SLR – ITERACN
4.
Numerick´e metody
SLR – iteraˇ cn´ı metody
Pr˚ uvodce studiem Iteraˇcn´ı metody umoˇzn ˇ uj´ı ˇreˇsit soustavy line´arn´ıch rovnic pomoc´ı postupn´eho pˇribliˇzov´an´ı k pˇresn´emu ˇreˇsen´ı. Poˇc´ıt´a se posloupnost vektor˚ u aproximac´ı {x(k) } takov´a, ˇze lim x(k) = x,
k→∞
kde x je ˇreˇsen´ım Ax = b.
Pˇresn´e ˇreˇsen´ı tedy dostaneme v limitˇe, tj. form´alnˇe po nekoneˇcn´em poˇctu krok˚ u.V´ yhody iteraˇcn´ıch metod jsou tyto: • V kaˇzd´e iteraci zn´ ame aproximaci ˇreˇsen´ı x(k) . Pokud je tato aproximace dostateˇcnˇe pˇresn´a, pak v´ ypoˇcet ukonˇc´ıme. • V kaˇzd´e iteraci je nejpracnˇejˇs´ı operac´ı n´ asoben´ı matice a vektoru. Jedn´a se o operaci, kter´a je algoritmicky podstatnˇe jednoduˇsˇs´ı neˇz GEM a lze ji snadno prov´est i pro rozs´ahl´e ˇr´ıdk´e matice, tj. pro matice s velk´ ym poˇctem (neuloˇzen´ych) nulov´ ych prvk˚ u. • Iteraˇcn´ı metody jsou m´enˇe citliv´e na zaokrouhlovac´ı chyby neˇz metody pˇr´ım´e. Na kaˇzdou iteraci m˚ uˇzeme nahl´ıˇzet jako na poˇc´ateˇcn´ı. Zaokrouhlovac´ı chyby z pˇredchoz´ıch iterac´ı proto vymiz´ı, pokud v dalˇs´ım v´ ypoˇctu dojde ke konvergenci. Nˇekter´e speci´aln´ı iteraˇcn´ı metody byly navrˇzeny pro zpˇresnˇen´ı v´ ysledk˚ u vypoˇc´ıtan´ ych pomoc´ı pˇr´ım´ ych metod. Zhruba plat´ı n´asleduj´ıc´ı dˇelen´ı: pˇr´ım´e metody se pouˇz´ıvaj´ı, je-li matice soustavy mal´a (1 ≤ n ≤ 10000), pln´a a dobˇre podm´ınˇen´a; iteraˇcn´ı metody se pouˇz´ıvaj´ı pro velk´e soustavy (n > 10000) s ˇr´ıdkou matic´ı.
- 66 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
4.1.
Pˇ r´ıklad iteraˇ cn´ıho v´ ypoˇ ctu
C´ıle Uvedeme pˇr´ıklady iteraˇcn´ıho ˇreˇsen´ı soustav line´arn´ıch rovnic a uk´aˇzeme na nich, ˇze v´ypoˇcet m˚ uˇze konvergovat, ale i divergovat.
Pˇredpokl´ adan´ e znalosti ˇ sen´ı soustav line´arn´ıch rovnic. Prov´adˇen´ı rekurentn´ıch v´ Reˇ ypoˇct˚ u.
V´ yklad Uvaˇzujme soustavu line´arn´ıch rovnic ⎛
11x1 + 2x2 + x3 = 15,
11
2
1
⎜ ⎜ resp. ⎜ 2 ⎜ 1 10 ⎝ 2 3 −8
x1 + 10x2 + 2x3 = 16, 2x1 + 3x2 − 8x3 = 1,
⎞⎛
x1
⎞
⎛
15
⎞
⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟ ⎜ x ⎟ = ⎜ 16 ⎟ . ⎟⎜ 2 ⎟ ⎜ ⎟ ⎠⎝ ⎠ ⎝ ⎠ x3 1 (4.1.1)
Soustavu nejdˇr´ıve pˇrevedeme na tvar vhodn´ y pro v´ ypoˇcet iterac´ı, tzv. iteraˇcn´ı tvar. Prov´ad´ı se to tak, ˇze z kaˇzd´e rovnice vyj´adˇr´ıme jednu nezn´amou. Napˇr´ıklad:
tj.
⎛
x1
⎞
⎛
x1 =
1 (15 11
− 2x2 − x3 ),
x2 =
1 (16 10
− x1 − 2x3 ),
x3 =
1 (−1 8
+ 2x1 + 3x2 ),
2 1 − 11 0 − 11
⎜ ⎟ ⎜ ⎜ ⎟ ⎜ ⎜ x ⎟=⎜ −1 ⎜ 2 ⎟ ⎜ 10 ⎝ ⎠ ⎝ 1 x3 4
0 3 8
CJ
⎞⎛
x1
⎞
(4.1.2)
⎛
15 11
⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ x ⎟+ ⎜ 8 ⎟⎜ 2 ⎟ ⎜ 5 ⎠⎝ ⎠ ⎝ 0 x3 − 18 dJ
− 15
- 67 -
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Jin´a moˇznost: x1 = 15 − 10x1 − 2x2 − x3 , x2 = 16 − x1 − 9x2 − 2x3 ,
(4.1.3)
x3 = −1 + 2x1 + 3x2 − 7x3 , tj.
⎛
x1
⎞
⎛
−10 −2 −1
⎞⎛
x1
⎞
⎛
⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎜ ⎜ x ⎟ = ⎜ −1 −9 −2 ⎟ ⎜ x ⎟ + ⎜ ⎟⎜ 2 ⎟ ⎜ ⎜ 2 ⎟ ⎜ ⎠⎝ ⎠ ⎝ ⎠ ⎝ ⎝ 2 3 −7 x3 x3 CB
15
⎞
⎟ ⎟ 16 ⎟ ⎟. ⎠ −1 dB
Takov´ ych pˇrevod˚ u existuje zˇrejmˇe nekoneˇcnˇe mnoho, ale jenom nˇekter´e povedou ke konvergentn´ımu v´ ypoˇctu. Z rovnic (4.1.2) a (4.1.3) dostaneme rekurentn´ı vzorce pˇrips´an´ım iteraˇcn´ıho indexu k + 1 k nezn´am´ ym na lev´e stranˇe a k k nezn´am´ ym na prav´e stranˇe. Dost´av´ame (k+1)
x1
(k+1)
x2
(k+1)
x3
⎫ (k) (k) − 2x2 − x3 ), ⎪ ⎪ ⎪ ⎪ ⎬ (k) (k) 1 = 10 (16 − x1 − 2x3 ), ⎪ ⎪ ⎪ ⎪ ⎭ (k) (k) 1 = 8 (−1 + 2x1 + 3x2 ), =
1 (15 11
tj. x(k+1) = CJ x(k) + dJ ,
(4.1.4)
a (k+1)
x1
(k+1)
x2
(k+1)
x3
⎫ (k) (k) (k) = 15 − 10x1 − 2x2 − x3 , ⎪ ⎪ ⎪ ⎪ ⎬ (k) (k) (k) = 16 − x1 − 9x2 − 2x3 , ⎪ ⎪ ⎪ ⎪ (k) (k) (k) ⎭ = −1 + 2x1 + 3x2 − 7x3 ,
tj. x(k+1) = CB x(k) +dB . (4.1.5)
(0)
(0)
(0)
Nyn´ı zvol´ıme poˇc´ateˇcn´ı aproximaci x(0) = (x1 , x2 , x3 ) , napˇr. x(0) = (0, 0, 0) . Tyto hodnoty dosad´ıme do prav´e strany rekurentn´ıch vzorc˚ u (4.1.4) a dostaneme x(1) = (
15 , 11
16 , 10
- 68 -
− 18 ) .
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody Jestliˇze takto pokraˇcujeme d´ale, dost´av´ame
x(2) = (1.0841, 1.4886, 0.81591), x(3) = (1.0188, 1.3284, 0.70426), ............................... Provedeme-li nˇekolik dalˇs´ıch iterac´ı, zjist´ıme, ˇze se ˇc´ıslice na prvn´ıch desetinn´ ych m´ıstech zaˇcnou po chv´ıli opakovat. Dostaneme pˇritom vektor x = (1.0564, 1.3642, 0.65069), o nˇemˇz se m˚ uˇzeme domn´ıvat, ˇze je aproximac´ı pˇresn´eho ˇreˇsen´ı soustavy (4.1.1). Jestliˇze analogicky poˇc´ıt´ame podle rekurentn´ıch vzorc˚ u (4.1.5), dostaneme x(1) = (15, 16, −1) , x(2) = (−166, −141, 84), x(3) = (1873, 1283, −1344), ............................ Zde ˇz´adnou tendenci ke konvergenci nevid´ıme a je proto pravdˇepodobn´e, ˇze posloupnost iterac´ı diverguje.
Kontroln´ı ot´ azky Ot´azka 1. V ˇcem spoˇc´ıv´a z´akladn´ı rozd´ıl mezi pˇr´ım´ ymi a iteraˇcn´ımi metodami? Ot´azka 2. Jak´e jsou v´ yhody a nev´ yhody pˇr´ım´ ych a iteraˇcn´ıch metod? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pro soustavu line´arn´ıch rovnic −x1 − 3x2 + 2x3 = −9, −6x1 − 19x2 + 10x3 = −59, 3x1 + 9x2 − 5x3 = 28
- 69 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
navrhnˇete dva iteraˇcn´ı tvary pomoc´ı postup˚ u z odstavce 4.1. 2. U kter´eho z navrˇzen´ych iteraˇcn´ıch tvar˚ u v´ ypoˇcet konverguje? V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Rekurentn´ı vzorce pro prvn´ı iteraˇcn´ı tvar: (k+1)
x1
(k+1)
x2
(k+1)
x3
(k)
(k)
= 9 − 3x2 + 2x3 , =
1 (59 19
=
1 (−28 5
(k)
(k)
− 6x1 + 10x3 ), (k)
(k)
+ 3x1 + 9x2 );
rekurentn´ı vzorce pro druh´ y iteraˇcn´ı tvar: (k+1)
= 9 − 3x2 + 2x3 ,
(k+1)
= 59 − 6x1 − 18x2 + 10x3 ,
(k+1)
= −28 + 3x1 + 9x2 − 4x3 .
x1 x2 x3
(k)
(k)
(k)
(k)
(k)
(k)
(k)
(k)
2. Jestliˇze zkus´ıme v´ ypoˇcet prov´est, zjist´ıme, ˇze doch´az´ı k divergenci v obou pˇr´ıpadech. Rozpozn´an´ım konvergentn´ıho v´ ypoˇctu z vlastnost´ı matice soustavy se budeme zab´yvat v dalˇs´ıch odstavc´ıch.
- 70 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
4.2.
Obecn´ e iteraˇ cn´ı metody
C´ıle Uk´aˇzeme obecn´y postup pro iteraˇcn´ı ˇreˇsen´ı soustav line´arn´ıch rovnic a uvedeme jeho dvˇe z´akladn´ı varianty.
Pˇredpokl´ adan´ e znalosti Pˇr´ıklady iteraˇcn´ıho ˇreˇsen´ı soustav line´arn´ıch rovnic.
V´ yklad Uvaˇzujme soustavu line´arn´ıch rovnic Ax = b
(4.2.1)
s regul´arn´ı ˇctvercovou matic´ı A = (aij ) ˇra´du n, vektorem prav´e strany b = ych x = (xi ). Soustavu (4.2.1) pˇrepiˇsme na ekvivalentn´ı (bi ) a vektorem nezn´am´ soustavu v iteraˇcn´ım tvaru x = Cx + d,
(4.2.2)
kde C je iteraˇcn´ı matice ˇra´du n a d je sloupcov´ y vektor. Mus´ı pˇritom platit, ˇze rovnice (4.2.1) a (4.2.2) maj´ı stejn´e ˇreˇsen´ı. ypoˇcet prov´ad´ıme podle Necht’ x(0) je dan´a poˇc´ateˇcn´ı aproximace. Iteraˇcn´ı v´ rekurentn´ıho vzorce x(k+1) = Cx(k) + d,
k = 0, 1, 2, . . . .
(4.2.3)
Jestliˇze posloupnost vektor˚ u {xk } konverguje k vektoru x, pak limitn´ım pˇrechodem v (4.2.3) dostaneme, ˇze x je ˇreˇsen´ım rovnice (4.2.2) a tak´e (4.2.1). Jak uvid´ıme pozdˇeji, volba poˇc´ateˇcn´ı aproximace neovlivn´ı konvergenci, takˇze uˇzeme zvolit libovolnˇe. V´ypoˇcet ukonˇc´ıme, jestliˇze dvˇe posledn´ı vektor x(0) m˚
- 71 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
aproximace se od sebe liˇs´ı ne v´ıce, neˇz kolik je poˇzadovan´a pˇresnost, tj. jestliˇze je splnˇeno ukonˇcovac´ı krit´erium x(k+1) − x(k) ≤ ,
(4.2.4)
kde > 0 je dan´e mal´e ˇc´ıslo a · je vhodn´a norma. V naˇsich pˇr´ıkladech pouˇzijeme ukonˇcovac´ı krit´erium s ˇra´dkovou normou. Algoritmus (Iteraˇ cn´ı ˇ reˇ sen´ı SLR) Vstup: C, d, x(0) , . Opakuj x(k+1) := Cx(k) + d; dokud x(k+1) − x(k) > . V´ystup: x(k) . 4.2.1.
Jacobiova metoda
Jacobiovu metodu jsme si jiˇz uk´azali pˇri ˇreˇsen´ı soustavy (4.1.1) v odstavci 4.1. Jsou to rekurentn´ı vzorce (4.1.4). Nyn´ı si ji probereme obecnˇe. Budeme pˇredpokl´adat, ˇze diagon´aln´ı prvky matice soustavy (4.2.1) jsou nenulov´e, tj. aii = 0. Z i-t´e rovnice ai1 x1 + ai2 x2 + . . . + ain xn = bi ,
i = 1, . . . , n,
vyj´adˇr´ıme i-tou nezn´amou i−1 n 1 xi = aij xj − aij xj , bi − aii j=1 j=i+1 Jacobiova metoda je urˇcena rekurentn´ımi vzorci i−1 n 1 (k+1) (k) (k) = aij xj − aij xj bi − , xi aii j=1 j=i+1 pro k = 0, 1, 2, . . ..
- 72 -
i = 1, . . . , n.
i = 1, . . . , n,
(4.2.5)
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Vˇsimnˇeme si jeˇstˇe, ˇze vzorce (4.2.5) m˚ uˇzeme zapsat v obecn´em maticov´em tvaru (4.2.3), jestliˇze poloˇz´ıme C = CJ a d = dJ , kde ⎞ ⎛ ⎛ ⎞ a12 a13 a1n b1 0 − a11 − a11 . . . − a11 ⎟ ⎜ ⎜ a11 ⎟ ⎟ ⎜ ⎜ ⎟ ⎜ − a21 ⎜ b2 ⎟ a2n ⎟ 0 − aa23 . . . − ⎜ a22 ⎟ ⎜ ⎟ a22 22 ⎜ ⎟ ⎜ a22 ⎟ ⎜ ⎟ ⎜ ⎟ a31 a32 b3 ⎟ . ⎟, dJ = ⎜ CJ = ⎜ 0 . . . − aa3n ⎟ ⎜ − a33 − a33 ⎜ ⎟ 33 ⎜ ⎟ ⎜ a33 ⎟ ⎜ . ⎜ . ⎟ .. ⎟ .. .. .. ⎜ .. ⎜ .. ⎟ . . ⎟ . . ⎜ ⎟ ⎜ ⎟ ⎠ ⎝ ⎝ ⎠ an1 an2 an3 bn − ann − ann − ann . . . 0 ann
(4.2.6)
Pomoc´ı aditivn´ıho rozkladu matice A = (aij ), A = L + D + U,
(4.2.7)
uheln´ıkov´a ˇc´ast, kde L = (lij ), lij = aij , i > j, lij = 0, i ≤ j, je doln´ı troj´ D = (dij ), dii = aii , dij = 0, i = j, je diagon´aln´ı ˇc´ast a U = (uij ), uij = 0, i ≥ j, uheln´ıkov´a ˇc´ast, m˚ uˇzeme struˇcnˇe ps´at uij = aij , i < j, je horn´ı troj´ CJ = −D−1 (L + U), Pˇ r´ıklad 4.2.1.
dJ = D−1 b.
Soustavu line´arn´ıch rovnic (4.1.1) ˇreˇste pomoc´ı Jacobiovy me-
tody s pˇresnost´ı = 10−4 . ˇ sen´ı: V´ypoˇcet se prov´ad´ı podle rekurentn´ıch vzorc˚ Reˇ u (4.1.4). Zaˇc´atek v´ ypoˇctu jsme naznaˇcili v odstavci 4.1. Nyn´ı vˇse shrneme v tabulce 4.2.1, kde kromˇe aproximac´ı x(k) uv´ad´ıme ˇra´dkov´e normy x(k) − x(k−1) R . Naznaˇcme jeˇstˇe v´ ypoˇcet prvn´ıch dvou norem: x(1) − x(0) R = max{| 15 − 0|, | 16 − 0|, | − 18 − 0|} = 1.6, 11 10 x(2) − x(1) R = max{|1.0841 −
15 |, |1.4886 11
−
16 |, |0.8159 10
+ 18 |} = 0.9409,
atd. V´ypoˇcet jsme ukonˇcili po des´at´e iteraci, protoˇze x(10) −x(9) R = 0.00005 ≤ 10−4 , a v´ ysledek je x1 = 1.0564 ± 10−4 , x2 = 1.3642 ± 10−4, x3 = 0.6507 ± 10−4 .
- 73 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Tabulka 4.2.1: Iterace Jacobiovy metody. (k)
k 0 1 2 3 4 5 6 7 8 9 10 4.2.2.
(k)
x1
(k)
x2
0 1.3636 1.0841 1.0188 1.0581 1.0598 1.0558 1.0562 1.0565 1.0565 1.0564
x(k) − x(k−1) R
x3
0 0 1.6000 −0.1250 1.4886 0.8159 1.3284 0.7043 1.3573 0.6279 1.3686 0.6485 1.3643 0.6532 1.3638 0.6506 1.3643 0.6505 1.3643 0.6507 1.3642 0.6507
— 1.60000 0.94091 0.16023 0.07641 0.02064 0.00468 0.00260 0.00048 0.00027 0.00005
Gauss-Seidelova metoda
Zaˇcneme pˇr´ıkladem. Pro ˇreˇsen´ı soustavy line´arn´ıch rovnic (4.1.1) jsme pouˇzili Jacobiovu metodu, kter´a je urˇcena rekurentn´ımi vzorci (4.1.4). Podle tˇechto vzorc˚ u se poˇc´ıtaj´ı v k-t´e iteraci sloˇzky nov´e aproximace x(k+1) postupnˇe, tj. nejdˇr´ıve (k+1)
x1
(k+1)
pak x2
(k+1)
a nakonec x3 (k)
(k)
aproximace, tj. x1 , x2
. Pˇritom se st´ale pouˇz´ıvaj´ı sloˇzky z pˇredchoz´ı
(k)
a x3 . Tento postup m˚ uˇzeme snadno vylepˇsit. Staˇc´ı (k+1)
si uvˇedomit, ˇze pˇri v´ ypoˇctu x2
(k+1)
m˚ uˇzeme pouˇz´ıt pˇresnˇejˇs´ı aproximaci x1
(k)
(k+1)
nam´ısto m´enˇe pˇresn´e x1 . Podobnˇe m˚ uˇzme pˇri v´ ypoˇctu x3 (k+1)
aproximace x1
(k+1)
a x2
(k)
pouˇz´ıt pˇresnˇejˇs´ı
(k)
nam´ısto m´enˇe pˇresn´ych x1 a x2 . P˚ uvodn´ı rekurentn´ı
vzorce (4.1.1) se tak zmˇen´ı na tvar (k+1)
x1
(k+1)
x2
(k+1)
x3
(k)
(k)
=
1 (15 11
− 2x2 − x3 ),
=
1 (16 10
− x1
=
1 (−1 8
+ 2x1
(k+1)
coˇz je Gauss-Seidelova metoda.
- 74 -
(k)
− 2x3 ),
(k+1)
(k+1)
+ 3x2
(4.2.8) ),
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Pˇ r´ıklad 4.2.2. Soustavu line´arn´ıch rovnic (4.1.1) ˇreˇste pomoc´ı Gauss-Seidelovy metody s pˇresnost´ı = 10−4 . ˇ sen´ı: V´ypoˇcet podle vzorc˚ Reˇ u (4.2.8) je zaznamen´an v tabulce 4.2.2. Tabulka 4.2.2: Iterace Gauss-Seidelovy metody. k 0 1 2 3 4 5 6 7
(k)
x1
0 1.3636 1.0280 1.0614 1.0558 1.0565 1.0564 1.0564
(k)
x2
0 1.4636 1.3442 1.3666 1.3639 1.3643 1.3642 1.3642
(k)
x3
0 0.7648 0.6361 0.6528 0.6504 0.6507 0.6507 0.6507
x(k) − x(k−1) R — 1.46364 0.33564 0.03341 0.00559 0.00073 0.00011 0.00001
V´ypoˇcet jsme ukonˇcili uˇz po sedm´e iteraci, protoˇze x(7) − x(6) R = 0.00001 ≤ ysledek je x1 = 1.0564 ± 10−4 , x2 = 1.3642 ± 10−4 , x3 = 0.6507 ± 10−4 . 10−4 , a v´
Pozn´ amka Z pˇr´ıklad˚ u 4.2.1. a 4.2.2. je vidˇet, ˇze Gauss-Seidelova metoda je rychlejˇs´ı neˇz metoda Jacobiova. Existuj´ı ale pˇr´ıklady, kdy Jacobiova metoda konverguje, zat´ımco Gauss-Seidelova metoda diverguje. Pro obecnou soustavu (4.2.1), kde aii = 0, je Gauss-Seidelova metoda urˇcena rekurentn´ımi vzorci i−1 n 1 (k+1) (k+1) (k) bi − , = aij xj − aij xj xi aii j=1 j=i+1
i = 1, . . . , n
(4.2.9)
pro k = 0, 1, 2, . . .. Nyn´ı nen´ı na prvn´ı pohled jasn´e, jak tyto vzorce zapsat v maticov´em tvaru (4.2.3). Pod´ıvejme se proto jeˇstˇe na n´aˇs pˇr´ıklad. Jestliˇze v (4.2.8) pˇrevedeme na
- 75 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
levou stranu vˇsechny ˇcleny obsahuj´ıc´ı sloˇzky nov´e aproximace, dostaneme (k+1)
(k)
(k+1)
x1
(k+1)
(k)
= 16 − 2x3 ,
+ 10x2
(k+1)
−2x1
(k)
= 15 − 2x2 − x3 ,
11x1
(k+1)
− 3x2
(k+1)
= −1.
+ 8x3
Odtud je vidˇet, ˇze v´ypoˇcet nov´e aproximace x(k+1) z aproximace pˇredchoz´ı x(k) m˚ uˇzeme interpretovat tak´e jako ˇreˇsen´ı soustavy line´arn´ıch rovnic s doln´ı troju ´ heln´ıkovou matic´ı. Pomoc´ı aditivn´ıho rozkladu (4.2.7) matice A to zap´ıˇseme jako (L + D)x(k+1) = −Ux(k) + b a po u ´ pravˇe x(k+1) = −(L + D)−1 Ux(k) + (L + D)−1 b. Obecn´e rekurentn´ı vzorce (4.2.3) proto popisuj´ı Gauss-Seidelovu metodu, kdyˇz v nich poloˇz´ıme C = CGS a d = dGS , kde CGS = −(L + D)−1 U,
dGS = (L + D)−1 b.
Kontroln´ı ot´ azky Ot´azka 1. Jak vypad´a obecn´e sch´ema iteraˇcn´ıho ˇreˇsen´ı soustav line´arn´ıch rovnic? Ot´azka 2. Jak se prov´ad´ı v´ ypoˇcet u Jacobiovy a Gauss-Seidelovy metody? Kter´a z nich je rychlejˇs´ı?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Soustavu line´arn´ıch rovnic 4x1 − x2 + 2x3 = −12, 2x1 + 5x2 + x3 = 5, x1 + x2 − 3x3 = −4
- 76 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
ˇreˇste pomoc´ı Jacobiovy metody s pˇresnost´ı = 10−2 . 2. V pˇredchoz´ı u ´ loze pouˇzijte pˇri ˇreˇsen´ı Gauss-Seidelovu metodu. 3. Upravte obecn´ y algoritmus pro iteraˇcn´ı ˇreˇsen´ı soustav line´arn´ıch rovnic tak, aby vyjadˇroval Jacobiovu resp. Gauss-Seidelovu metodu. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Rekurentn´ı vzorce pro Jacobiovu metodu maj´ı tvar (k+1)
x1
(k+1)
x2
(k+1)
x3
(k)
(k)
=
1 (−12 4
=
1 (5 5
− 2x1 − x3 ),
=
1 (4 3
+ x1 + x2 ).
+ x2 − 2x3 ), (k)
(k)
(k)
(k)
Pˇri nulov´e poˇc´ateˇcn´ı aproximaci dojdeme na poˇzadovanou pˇresnost v jeden´act´e iteraci; x1 = −2.9955 ± 10−2 , x2 = 2.0019 ± 10−2 , x3 = 1.0011 ± 10−2 . 2. Rekurentn´ı vzorce pro Gauss-Seidelovu metodu maj´ı tvar (k+1)
x1
(k+1)
x2
(k+1)
x3
(k)
=
1 (−12 4
=
1 (5 5
− 2x1
=
1 (4 3
+ x1
(k)
+ x2 − 2x3 ), (k+1)
(k+1)
(k)
− x3 ), (k+1)
+ x2
).
Pˇri nulov´e poˇc´ateˇcn´ı aproximaci dojdeme na poˇzadovanou pˇresnost ve ˇctvrt´e iteraci; x1 = −2.9991 ± 10−2 , x2 = 1.9998 ± 10−2 , x3 = 1.0002 ± 10−2 . 3. Vstupn´ı parametry C a d u p˚ uvodn´ıho algoritmu nahrad´ıme za A = (aij ) a b = (bi ). Maticov´ y v´ ypoˇcet nov´e iterace x(k+1) zap´ıˇseme rekurentn´ımi vzorci (4.2.5) resp. (4.2.9).
- 77 -
ˇ ´I METODY 4. SLR – ITERACN
4.3.
Numerick´e metody
Vlastn´ı ˇ c´ısla a vlastn´ı vektory matic
C´ıle Pˇripomeneme, jak se definuj´ı a poˇc´ıtaj´ı vlastn´ı ˇc´ısla a vlastn´ı vektory matic. Poznatky z tohoto odstavce jsou z´akladem pˇri posuzov´an´ı konvergence iteraˇcn´ıch metod.
Pˇredpokl´ adan´ e znalosti V´ypoˇcty determinant˚ u, ˇreˇsen´ı algebraick´ ych rovnic, ˇreˇsen´ı soustav line´arn´ıch rovnic se singul´arn´ı matic´ı, line´arn´ı z´avislost a nez´avislost vektor˚ u, ortogonalita vektor˚ u, b´aze.
V´ yklad ´ Ulohu na vlastn´ı ˇc´ısla pˇripomeneme na pˇr´ıkladu. Pˇ r´ıklad 4.3.1. Uvaˇzujme matici ⎛
2 0 0
⎜ ⎜ A=⎜ ⎜ 2 2 1 ⎝ 1 1 2
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
(4.3.1)
Urˇcete takov´a ˇc´ısla λ, pro kter´a m´a soustava line´arn´ıch rovnic Av = λv nenulov´e ˇreˇsen´ı a toto ˇreˇsen´ı vypoˇctˇete. ˇ sen´ı: Soustavu pˇrep´ıˇseme do tvaru: Reˇ ⎛ ⎜ ⎜ (A − λI)v = ⎜ ⎜ ⎝
2−λ 2 1
0
0
⎞⎛
v1
⎞
⎛
0
⎞
⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎜ ⎟ ⎟ ⎜ 2−λ 1 ⎟ ⎜ v2 ⎟ ⎟ = ⎜ 0 ⎟. ⎠ ⎝ ⎠ ⎠⎝ v3 0 1 2−λ
Odtud je vidˇet, ˇze jedn´ım ˇreˇsen´ım je vˇzdy nulov´ y vektor. N´as vˇsak zaj´ımaj´ı
- 78 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
situace, kdy existuje jeˇstˇe dalˇs´ı ˇreˇsen´ı nenulov´e. V takov´em pˇr´ıpadˇe ale mus´ı b´ yt nulov´ y determinant matice soustavy, takˇze pro ˇc´ıslo λ plat´ı det(A − λI) = −λ3 + 6λ2 − 11λ + 6 = 0. Dostali jsme algebraickou rovnici tˇret´ıho stupnˇe a pouze pro jej´ı tˇri koˇreny λ1 = 3, λ2 = 2 a λ3 = 1 bude m´ıt uvaˇzovan´a soustava nenulov´a ˇreˇsen´ı. Najdeme je ze tˇr´ı soustav line´arn´ıch rovnic (A − 3I)v = 0,
(A − 2I)v = 0,
(A − 1I)v = 0,
tj. ⎛
−1
⎜ ⎜ ⎜ 2 ⎜ ⎝ 1
0
0
⎞⎛
v1
⎞
⎛
0
⎞
⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎜ ⎟ ⎜ ⎟ −1 1 ⎟ ⎜ v2 ⎟ ⎟ = ⎜ 0 ⎟, ⎠ ⎝ ⎠ ⎠⎝ 0 v3 1 −1 ⎛
1 0 0
⎜ ⎜ ⎜ 2 1 1 ⎜ ⎝ 1 1 1
⎞⎛
v1
⎛
0 0 0
⎜ ⎜ ⎜ 2 0 1 ⎜ ⎝ 1 1 0 ⎞
⎛
0
⎞⎛
v1
⎞
⎛
0
⎞
⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ v ⎟ = ⎜ 0 ⎟, ⎟⎜ 2 ⎟ ⎜ ⎟ ⎠⎝ ⎠ ⎝ ⎠ 0 v3
⎞
⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎟⎜ v ⎟ = ⎜ 0 ⎟. 2 ⎟⎜ ⎟ ⎜ ⎟ ⎠⎝ ⎠ ⎝ ⎠ v3 0
Vyˇreˇsen´ım tˇechto soustav dostaneme v1 = (0, r, r) ,
v2 = (s, −s, −2s) ,
v3 = (0, t, −t) ,
kde r, s a t jsou libovoln´a nenulov´a ˇc´ısla. Vid´ıme, ˇze kaˇzd´a soustava m´a nekoneˇcnˇe mnoho ˇreˇsen´ı. Konkr´etn´ı volbou r, s a t dostaneme napˇr´ıklad v1 = (0, 1, 1) ,
v2 = (1, −1, −2) ,
v3 = (0, 1, −1) .
Vˇsimnˇeme si jeˇstˇe, ˇze ˇc´ısla λ1 , λ2 a λ3 jsou vz´ajemnˇe r˚ uzn´a a ˇze vektory v1 , v2 a v3 jsou line´arnˇe nez´avisl´e.
- 79 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Definice 4.3.1. ˇ ıslo λ (obecnˇe komplexn´ı), pro kter´e m´a Necht’ A je ˇctvercov´a matice ˇra´du n. C´ soustava Av = λv,
resp. (A − λI)v = 0
nenulov´e ˇreˇsen´ı, se naz´yv´a vlastn´ı ˇc´ıslo matice A a jemu odpov´ıdaj´ıc´ı nenulov´e ˇreˇsen´ı v = (v1 , v2 , . . . , vn ) se naz´yv´a vlastn´ı vektor matice A. Je zˇrejm´e, ˇze ˇc´ıslo λ je vlastn´ım ˇc´ıslem matice A pr´avˇe tehdy, kdyˇz je koˇrenem charakteristick´eho polynomu
pA (λ) = det(A − λI) = (−1)n λn + c1 λn−1 + . . . + cn−1 λ + cn .
Odtud plyne, ˇze kaˇzd´a ˇctvercov´a matice ˇra´du n m´a pr´avˇe n vlastn´ıch ˇc´ısel, pokud kaˇzd´e vlastn´ı ˇc´ıslo poˇc´ıt´ame tolikr´at, kolik je n´asobnost koˇrene. Pozn´ amka Vlastn´ı ˇc´ısla m˚ uˇzeme hledat jako ˇreˇsen´ı rovnice pA (λ) = 0 metodami z kapitoly 2. Tento postup je vˇsak obt´ıˇzn´y pro vˇetˇs´ı hodnoty n, protoˇze je pracn´e vypoˇc´ıtat koeficienty charakteristick´eho polynomu ci . Snadno lze urˇcit vlastn´ı ˇc´ısla u horn´ı troj´ uheln´ıkov´e matice U = (uij ), uij = 0 pro i > j. Jsou to vˇsechny diagon´aln´ı prvky uii, protoˇze z definice determinantu plyne, ˇze charakteristick´ y polynom m´a tvar
pU (λ) = (u11 − λ)(u22 − λ) . . . (unn − λ).
Stejn´e tvrzen´ı plat´ı samozˇrejmˇe i pro doln´ı troj´ uheln´ıkovou matici. Pˇri vyˇsetˇrov´an´ı konvergence iteraˇcn´ıch metod budeme vyuˇz´ıvat n´asleduj´ıc´ı vˇetu.
- 80 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Vˇ eta 4.3.1. Necht’ λ je vlastn´ı ˇc´ıslo matice A, kter´e odpov´ıd´a vlastn´ımu vektoru v, c je dan´e re´aln´e ˇc´ıslo a k je ˇc´ıslo pˇrirozen´e. Potom cλk je vlastn´ı ˇc´ıslo matice cAk , kter´e odpov´ıd´a vlastn´ımu vektoru v. D˚ ukaz: Jestliˇze Av = λv, potom cAk v = cλAk−1 v = . . . = cλk v.
2
Nyn´ı si vˇsimneme vlastn´ıch vektor˚ u. V u ´ vodn´ım pˇr´ıkladu jsme vidˇeli, ˇze vlastn´ı vektory odpov´ıdaj´ıc´ı r˚ uzn´ym vlastn´ım ˇc´ısl˚ um jsou line´arnˇe nez´avisl´e. Toto tvrzen´ı plat´ı obecnˇe, takˇze matice ˇra´du n, m˚ uˇze m´ıt (nejv´yˇse) n line´arnˇe nez´avisl´ ych vektor˚ u. Tyto vektory pak tvoˇr´ı b´azi v prostoru n-sloˇzkov´ ych aritmetick´ ych vektor˚ u. N´asleduj´ıc´ı pˇr´ıklad ukazuje, ˇze matice nemus´ı m´ıt vˇzdy pln´ y poˇcet line´arnˇe nez´avisl´ ych vlastn´ıch vektor˚ u. Pˇ r´ıklad 4.3.2. Urˇcete vlastn´ı ˇc´ısla a vlastn´ı vektory pro matice ⎛
⎞
2 0 0 ⎜ ⎟ ⎜ ⎟ ⎜ A=⎜ 0 2 0 ⎟ ⎟, ⎝ ⎠ 0 0 2 ⎛
2 0 0
⎜ ⎜ C=⎜ ⎜ 0 2 1 ⎝ 0 0 2
⎛
2 1 0 ⎜ ⎟ ⎜ ⎟ ⎜ B=⎜ 0 2 0 ⎟ ⎟, ⎝ ⎠ 0 0 2 ⎛
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
⎞
2 1 0
⎜ ⎜ D=⎜ ⎜ 0 2 1 ⎝ 0 0 2
⎞ ⎟ ⎟ ⎟. ⎟ ⎠
ˇ sen´ı: Vˇsechny matice jsou troj´ Reˇ uheln´ıkov´e a maj´ı stejn´y charakteristick´ y polynom pA (λ) = pB (λ) = pC (λ) = pD (λ) = (2 − λ)3 . ˇ ıslo λ = 2 je tedy (trojn´asobn´ C´ ym) vlastn´ım ˇc´ıslem vˇsech ˇctyˇr matic. Postupem z pˇr´ıkladu 4.3.1. zjist´ıme, ˇze matice A m´a tˇri line´arnˇe nez´avisl´e vlastn´ı vektory v1 = (1, 0, 0) ,
v2 = (0, 1, 0),
- 81 -
v3 = (0, 0, 1)
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
(kaˇzd´a nenulov´a line´arn´ı kombinace tˇechto vektor˚ u je tak´e vlastn´ım vektorem matice A). Pro matici B se podaˇr´ı naj´ıt pouze dva line´arnˇe nez´avisl´e vlastn´ı vektory v1 a v3 . Matice C m´a opˇet dva vlastn´ı vektory, nyn´ı to jsou vektory v1 a v2 . Koneˇcnˇe matice D m´a jedin´ y vlastn´ı vektor v1 .
2
V aplikac´ıch se ˇcasto vyskytuj´ı symetrick´e matice, pro nˇeˇz plat´ı n´asleduj´ıc´ı tvrzen´ı. Vˇ eta 4.3.2. Necht’ A je symetrick´a ˇctvercov´a matice, tj. A = A . Potom plat´ı: (i) vˇsechna vlastn´ı ˇc´ısla jsou re´aln´a; (ii) vlastn´ı vektory odpov´ıdaj´ıc´ı r˚ uzn´ym vlastn´ım ˇc´ısl˚ um jsou ortogon´aln´ı; (iii) k-n´asobn´emu vlastn´ımu ˇc´ıslu odpov´ıd´a k line´arnˇe nez´avisl´ ych vlastn´ıch vektor˚ u, kter´e lze zvolit tak, aby byly ortogon´aln´ı.
Pozn´ amka Z vˇety plyne, ˇze pro symetrickou matici ˇra´du n m˚ uˇzeme vˇzdy naj´ıt n ortogon´ aln´ıch vlastn´ıch vektor˚ u. Protoˇze ortogon´ aln´ı vektory jsou line´ arnˇe nez´ avisl´e, budou tvoˇrit b´ azi v prostoru n-sloˇzkov´ych aritmetick´ych vektr˚ u.
4.3.1.
V´ ypoˇ cet vlastn´ıch ˇ c´ısel metodou LU-rozkladu
Uk´aˇzeme iteraˇcn´ı metodu v´ ypoˇctu vlastn´ıch ˇc´ısel, kter´a se v literatuˇre naz´ yv´a LR-algoritmus. Jej´ım z´akladem jsou vlastnosti podobn´ ych matic. Definice 4.3.2. Dvˇe ˇctvercov´e matice A a B ˇra´du n se naz´yvaj´ı podobn´e, jestliˇze existuje regul´arn´ı ˇctvercov´a matice C takov´a, ˇze plat´ı A = C−1 BC.
Vˇ eta 4.3.3. Podobn´e matice maj´ı stejn´a vlastn´ı ˇc´ısla.
- 82 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
D˚ ukaz: Necht’ λ je vlastn´ı ˇc´ıslo matice A odpov´ıdaj´ıc´ı vlastn´ımu vektoru v, tj. plat´ı Av = λv. Potom −1 −1 −1 −1 C AC C v = C Av = λ C v . B
˜ v
˜ v
˜. 2 Odtud plyne, ˇze λ je vlastn´ı ˇc´ıslo matice B odpov´ıdaj´ıc´ı vlastn´ımu vektoru v Metoda LU-rozkladu je zaloˇzena na n´asleduj´ıc´ım pozorov´an´ı. Necht’ L a U tvoˇr´ı LU-rozklad matice A podle vˇety 3.3.1., tj. plat´ı A = LU. Definujme matici A1 = UL. Protoˇze A1 = UL = L−1 LUL = L−1 AL, vid´ıme, ˇze matice A a A1 jsou podobn´e a maj´ı proto stejn´a vlastn´ı ˇc´ısla. Analogicky m˚ uˇzeme k matici A1 vytvoˇrit podobnou matici A2 atd. Dostaneme posloupnost podobn´ych matic a budeme se zaj´ımat o vlastn´ı ˇc´ısla limitn´ı matice. Algoritmus (Metoda LU-rozkladu) Poloˇz´ıme A0 = A a pro k = 1, 2, . . . provedeme: 1) LU-rozklad matice Ak−1, tj. urˇc´ıme Lk a Uk tak, ˇze Ak−1 = Lk Uk ; 2) vypoˇc´ıt´ame souˇcin Ak := Uk Lk . Vˇsimnˇeme si posloupnost´ı {Ak } a {Uk }. Lze dok´azat, ˇze za jist´ych pˇredpoklad˚ u konverguj´ı obˇe tyto posloupnosti ke stejn´e limitn´ı matici M; viz [1]. Tato matice je nutnˇe horn´ı troj´ uheln´ıkov´a a m´a stejn´a vlastn´ı ˇc´ısla jako A. Hledan´a vlastn´ı ˇc´ısla proto urˇc´ıme jako diagon´aln´ı prvky matice M. Pˇ r´ıklad 4.3.3. Pomoc´ı metody LU-rozkladu vypoˇctˇetˇe vlastn´ı ˇc´ısla matice ⎛
2 −1
0
⎞
⎟ ⎜ ⎟ ⎜ ⎜ A = ⎜ −1 2 −1 ⎟ ⎟ ⎠ ⎝ 0 −1 2 s pˇresnost´ı na dvˇe desetinn´a m´ısta.
- 83 -
(4.3.2)
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
ˇ sen´ı: Pro A0 = A urˇc´ıme LU-rozklad Reˇ ⎛ ⎛ ⎞ ⎞ 1 0 0 2.00 −1.00 0 ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ ⎟ ⎟ ⎜ ⎜ ⎟ L0 = ⎜ −0.50 1 0 ⎟ , U0 = ⎜ 0 1.50 −1.00 ⎟ ⎟ ⎝ ⎝ ⎠ ⎠ 0 −0.67 1 0 0 1.33 a vyn´asoben´ım dostaneme ⎛
2.50 −1.00
0
⎞
⎜ ⎟ ⎜ ⎟ ⎜ A1 = U0 L0 = ⎜ −0.75 2.17 −1.00 ⎟ ⎟. ⎝ ⎠ 0 −0.89 1.33 Podobnˇe pro A1 vypoˇc´ıt´ame LU-rozklad ⎛ ⎞ ⎛ ⎞ 1 0 0 2.50 −1.00 0 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎜ ⎟ L1 = ⎜ −0.30 1 0 ⎟ , U1 = ⎜ 0 1.87 −1.00 ⎟ ⎟ ⎝ ⎠ ⎝ ⎠ 0 −0.48 1 0 0 0.86 a opˇet vyn´asoben´ım dostaneme ⎛
2.80 −1.00
0
⎞
⎜ ⎟ ⎜ ⎟ ⎜ A2 = U1 L1 = ⎜ −0.56 2.34 −1.00 ⎟ ⎟. ⎝ ⎠ 0 −0.41 0.86 ˇ ısla pod diagon´alou u matic Ak se zaˇc´ınaj´ı pˇribliˇzovat k nule, coˇz ukazuje na tenC´ denci ke konvergenci. Jestliˇze takto pokraˇcujeme d´ale, dostaneme ⎛ ⎞ 3.41 −1.00 0 ⎜ ⎟ ⎜ ⎟ ⎟≈M A13 = ⎜ 0.00 2.00 −1.00 ⎜ ⎟ ⎝ ⎠ 0 0.00 0.58 a v dalˇs´ıch iterac´ıch se jiˇz ˇc´ısla na diagon´ale (na prvn´ıch dvou desetinn´ ych . . m´ıstech) nemˇen´ı. Pˇribliˇzn´e hodnoty vlastn´ıch ˇc´ısel jsou λ1 = 3.41, λ2 = 2.00 . a λ1 = 0.58.
- 84 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Kontroln´ı ot´ azky Ot´azka 1. Jak se definuj´ı vlastn´ı ˇc´ısla a vlastn´ı vektory matic? Ot´azka 2. Kolik vlastn´ıch ˇc´ısel a vlastn´ıch vektor˚ u m´a matice ˇra´du n? Ot´azka 3. Na jak´e vlastnosti je zaloˇzena metoda LU-rozkladu? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pomoc´ı charakteristick´eho polynomu vypoˇctˇete vlastn´ı ˇc´ısla matice (4.3.2). Vypoˇctˇete tak´e vlastn´ı vektory. 2. Metodou LU-rozkladu vypoˇctˇetˇe vlastn´ı ˇc´ısla matice ⎛
⎞
1 −1 0 ⎜ ⎟ ⎜ ⎟ ⎜ A = ⎜ −1 2 −1 ⎟ ⎟ ⎝ ⎠ 0 −1 3 s pˇresnost´ı na ˇctyˇri desetinn´a m´ısta. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. pA (λ) = λ3 −6λ2 + 10λ −4, λ1 = 3.414214, λ2 = 2, λ3 = 0.585786. Vlastn´ı vek√ √ √ √ tory jsou napˇr´ıklad v1 = (−1, 2, −1) , v2 = (− 2, 0, 2) , v3 = (1, 2, 1) . . 2. Vlastn´ı ˇc´ısla s poˇzadovanou pˇresnost´ı jsou na diagon´ale matice A20 ; λ1 = . . 3.7320, λ2 = 2.0000, λ3 = 0.2679.
- 85 -
ˇ ´I METODY 4. SLR – ITERACN
4.4.
Numerick´e metody
Konvergence iteraˇ cn´ıch metod
C´ıle Odvod´ıme podm´ınky, kter´e zaruˇcuj´ı konvergenci iteraˇcn´ıch metod.
Pˇredpokl´ adan´ e znalosti Iteraˇcn´ı ˇreˇsen´ı soustav line´arn´ıch rovnic. Vlastn´ı ˇc´ısla a vlastn´ı vektory.
V´ yklad Pˇripomeˇ nme, ˇze pˇri iteraˇcn´ım ˇreˇsen´ı pˇrev´ad´ıme soustavu line´arn´ıch rovnic Ax = b na (ekvivalentn´ı) soustavu v iteraˇcn´ım tvaru x = Cx + d.
(4.4.1)
K ˇreˇsen´ı se potom pˇribliˇzujeme pomoc´ı posloupnosti {x(k) }, kterou poˇc´ıt´ame podle rekurentn´ıho vzorce x(k+1) = Cx(k) + d.
(4.4.2)
Jestliˇze odeˇcteme (4.4.1) a (4.4.2) a oznaˇc´ıme pˇritom e(k) = x(k) − x, dostaneme e(k+1) = Ce(k) . T´ımto vzorcem se ˇr´ıd´ı iteraˇcn´ı chyba e(k) . Jeho opakovan´ ym pouˇzit´ım dostaneme e(k+1) = Ce(k) = C2 e(k−1) = . . . = Ck+1 e(0) . Proto e(k) = Ck e(0) ,
(4.4.3)
kde e(0) je poˇc´ateˇcn´ı chyba, kter´a je urˇcena volbou poˇc´ateˇcn´ı aproximace x(0) . Je zˇrejm´e, ˇze iteraˇcn´ı v´ ypoˇcet bude konvergovat, jestliˇze limk→∞ e(k) = 0, tj. kdyˇz se iteraˇcn´ı chyba bl´ıˇz´ı k nulov´emu vektoru. Tuto limitu budeme vyˇsetˇrovat pomoc´ı vzorce (4.4.3). Budeme pˇritom pˇredpokl´adat, ˇze iteraˇcn´ı matice C m´a
- 86 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
vlastn´ı ˇc´ısla λ1 , . . ., λn , kter´ ym odpov´ıdaj´ı vlastn´ı vektory v1 , . . ., vn , kter´e tvoˇr´ı b´azi. Pˇripomeˇ nme, ˇze takov´a situace nastane podle vˇety 4.3.2. a n´asledn´e pozn´amky napˇr´ıklad v pˇr´ıpadˇe, kdy je C symetrick´a matice. Vektor e(0) pak m˚ uˇzeme zapsat jako line´arn´ı kombinaci vlastn´ıch vektor˚ u, tj. existuj´ı konstanty c1 , . . ., cn , pro nˇeˇz plat´ı e(0) = c1 v1 + . . . + cn vn .
(4.4.4)
Jestliˇze dosad´ıme (4.4.4) do (4.4.3) dostaneme s pomoc´ı vˇety 4.3.1. vztah e(k) = c1 Ck v1 + . . . + cn Ck vn = c1 λk1 v1 + . . . + cn λkn vn .
(4.4.5)
Odtud je vidˇet, ˇze lim e(k) = 0 ⇐⇒ lim λki = 0 pro i = 1, . . . , n.
k→∞
k→∞
Uveden´e limity budou nulov´e, pr´avˇe kdyˇz |λi | < 1 pro i = 1, . . . , n. Dok´azali jsme n´asleduj´ıc´ı tvrzen´ı: Vˇ eta 4.4.1. Necht’ C je iteraˇcn´ı matice, kter´a m´a n line´arnˇe nez´avisl´ ych vlastn´ıch vektor˚ u. Iteraˇcn´ı metoda dan´a vzorcem (4.4.2) konverguje pro kaˇzdou poˇc´ateˇcn´ı aproximaci x(0) , pr´avˇe kdyˇz vˇsechna vlastn´ı ˇc´ısla matice C jsou v absolutn´ı hodnotˇe menˇs´ı neˇz jedna.
Pˇ r´ıklad 4.4.1. Urˇcete vlastn´ı ˇc´ısla iteraˇcn´ıch matic CJ a CB z odstavce 4.1. a porovnejte pr˚ ubˇehy iteraˇcn´ıch v´ ypoˇct˚ u s tvrzen´ım posledn´ı vˇety. ˇ sen´ı: Z charakteristick´eho polynomu pC (λ) = λ3 + 7 λ − 1 urˇc´ıme vlastn´ı Reˇ J 88 80 . . . ˇc´ısla matice CJ : λ1 = 0.1297, λ2 = −0.0649 + i0.3036, λ3 = −0.0649 − i0.3036. . ypoˇcet Z absolutn´ıch hodnot |λ1 | = λ1 , |λ2 | = |λ3 | = 0.3104 vid´ıme, ˇze iteraˇcn´ı v´ mus´ı b´ yt konvergentn´ı, coˇz je v souladu s naˇs´ım pozorov´an´ım z odstavce 4.1.
- 87 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Podobnˇe z charakteristick´eho polynomu pCB (λ) = λ3 + 26λ2 + 229λ + 683 urˇc´ıme . vlastn´ı ˇc´ısla matice CB . Staˇc´ı si povˇsimnout, ˇze jedno z vlastn´ıch ˇc´ısel je λ1 = uˇze iteraˇcn´ı v´ ypoˇcet (obecnˇe) konvergovat, coˇz je −8.7373. Protoˇze |λ1 | > 1, nem˚ rovnˇeˇz v souladu s pozorov´an´ım z odstavce 4.1.
Vidˇeli jsme, ˇze o konvergenci iteraˇcn´ı metody lze rozhodnout na z´akladˇe vlastn´ıch ˇc´ısel. V´ypoˇcet vlastn´ıch ˇc´ısel je vˇsak zpravidla sloˇzitˇejˇs´ı neˇz ˇreˇsen´ı soustavy line´arn´ıch rovnic. V dalˇs´ı vˇetˇe proto uk´aˇzeme jednoduˇsˇs´ı, i kdyˇz slabˇs´ı konvergenˇcn´ı podm´ınku.
Vˇ eta 4.4.2. Necht’ C je iteraˇcn´ı matice, kter´a m´a n line´arnˇe nez´avisl´ ych vlastn´ıch vektor˚ u. Iteraˇcn´ı metoda dan´a vzorcem (4.4.2) konverguje pro kaˇzdou poˇc´ateˇcn´ı aproximaci x(0) , jestliˇze pro nˇekterou normu plat´ı C < 1.
D˚ ukaz: Necht’ C < 1 a necht’ λ je libovoln´e vlastn´ı ˇc´ıslo matice C odpov´ıdaj´ıc´ı vlastn´ımu vektrou v, tj. Cv = λv. Protoˇze |λ|v = λv = Cv ≤ Cv, plat´ı |λ| ≤ C < 1, takˇze vˇsechna vlastn´ı ˇc´ısla matice C jsou v absolutn´ı hodnotˇe menˇs´ı neˇz jedna. Iteraˇcn´ı metoda proto konverguje podle vˇety 4.4.1.
2
U Jacobiovy a Gauss-Seidelovy metody lze konvergenˇcn´ı podm´ınku z posledn´ı vˇety formulovat pomoc´ı matice soustavy A. Pouˇz´ıv´a se pˇritom terminologie z n´asleduj´ıc´ı definice. Definice 4.4.1. ˇ Rekneme, ˇze ˇctvercov´a matice A = (aij ) ˇra´du n je ostˇre diagon´alnˇe dominant´ı, jestliˇze plat´ı |ai1 | + . . . + |aii−1 | + |aii+1 | + . . . + |ain | < |aii | pro i = 1, . . . , n.
- 88 -
(4.4.6)
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Pˇ r´ıklad 4.4.2. Rozhodnˇete, kter´a z n´asleduj´ıc´ıch matic je ostˇre diagon´alnˇe dominantn´ı:
⎛
11
2
1
⎜ ⎜ A=⎜ 2 ⎜ 1 10 ⎝ 2 3 −8
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
⎛
−8 2
1
⎞
⎜ ⎟ ⎜ ⎟ ⎟. B=⎜ −2 1 −3 ⎜ ⎟ ⎝ ⎠ 1 1 3
ˇ sen´ı: Matice A je ostˇre diagon´alnˇe dominantn´ı, protoˇze plat´ı 2 + 1 < 11, Reˇ 1 + 2 < 10 a 2 + 3 < 8. Matice B nen´ı ostˇre diagon´alnˇe dominantn´ı, protoˇze ve druh´em ˇra´dku je 2 + 3 > 1. Vˇ eta 4.4.3. Necht’ Ax = b je dan´a soustava line´arn´ıch rovnic. Jacobiova iteraˇcn´ı metoda konverguje pro kaˇzdou poˇc´ateˇcn´ı aproximaci x(0) , jestliˇze matice A je ostˇre diagon´alnˇe dominant´ı.
D˚ ukaz: Necht’ A je ostˇre diagon´alnˇe dominantn´ı. Podm´ımku (4.4.6) m˚ uˇze pˇrepsat do tvaru |ai1 | |aii−1 | |aii+1 | |ain | + ...+ + + ...+ < 1, |aii | |aii | |aii | |aii |
pro i = 1, . . . , n.
Pro iteraˇcn´ı matici Jacobiovy metody CJ (viz (4.2.6)) to znamen´a, ˇze souˇcet absolutn´ıch hodnot prvk˚ u v kaˇzd´em ˇra´dku je menˇs´ı neˇz jedna. V ˇra´dkov´e normˇe proto plat´ı CJ R < 1 a konvergence Jacobiovy metody plyne z vˇety 4.4.2.
2
Pozn´ amka Tak´e Gauss-Seidelova metoda konverguje, je-li matice soustavy ostˇre diagon´alnˇe dominant´ı. D˚ ukaz je vˇsak o nˇeco sloˇzitˇejˇs´ı; viz [1].
- 89 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
Pozn´ amka Konvergenci Jacobiovy i Gauss-Seidelovy metody zajist´ıme tak, ˇze ˇreˇsenou soustavu pˇredem uprav´ıme na ekvivalentn´ı soustavu s ostˇre diagon´alnˇe dominantn´ı matic´ı. Pˇ r´ıklad 4.4.3. Soustavu line´arn´ıch rovnic −8x1 + 2x2 + x3 = −1, −2x1 + x2 − 3x3 = −9, x1 + x2 + 3x3 = 12 upravte na tvar s ostˇre diagon´alnˇe dominantn´ı matic´ı. ´ ˇ sen´ı: Upravy, Reˇ kter´e nemˇen´ı ˇreˇsen´ı, jsou tˇri: z´amˇena poˇrad´ı rovnic, vyn´asoben´ı rovnice nenulov´ ym ˇc´ıslem a pˇriˇcten´ı nenulov´eho n´asobku rovnice k jin´e rovnici. V naˇsem pˇr´ıpadˇe staˇc´ı pˇriˇc´ıst tˇret´ı rovnici k rovnici druh´e: −8x1 + 2x2 + x3 = −1, −x1 + 2x2 = −3, x1 + x2 + 3x3 = 12. Provedeme-li v´ ypoˇcet Jacobiovy nebo Gauss-Seidelovy metody pro tuto soustavu, budeme m´ıt zaruˇcenu konvergenci.
Kontroln´ı ot´ azky Ot´azka 1. Jak´e podm´ınky zaruˇcuj´ı konvergenci obecn´e iteraˇcn´ı metody? Ot´azka 2. Jak lze zajistit konvergenci u Jacobiovy a Gauss-Seidelovy metody?
- 90 -
ˇ ´I METODY 4. SLR – ITERACN
Numerick´e metody
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Soustavu line´arn´ıch rovnic 4x1 + x2 + x3 = 6, x1 + 4x2 + x3 = 6, 6x1 + 6x2 + 6x3 = 18 upravte na tvar s ostˇre diagon´alnˇe dominantn´ı matic´ı. 2. Napiˇste iteraˇcn´ı matici pro Jacobiovu metodu a vypoˇctˇete jej´ı vlastn´ı ˇc´ısla. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Od tˇret´ı rovnice odeˇcteme rovnici prvn´ı i druhou. Dostaneme: 4x1 + x2 + x3 = 6, x1 + 4x2 + x3 = 6, x1 + x2 + 4x3 = 6. 2. Iteraˇcn´ı matice m´a tvar: ⎛
0 −1/4 −1/4
⎞
⎟ ⎜ ⎟ ⎜ ⎜ CJ = ⎜ −1/4 0 −1/4 ⎟ ⎟. ⎠ ⎝ −1/4 −1/4 0 Z charakteristick´eho polynomu pCJ (λ) = λ3 −
3 λ 16
+
1 32
urˇc´ıme koˇreny λ1 = − 12 ,
λ2 = λ3 = 14 . Shrnut´ı lekce Uk´azali jsme iteraˇcn´ı zp˚ usob ˇreˇsen´ı soustav line´arn´ıch rovnic a odvodili jsem podm´ınky, kter´e zaruˇcuj´ı konvergenci.
- 91 -
5. INTERPOLACE A APROXIMACE FUNKC´I
5.
Numerick´e metody
Interpolace a aproximace funkc´ı
Pr˚ uvodce studiem ˇ Casto je potˇreba sloˇzitou” funkci f nahradit funkc´ı jednoduˇsˇs´ı”. V t´eto ” ” kapitole budeme pˇredpokl´adat, ˇze u funkce f zn´ame jej´ı funkˇcn´ı hodnoty fi = ´ lohy. f (xi ) v uzlech xi pro i = 0, . . . , n. Budeme rozliˇsovat dvˇe u Interpolaˇcn´ı u ´ loha: Hled´ame funkci ϕ, pro niˇz je ϕ(xi ) = fi ,
i = 0, . . . , n.
(5.0.1)
Aproximace metodou nejmenˇs´ıch ˇctverc˚ u: Hled´ame funkci ϕ, pro niˇz je ϕ(xi ) ≈ fi ,
i = 0, . . . , n,
(5.0.2)
kde pˇribliˇzn´a rovnost ≈” je urˇcena tak, aby souˇcet druch´ych mocnin odchylek ” mezi pˇredepsan´ ymi hodnotami fi a pˇredpokl´adan´ ymi hodnotami ϕ(xi ) byl minim´aln´ı.
Jestliˇze tyto u ´ lohy zn´azorn´ıme graficky, bude ˇreˇsen´ı interpolaˇcn´ı u ´ lohy pro´ lohy bude ch´azet pˇres body (xi , fi ), i = 0, . . . , n, kdeˇzto ˇreˇsen´ı aproximaˇcn´ı u (obecnˇe) proch´azet jejich bl´ızk´ym okol´ım. Formulace obou u ´ loh je zat´ım pˇr´ıliˇs obecn´a, protoˇze jsme neˇrekli jak´eho typu m´a b´ yt funkce ϕ. Uk´aˇzeme tˇri volby: polynom, splajn (spline-funkce) a line´arn´ı kombinace obecn´ ych funkc´ı. Polynom je jednoduch´y z hlediska matematick´ych operac´ı (snadno se derivuje, integruje atp.), jeho graf vˇsak ˇcasto osciluje. Lepˇs´ı tvary grafu maj´ı splajny. Kombinace obecn´ ych funkc´ı se pouˇz´ıv´a zpravidla v situac´ıch, kdy je zn´amo, jakou z´avislost dan´a data popisuj´ı (pro periodickou z´avislost je dobr´e pouˇz´ıt funkce goniometrick´e, pro strmˇe rostouc´ı data se hod´ı funkce exponenci´aln´ı atp.).
- 92 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
5.1.
Interpolaˇ cn´ı polynom
C´ıle Uk´aˇzeme metody pro sestaven´ı interpolaˇcn´ıho polynomu a odvod´ıme vzorec pro interpolaˇcn´ı chybu.
Pˇredpokl´ adan´ e znalosti ˇ sen´ı soustav line´arn´ıch rovnic. Vˇeta o stˇredn´ı hodnotˇe difePolynomy. Reˇ renci´aln´ıho poˇctu.
V´ yklad Funkci ϕ v u ´ loze (5.0.1) budeme hledat jako interpolaˇcn´ı polynom stupnˇe nejv´ yˇse n, tj. poloˇz´ıme ϕ = pn , kde pn (x) = a0 + a1 x + a2 x2 + . . . + an xn .
(5.1.1)
Zaˇcneme pˇr´ıkladem. Pˇ r´ıklad 5.1.1.
Jsou d´any uzly x0 = −2, x1 = −1, x2 = 1, x3 = 2 a funkˇcn´ı
hodnoty f0 = 10, f1 = 4, f2 = 6, f3 = 3. Urˇcete interpolaˇcn´ı polynom p3 . ˇ sen´ı: Reˇ
Hledan´ y polynom m´a obecn´ y tvar p3 (x) = a0 + a1 x + a2 x2 + a3 x3 .
Koeficienty a0 , a1 , a2 , a3 urˇc´ıme tak, aby platilo (5.0.1). Kaˇzd´a interpolaˇcn´ı rovnost urˇcuje jednu rovnici: p3 (−2) = 10 ⇒ a0 − 2a1 + 4a2 − 8a3 = 10, p3 (−1) = 4
⇒ a0 −
a1
+
a2
−
a3
=
4,
p3 (1)
= 6
⇒ a0 +
a1
+
a2
+
a3
=
6,
p3 (2)
= 3
⇒ a0 + 2a1 + 4a2 + 8a3 =
3.
- 93 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
Dostali jsme soustavu line´arn´ıch rovnic ⎞ ⎛ ⎞⎛ ⎞ ⎛ a0 10 1 −2 4 −8 ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎜ 1 −1 1 −1 ⎟ ⎜ a1 ⎟ ⎜ 4 ⎟ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟, ⎜ ⎟⎜ ⎟=⎜ ⎜ ⎜ ⎜ 1 ⎟ ⎟ 1 1 1 ⎟ ⎜ a2 ⎟ ⎜ 6 ⎟ ⎟ ⎜ ⎠ ⎝ ⎠⎝ ⎠ ⎝ 3 1 2 4 8 a3 jej´ımˇz ˇreˇsen´ım (na tˇri desetinn´a m´ısta) jsou koeficienty a0 = 4.500, a1 = 1.917, a2 = 0.500 a a3 = −0.917. Interpolaˇcn´ı polynom m´a tvar p3 (x) = 4.500 + 1.917x + 0.500x2 − 0.917x3 . Jeho graf je na obr´azku 5.1.1. 12 10 8 6 4 2 −2
−1
0
1
2
Obr´azek 5.1.1: Graf interpolaˇcn´ıho polynomu p3 . Rozborem postupu z pˇr´ıkaldu dok´aˇzeme n´asleduj´ıc´ı vˇetu. Vˇ eta 5.1.1. Necht’ jsou d´any vz´ajemnˇe r˚ uzn´e uzly xi a funkˇcn´ı hodnoty fi , i = 0, . . . , n. Existuje pr´avˇe jeden interpolaˇcn´ı polynom stupnˇe nejv´yˇse n.
D˚ ukaz: Dosazen´ım obecn´eho tvaru polynomu (5.1.1) do interpolaˇcn´ıch rovnost´ı
- 94 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
(5.0.1) dostaneme soustavu line´arn´ıch rovnic pn (xi ) = a0 + a1 xi + a2 x2i + . . . + an xni = fi ,
i = 0, . . . , n,
kterou lze zapsat maticovˇe jako ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝
1 x0 x20 . . . xn0 1 x1
x21
...
xn1
1 x2 x22 . . . xn2 .. . . . .. .. . .. . . .
⎞⎛ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎠⎝
1 xn x2n . . . xnn
a0 a1 a2 .. . an
⎞
⎛
⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟=⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎠ ⎝
f0 f1 f2 .. .
⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟. ⎟ ⎟ ⎟ ⎟ ⎠
fn
Matice t´eto soustavy m´a nenulov´ y determinant (Vandermod˚ uv determinant). Odtud plyne existence jedin´eho ˇreˇsen´ı soustavy line´arn´ıch rovnic a tak´e inter2
polaˇcn´ıho polynomu.
5.1.1.
Lagrange˚ uv tvar interpolaˇ cn´ıho polynomu
Uk´aˇzeme postup, pˇri nˇemˇz se obejdeme bez ˇreˇsen´ı soustavy line´arn´ıch rovnic. Interpolaˇcn´ı polynom budeme hledat ve tvaru pn (x) = f0 ϕ0 (x) + f1 ϕ1 (x) + . . . + fn ϕn (x).
(5.1.2)
Rovnosti pn (xi ) = fi , i = 0, 1, . . . , n budou splnˇeny, jestliˇze bude platit ⎧ ⎪ ⎨ 1 pro i = j, ϕi (xj ) = ⎪ ⎩ 0 pro i = j. Z vˇety 5.1.1. v´ıme, ˇze interpolaˇcn´ı polonom je stupnˇe nejv´yˇse n, takˇze tak´e yt polynomy stupnˇe nejv´ yˇse n. Uveden´ym poˇzadavk˚ um vˇsechny funkce ϕi mus´ı b´ vyhovuje n´asleduj´ıc´ı definice: ϕi (x) =
(x − x0 ) . . . (x − xi−1 )(x − xi+1 ) . . . (x − xn ) (xi − x0 ) . . . (xi − xi−1 )(xi − xi+1 ) . . . (xi − xn )
- 95 -
(5.1.3)
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
ˇ pro i = 0, 1, . . . , n. Citatel je totiˇz polynom, kter´ y nab´ yv´a nulov´ ych hodnot yv´a nenulov´e hodnoty, kter´a je ve vˇsech uzlech kromˇe xi . V uzlu xi pak nab´ obsaˇzena ve jmenovateli zlomku, takˇze plat´ı ϕi (xi ) = 1. aze interpolaˇcn´ı u ´ lohy Polynom˚ um ϕi , i = 0, 1, . . . , n se ˇr´ık´a Lagrangeova b´ a vzorec (5.1.2) se naz´ yv´a Lagrange˚ uv tvar inteprolaˇcn´ıho polynomu.
Pˇ r´ıklad 5.1.2.
Mˇejme d´any uzly x0 = −2, x1 = −1, x2 = 1, x3 = 2 a funkˇcn´ı
uv tvar interpolaˇcn´ıho hodnoty f0 = 10, f1 = 4, f2 = 6, f3 = 3. Napiˇste Lagrange˚ polynomu. ˇ sen´ı: Reˇ
Nejdˇr´ıve sestav´ıme Lagrangeovu b´azi. Podle (5.1.3) je
ϕ0 (x) =
1 (x + 1)(x − 1)(x − 2) = − (x + 1)(x − 1)(x − 2), (−2 + 1)(−2 − 1)(−2 − 2) 12
ϕ1 (x) =
1 (x + 2)(x − 1)(x − 2) = (x + 2)(x − 1)(x − 2), (−1 + 2)(−1 − 1)(−1 − 2) 6
ϕ2 (x) =
1 (x + 2)(x + 1)(x − 2) = − (x + 2)(x + 1)(x − 2), (1 + 2)(1 + 1)(1 − 2) 6
ϕ3 (x) =
1 (x + 2)(x + 1)(x − 1) = (x + 2)(x + 1)(x − 1). (2 + 2)(2 + 1)(2 − 1) 12
Dosazen´ım do (5.1.2) dostaneme v´ysledek 2 5 p3 (x) = − (x + 1)(x − 1)(x − 2) + (x + 2)(x − 1)(x − 2) − 6 3 1 −(x + 2)(x + 1)(x − 2) + (x + 2)(x + 1)(x − 1). 4 Pozn´ amka ´ Interpolaˇcn´ı polynom je podle vˇety 5.1.1. urˇcen jednoznaˇcnˇe. Upravou Lagrangeova tvaru proto mus´ıme nutnˇe doj´ıt k polynomu, kter´y jsem vypoˇc´ıtali v pˇr´ıkladu 5.1.1. (ovˇeˇrte).
- 96 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody 5.1.2.
Newton˚ uv tvar interpolaˇ cn´ıho polynomu
Uvaˇzujme z´apis polynomu ve tvaru: pn (x) = a0 +a1 (x−x0 )+a2 (x−x0 )(x−x1 )+. . .+an (x−x0 ) . . . (x−xn−1 ). (5.1.4) Jestliˇze dosad´ıme do interpolaˇcn´ıch rovnost´ı pn (xi ) = fi , i = 0, 1, . . . , n, dostaneme soustavu line´arn´ıch rovnic s doln´ı troj´ uheln´ıkovou matic´ı: ⎞⎛ ⎞ ⎛ ⎛ a 1 0 0 ... 0 ⎟⎜ 0 ⎟ ⎜ ⎜ ⎟⎜ ⎟ ⎜ ⎜ ⎜ ⎟ ⎜ ⎜ 1 (x1 − x0 ) 0 ... 0 ⎟ ⎟ ⎜ a1 ⎟ ⎜ ⎜ ⎟⎜ ⎟=⎜ ⎜ ⎜ 1 (x − x ) (x − x )(x − x ) . . . 0 ⎟ ⎜ a ⎟ ⎜ ⎟⎜ 2 ⎟ ⎜ ⎜ 2 0 2 0 2 1 ⎠⎝ ⎠ ⎝ ⎝ .. . .. .. .. .. . . . . . . .
⎞ f0
⎟ ⎟ f1 ⎟ ⎟ ⎟, f2 ⎟ ⎟ ⎠ .. .
(5.1.5)
Odud m˚ uˇzeme postupnˇe vyj´adˇrit koeficienty ak : a0
a2
=
=
f0 ,
a1 =
f1 − a0 f1 − f0 = , x1 − x0 x1 − x0
f1 − f0 f2 − f1 − f2 − a1 (x2 − x0 ) − a0 x − x1 x1 − x0 = 2 , (x2 − x0 )(x2 − x1 ) x2 − x0
atd.. V´yrazy na prav´ ych stran´ach jsou pomˇern´e diference, jejichˇz oznaˇcen´ı zav´ad´ıme v n´asleduj´ıc´ı definici. Definice 5.1.1. Necht’ jsou d´any vz´ajemnˇe r˚ uzn´e uzly xi a funkˇcn´ı hodnoty fi , i = 0, . . . , n. Pomˇern´e diference k-t´eho ˇra´du f [xi+k , . . . , xi ],
i = 0, 1, . . . , n − k definujeme
rekurentnˇe: • pro k = 0 : • pro k = 1 :
f [xi ] = fi ; f [xi+1 , xi ] =
• pro k ≤ n : f [xi+k , . . . , , xi ] =
fi+1 − fi ; xi+1 − xi f [xi+k , . . . , xi+1 ] − f [xi+k−1 , . . . , xi ] . xi+k − xi
- 97 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
Porovn´an´ım pomˇern´ ych diferenc´ı s koeficienty ak vid´ıme, ˇze ak = f [xk , . . . , x0 ],
k = 0, 1, . . . , n.
Dosazen´ım do (5.1.4) dostaneme Newton˚ uv tvar interpolaˇcn´ıho polynomu: pn (x) = f0 + f [x1 , x0 ](x − x0 ) + . . . + f [xn , . . . , x0 ](x − x0 ) . . . (x − xn−1 ). (5.1.6) Pˇri jeho sestavov´an´ı potˇrebujeme vypoˇc´ıtat pomˇern´e diference. Vˇse uk´aˇzeme v n´asleduj´ıc´ım pˇr´ıkladu. Pˇ r´ıklad 5.1.3.
Mˇejme d´any uzly x0 = −2, x1 = −1, x2 = 1, x3 = 2 a funkˇcn´ı
uv tvar interpolaˇcn´ıho hodnoty f0 = 10, f1 = 4, f2 = 6, f3 = 3. Napiˇste Newton˚ polynomu. ˇ sen´ı: Reˇ
Potˇrebujeme vypoˇc´ıtat pomˇern´e diference: f [x1 , x0 ], f [x2 , x1 , x0 ], f [x3 , x2 , x1 , x0 ].
Podle definice je f [x1 , x0 ] =
4 − 10 = −6, −1 + 2
f [x2 , x1 ] − f [x1 , x0 ] f [x2 , x1 , x0 ] = = x2 − x0
6−4 1+1
+6 7 = , 1+2 3
f [x3 , x2 , x1 ] − f [x2 , x1 , x0 ] f [x3 , x2 , x1 , x0 ] = = x3 − x0
3−6 − 6−4 2−1 1+1
− 2+2
2+1
7 3
= −
11 . 12
Dosazen´ım do (5.1.6) dostaneme v´ysledek 11 7 p3 (x) = 10 − 6(x + 2) + (x + 2)(x + 1) − (x + 2)(x + 1)(x − 1). 3 12 Pˇrehlednˇe m˚ uˇzeme v´ypoˇcet pomˇern´ ych diferenc´ı prov´est v tabulce (tabulka 5.1.1), kde do prvn´ıch dvou sloupc˚ u zap´ıˇseme zadan´e uzly a funkˇcn´ı hodnoty a v kaˇzd´em dalˇs´ım sloupci pak vypoˇc´ıt´ame vˇsechny (!) pomˇern´e diference postupnˇe se zvyˇsuj´ıc´ıch ˇra´d˚ u. Pro naps´an´ı interpolaˇcn´ıho polynomu potˇrebujeme z t´eto tabulky hodnoty diferenc´ı z prvn´ıho ˇra´dku.
- 98 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
Tabulka 5.1.1: V´ ypoˇcet pomˇern´ ych diferenc´ı. i
5.1.3.
xi
fi
f [xi+1 , xi ] f [xi+2 , xi+1 , xi ] f [x3 , x2 , x1 , x0 ] −6
7 3
4
1
− 43
1
6
−3
2
3
0
−2 10
1
−1
2 3
− 11 12
Interpolaˇ cn´ı chyba
Pˇredpokl´adejme, ˇze hodnoty fi jsou funkˇcn´ımi hodnotami funkce f v uzlech xi , tj. fi = f (xi ). Bude n´as zaj´ımat interpolaˇcn´ı chyba f (x) − pn (x). uˇze b´ yt velk´a. V uzlech xi je interpolaˇcn´ı chyba nulov´a, ale mimo uzly m˚ Vˇ eta 5.1.2. uzn´e a leˇz´ı na intervalu a, b. Necht’ Necht’ uzly xi , i = 0, 1, . . . , n, jsou vz´ajemnˇe r˚ funkce f m´a na tomto intervalu n + 1 spojit´ ych derivac´ı. Pak pro kaˇzd´e x ∈ a, b existuje ξ = ξ(x) v (a, b) tak, ˇze plat´ı f (x) − pn (x) =
f (n+1) (ξ) πn+1 (x), (n + 1)!
(5.1.7)
kde πn+1 (x) = (x − x0 ) . . . (x − xn ). D˚ ukaz: Pro x = xi je rovnost (5.1.7) splnˇena, protoˇze obˇe jej´ı strany jsou nulov´e. Pro pevnˇe zvolen´e x = xi definujme funkci g(t) = f (t) − pn (t) −
πn+1 (t) (f (x) − pn (x)) , πn+1 (x)
(5.1.8)
kde t je promˇenn´a a x je parametr. Funkce g m´a zˇrejmˇe n+2 koˇren˚ u, kter´ ymi jsou body x0 , . . ., xn a x. Kaˇzd´a derivace funkce g m´a o jeden koˇren m´enˇe, takˇze (n+1)n´ı derivace m´a jedin´ y koˇren v nˇejak´em bodˇe ξ ∈ (a, b). Derivujeme-li (n + 1)-kr´at
- 99 -
5. INTERPOLACE A APROXIMACE FUNKC´I (n+1)
v´ yraz (5.1.8) (podle t) a pouˇzijeme pˇritom pn
Numerick´e metody (n+1)
(t) = 0 a πn+1 (t) = (n + 1)!,
dostaneme 0 = g (n+1) (ξ) = f (n+1) (ξ) −
(n + 1)! (f (x) − pn (x)) . πn+1 (x)
Jestliˇze odtud vyj´adˇr´ıme interpolaˇcn´ı chybu, vznikne rovnost (5.1.7).
2
Na pr˚ ubˇeh interpolaˇcn´ı chyby v intervalu a, b m´a podstatn´ y vliv tvar polynomu πn+1 , jak ukazuje n´asleduj´ıc´ı pˇr´ıklad. Pˇ r´ıklad 5.1.4. (Rungeho pˇ r´ıklad) Nakresl´ıme graf funkce f (x) =
1 1 + x2
a graf interpolaˇcn´ıho polynomu odpov´ıdaj´ıc´ıho uzl˚ um xi = −5+i, i = 0, 1, . . . , 10. V´ysledek porovn´ame s grafem polynomu π11 (x) = (x + 5)(x + 4) . . . (x − 5). ˇ sen´ı: Obr´azek 5.1.2.a ukazuje graf polynomu π11 . Z jeho pr˚ ubˇehu lze usouReˇ dit, ˇze nejvˇetˇs´ı interpolaˇcn´ı chyby budou pobl´ıˇz krajn´ıch uzl˚ u x0 = −5 a x10 = 5. Na obr´azku 5.1.2.b vid´ıme, ˇze graf interpolaˇcn´ıho polynomu osciluje kolem grafu funkce f a ˇze oscilace jsou nejvˇetˇs´ı pr´avˇe na kraj´ıch intervalu −5, 5. Poznamenejme jeˇstˇe, ˇze pˇri zvˇetˇsen´ı poˇctu interpolaˇcn´ıch uzl˚ u nedojde ke zmenˇsen´ı interpolaˇcn´ı chyby, ale naopak k jej´ımu zvˇetˇsen´ı.
Kontroln´ı ot´ azky Ot´azka 1. Jak´e zn´ate metody pro sestaven´ı interpolaˇcn´ıho polynomu? Ot´azka 2. Jak´eho stupnˇe je interpolaˇcn´ı polynom? Ot´azka 3. Jak se chov´a interpolaˇcn´ı chyba?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pro uzly x0 = −1, x1 = 0, x2 = 2, x3 = 3, x4 = 5 a funkˇcn´ı hodnoty f0 = −2,
- 100 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody 5
5
x 10
2 1.5 1
0 0.5 0 −5 −5
0
−0.5 −5
5
a
0
5
b
Obr´azek 5.1.2: a) Graf π11 ; b) Grafy f (neosciluj´ıc´ı) a p10 (osciluj´ıc´ı). f1 = 1, f2 = 0, f3 = 2, f4 = −1 vypoˇctˇete interpolaˇcn´ı polynom ve tvaru (5.1.1). 2. Pro pˇredchoz´ı data vypoˇctˇete Lagrange˚ uv a Newton˚ uv tvar interpolaˇcn´ıho polynomu. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 3 4 x + 1. p4 (x) = − 20
11 3 x 10
−
109 2 x 60
−
1 x 15
+ 1.
1 1 x(x − 2)(x − 3)(x − 5) − 30 (x + 1)(x − 2)(x − 3) 2. Lagrange˚ uv tvar: p4 (x) = − 36
(x − 5) −
1 (x 12
+ 1)x(x − 2)(x − 5) −
1 (x 180
+ 1)x(x − 2)(x − 3);
3 (x + 1)x + 12 (x + 1)x(x − 2) − 20 (x + 1) Newton˚ uv tvar: p4 (x) = −2 + 3(x + 1) − 35 30
x(x − 2)(x − 3).
- 101 -
5. INTERPOLACE A APROXIMACE FUNKC´I
5.2.
Numerick´e metody
Interpolaˇ cn´ı splajny
C´ıle Vidˇeli jsme, ˇze graf interpolaˇcn´ıho polynomu m˚ uˇze nepˇr´ıjemnˇe oscilovat. Tato situace nast´av´a pˇri pˇredeps´an´ı vˇetˇs´ıho poˇctu dat, protoˇze interpolaˇcn´ı polynom je pak vysok´eho stupnˇe. Zd´a se proto rozumn´e pˇri ˇreˇsen´ı interpolaˇcn´ı u ´ lohy pouˇz´ıt funkci, kter´a bude poˇc´astech polynomem n´ızk´eho stupnˇe, jej´ıˇz jednotliv´e ˇc´asti budou na sebe navazovat dostateˇcnˇe hladce. Takov´ ym funkc´ım se ˇr´ık´a splajn (z angl. spline”). Uk´aˇzeme dva nejˇcastˇeji pouˇz´ıvan´e splajny: line´arn´ı a kubick´y. ” Pˇredpokl´ adan´ e znalosti ˇ sen´ı soustav line´arn´ıch rovnic. Interpolaˇcn´ı polynom. Spojitost derivace. Reˇ
V´ yklad Abychom se vyhnuli komplikac´ım pˇri popisu, budeme pˇredpokl´adat, ˇze uzly interpolace tvoˇr´ı rostouc´ı posloupnost, tzn. x0 < x1 < . . . < xn . Vzd´alenost dvou sousedn´ıch uzl˚ u oznaˇc´ıme hi , tj. hi = xi − xi−1 , 5.2.1.
i = 1, . . . , n.
Line´ arn´ı splajn
Definice 5.2.1. Line´arn´ım splajnem naz´yv´ame funkci s1 , kter´a je spojit´a na intervalu x0 , xn a na kaˇzd´em podintervalu xi−1 , xi , i = 1, . . . , n, je polynomem prvn´ıho stupnˇe. Line´arn´ı interpolaˇcn´ı splajn je ˇreˇsen´ım u ´ lohy (5.0.1), tzn. ˇze pro nˇej plat´ı uˇzeme ho zapsat po ˇc´astech pro i = 1, . . . , n: s1 (xi ) = fi , i = 0, . . . , n. M˚ s1 (x) = fi−1 (1 − t) + fi t,
t = (x − xi−1 )/hi ,
Grafem line´arn´ıho splajnu je lomen´a ˇc´ara.
- 102 -
x ∈ xi−1 , xi .
(5.2.1)
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
Pˇ r´ıklad 5.2.1.
Mˇejme d´any uzly x0 = −2, x1 = −1, x2 = 1, x3 = 2 a funkˇcn´ı
hodnoty f0 = 10, f1 = 4, f2 = 6, f3 = 3. Napiˇste line´arn´ı interpolaˇcn´ı splajn. ˇ sen´ı: Zap´ıˇseme jej pomoc´ı pˇredpisu (5.2.1): Reˇ ⎧ ⎪ 10ϕ1 (t) + 4ϕ2 (t), t = x + 2 ⎪ ⎪ ⎪ ⎨ s1 (x) = 4ϕ1 (t) + 6ϕ2 (t), t = (x + 1)/2 ⎪ ⎪ ⎪ ⎪ ⎩ 6ϕ1 (t) + 3ϕ2 (t), t = x − 1
pro x ∈ −2, −1, pro x ∈ −1, 1, pro x ∈ 1, 2,
kde ϕ1 (t) = 1 − t, ϕ2 (t) = t. Graf je zn´azornˇen na obr´azku 5.2.1. 5.2.2.
Kubick´ y splajn
Definice 5.2.2. Kubick´ym splajnem naz´ yv´ame funkci s3 , kter´a m´a na intervalu x0 , xn dvˇe spojit´e derivace a na kaˇzd´em podintervalu xi−1 , xi , i = 1, . . . , n, je polynomem tˇret´ıho stupnˇe. Kubick´y interpolaˇcn´ı splajn, je ˇreˇsen´ı interpolaˇcn´ı u ´ lohy (5.0.1). Jeho konstrukce je sloˇzitˇejˇs´ı neˇz u line´arn´ıho splajnu. Vyjdeme opˇet z vyj´adˇren´ı po ˇc´astech pro i = 1, . . . , n: s3 (x) = fi−1 (1 − 3t2 + 2t3 ) + fi (3t2 − 2t3 ) +mi−1 hi (t − 2t2 + t3 ) + mi hi (−t2 + t3 ),
(5.2.2)
kde t = (x − xi−1 )/hi a x ∈ xi−1 , xi . Tento pˇredpis je navrˇzen tak, aby parametry fi−1 , fi a mi−1 , mi mˇely v´yznam funkˇcn´ıch hodnot a hodnot prvn´ı derivace v krajn´ıch bodech intervalu xi−1 , xi , tj. plat´ı s3 (xi−1 ) = fi−1 , s3 (xi−1 ) = mi−1 ,
- 103 -
s3 (xi ) = fi , s3 (xi ) = mi .
(5.2.3) (5.2.4)
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
O splnˇen´ı rovnost´ı (5.2.3) a (5.2.4) se m˚ uˇzeme pˇresvˇedˇcit dosazen´ım xi−1 a xi do (5.2.2) a do prvn´ı derivace s3 , kterou vyj´adˇr´ıme z (5.2.2) podle pravidla o derivov´an´ı sloˇzen´e funkce: s3 (x) = fi−1 (−6t + 6t2 )/hi + fi (6t − 6t2 )/hi +mi−1 (1 − 4t + 3t2 ) + mi (−2t + 3t2 ).
(5.2.5)
Pˇredpis (5.2.2) zaruˇcuje spojitost prvn´ı derivace s3 na cel´em intervalu x0 , xn pro libovoln´e hodnoty mi . Spojitost druh´e derivace vynut´ıme speci´aln´ı volbou mi . Budeme poˇzadovat lim s3 (x) = lim s3 (x)
x→xi −
(5.2.6)
x→xi +
ve vnitˇrn´ıch uzlech xi , i = 1, . . . , n − 1. Potˇrebn´y v´yraz pro druhou derivaci vypoˇcteme z (5.2.5) opˇet podle pravidla o derivov´an´ı sloˇzen´e funkce: s3 (x) = fi−1 (−6 + 12t)/h2i + fi (6 − 12t)/h2i +mi−1 (−4 + 6t)/hi + mi (−2 + 6t)/hi .
(5.2.7)
Levou stranu v (5.2.6) vyj´adˇr´ıme z (5.2.7) pro t = 1: lim s3 (x) = 6fi−1 /h2i − 6fi /h2i + 2mi−1 /hi + 4mi /hi .
x→xi −
(5.2.8)
Pravou stranu v (5.2.6) vyj´adˇr´ıme z (5.2.7) pro t = 0, kdyˇz souˇcasnˇe posuneme indexov´an´ı: lim s (x) = −6fi /h2i+1 + 6fi+1 /h2i+1 − 4mi /hi+1 − 2mi+1 /hi+1 .
x→xi +
(5.2.9)
Dosad´ıme-li (5.2.8) a (5.2.9) do (5.2.6), dostaneme po jednoduch´e u ´ pravˇe hi+1 mi−1 + 2(hi+1 + hi )mi + hi mi+1 =
! hi hi hi+1 hi+1 fi + fi−1 + − fi+1 , 3 − hi hi hi+1 hi+1
- 104 -
i = 1, . . . , n − 1. (5.2.10)
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
Tyto rovnosti tvoˇr´ı soustavu n − 1 rovnic pro n + 1 nezn´am´ ych mi , i = 0, 1, . . . .n. Abychom dostali jedin´e ˇreˇsen´ı, urˇc´ıme m0 a mn napˇr´ıklad jako pˇribliˇzn´e derivace: m0 = Pˇ r´ıklad 5.2.2.
f1 − f0 , h1
mn =
fn − fn−1 . hn
(5.2.11)
Mˇejme d´any uzly x0 = −2, x1 = −1, x2 = 1, x3 = 2 a funkˇcn´ı
hodnoty f0 = 10, f1 = 4, f2 = 6, f3 = 3. Napiˇste kubick´y interpolaˇcn´ı splajn. ˇ sen´ı: Reˇ
Nejdˇr´ıve vypoˇc´ıt´ame parametry mi , i = 0, 1, 2, 3. Podle (5.2.11) je m0 =
4 − 10 = −6, −1 + 2
m3 =
Soustava (5.2.10) m´a dvˇe rovnice: 2(h2 + h1 )m1 + h1 m2 h3 m1 + 2(h3 + h2 )m2 kter´e m˚ uˇzeme ps´at jako ⎛
3−6 = −3. 2−1
! h1 f1 + f2 − h2 m0 , h2
! h3 h2 h3 h2 f2 + f3 − h2 m3 , = 3 − f1 + − h2 h2 h3 h3 h2 = 3 − f0 + h1
⎞
⎞⎛
h2 h1 − h1 h2
⎛
⎞
⎜ 6 1 ⎟ ⎜ m1 ⎟ ⎜ −21 ⎟ ⎠=⎝ ⎝ ⎠. ⎠⎝ m2 −9 1 6
, m2 = − 66 . V´ysledn´ y splajn zap´ıˇseme podle Vyˇreˇsen´ım dostaneme m1 = − 234 70 70 (5.2.2) po ˇc´astech: ⎧ ⎪ 10ϕ1 (t) + 4ϕ2 (t) − 6ϕ3 (t) − 117 ϕ (t), ⎪ 35 4 ⎪ ⎪ ⎨ s3 (x) = ϕ (t) − 66 ϕ (t), 4ϕ1 (t) + 6ϕ2 (t) − 234 35 3 35 4 ⎪ ⎪ ⎪ ⎪ ⎩ ϕ (t) − 3ϕ4 (t), 6ϕ1 (t) + 3ϕ2 (t) − 33 35 3
t = x + 2 pro x ∈ −2, −1, t = (x + 1)/2 pro x ∈ −1, 1, t = x − 1 pro x ∈ 1, 2,
kde ϕ1 (t) = 1 − 3t2 + 2t3 , ϕ2 (t) = 3t2 − 2t3 , ϕ3 (t) = t − 2t2 + t3 , ϕ4 (t) = −t2 + t3 . Graf je zn´azornˇen na obr´azku 5.2.1. Pˇ r´ıklad 5.2.3.
(Rungeho pˇ r´ıklad, pokraˇ cov´ an´ı) Nakresl´ıme graf inter-
polaˇcn´ıho kubick´eho splajnu pro funkci f a uzly xi z pˇr´ıkladu 5.1.4. a porovn´ame ho s grafem interpolaˇcn´ıho polynomu.
- 105 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
10 8 6
s1 4 2
s3 −2
−1
0
1
2
Obr´azek 5.2.1: Graf line´arn´ıho (s1 ) a kubick´eho interpolaˇcn´ıho (s3 ) splajnu. ˇ sen´ı: Reˇ
Na obr´azku 5.2.2 vid´ıme, ˇze splajn s3 neosciluje a je proto mno-
hem lepˇs´ı aproximac´ı interpolovan´e funkce f neˇz interpolaˇcn´ı polynom p10 , viz obr´azek 5.1.2.b. 1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
−5
0
0
5
a
−5
0
5
b
Obr´azek 5.2.2: a) Funkce f ; b) Kubick´y interpolaˇcn´ı splajn s3 .
Kontroln´ı ot´ azky Ot´azka 1. Co je to splajn? Jak se definuje a poˇc´ıt´a splajn line´arn´ı a kubick´ y? Ot´azka 2. Jak se chovaj´ı pˇri interpolaci splajny v porovn´an´ı s polynomy?
- 106 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pro uzly x0 = −1, x1 = 0, x2 = 2, x3 = 3, x4 = 5 a funkˇcn´ı hodnoty f0 = −2, f1 = 1, f2 = 0, f3 = 2, f4 = −1 sestavte line´arn´ı interpolaˇcn´ı splajn. 2. Pro stejn´a data sestavte kubick´ y interpolaˇcn´ı splajn. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1.
s1 (x) =
⎧ ⎪ −2ϕ1 (t) + ϕ2 (t), t = x + 1 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ϕ1 (t), t = x/2 ⎪ ⎪ ⎪ 2ϕ2 (t), ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ 2ϕ (t) − 1ϕ (t), 1 2
pro x ∈ −1, 0, pro x ∈ 0, 2,
t=x−2
pro x ∈ 2, 3,
t = (x − 3)/2
pro x ∈ 3, 5,
kde ϕ1 (t) = 1 − t, ϕ2 (t) = t. 2. Krajn´ı parametry jsou m0 = 3, m4 = − 32 , ostatn´ı dostaneme ze soustavy ⎛
6 1 0
⎜ ⎜ ⎜ 1 6 2 ⎜ ⎝ 0 2 6 takˇze m1 =
s3 (x) =
97 , 62
m2 =
69 , 62
m3 =
35 31
⎞⎛
m1
⎞
⎛
21 2
⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ m ⎟ = ⎜ 21 ⎟⎜ 2 ⎟ ⎜ 2 ⎠⎝ ⎠ ⎝ m3 9
⎞ ⎟ ⎟ ⎟, ⎟ ⎠
a koneˇcnˇe
⎧ ⎪ −2ϕ1 (t) + ϕ2 (t) + 3ϕ3 (t) + ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ϕ1 (t) + 97 ϕ (t) + 69 ϕ (t), 31 3 31 4
97 ϕ (t), 62 4
⎪ ⎪ ⎪ ϕ (t) + 35 3ϕ4 (t), 2ϕ2 (t) + 69 ⎪ 62 3 31 ⎪ ⎪ ⎪ ⎪ ⎩ 2ϕ (t) − ϕ (t) + 70 ϕ (t) − 3ϕ (t), 1 2 4 31 3
t = x + 1 pro x ∈ −1, 0, t = x/2 pro x ∈ 0, 2, t = x − 2 pro x ∈ 2, 3, t = (x − 3)/2 pro x ∈ 3, 5,
kde ϕ1 (t) = 1 − 3t2 + 2t3 , ϕ2 (t) = 3t2 − 2t3 , ϕ3 (t) = t − 2t2 + t3 , ϕ4 (t) = −t2 + t3 .
- 107 -
5. INTERPOLACE A APROXIMACE FUNKC´I
5.3.
Numerick´e metody
Aproximace metodou nejmenˇ s´ıch ˇ ctverc˚ u
C´ıle V mnoha situac´ıch, v nichˇz je potˇreba danou funkci f nahradit funkc´ı jed” noduˇsˇs´ı”, je nevhodn´e nebo v˚ ubec nelze pouˇz´ıt interpolaci. Jsou-li napˇr´ıklad v uzlech zad´any nepˇresn´e hodnoty, pˇren´aˇs´ı se tato nepˇresnost i na interpolant. Interpolace je nepouˇziteln´a, jestliˇze je poˇzadov´an jist´ y charakter aproximuj´ıc´ı funkce a pˇritom ˇz´adn´a funkce tohoto charakteru nen´ı interpolantem. V tˇechto pˇr´ıpadech je rozumn´e pouˇz´ıt metodu nejmenˇs´ıch ˇctverc˚ u.
Pˇredpokl´ adan´ e znalosti ˇ sen´ı Line´arn´ı z´avislost a nez´avislost. Urˇcen´ı minima funkce pomoc´ı derivace. Reˇ soustav line´arn´ıch rovnic. V´ yklad Zaˇcneme pˇr´ıkladem. Pˇ r´ıklad 5.3.1. Mˇejme d´any uzly x0 = −2, x1 = −1, x2 = 1, x3 = 2 a funkˇcn´ı hodnoty f0 = 10, f1 = 4, f2 = 6, f3 = 3. Najdˇete pˇr´ımku ϕ(x) = c1 + c2 x,
(5.3.1)
kter´a je bl´ızko” pˇredepsan´ ym hodnot´am. ” ˇ sen´ı: Reˇ
Nejdˇr´ıve se mus´ıme rozhodnout jak ch´apat slovo bl´ızko”. Uˇz jsme ” to vlastnˇe ˇrekli, kdyˇz jsme popisovali smysl pˇribliˇzn´ych rovnost´ı v aproximaˇcn´ı
u ´ loze (5.0.2). Pˇr´ımku ϕ urˇc´ıme tak, aby minimalizovala souˇcet druh´ych mocnin ´ lohu na miodchylek 3i=0 (ϕ(xi )−fi )2 . Jestliˇze sem dosad´ıme (5.3.1), dostaneme u 3 nimalizaci funkce dvou promˇenn´ych Ψ(c1 , c2 ) = i=0 (c1 + c2 xi − fi )2 . Minimum
- 108 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody c∗1 , c∗2 vyhovuje rovnic´ım
∂Ψ ∗ ∗ (c , c ) = 0. ∂c2 1 2
∂Ψ ∗ ∗ (c , c ) = 0, ∂c1 1 2
Po vyj´adˇren´ı parci´aln´ıch derivac´ı dost´av´ame 2
3
(c∗1 + c∗2 xi − fi ) = 0,
2
i=0
3
(c∗1 + c∗2 xi − fi )xi = 0,
i=0
coˇz je soustava line´arn´ıch rovnic ⎛
3
3
i=0
i=0
1 xi ⎜ ⎜ i=0 i=0 ⎜ 3 3 ⎜ ⎝ xi x2i
⎞
⎛
⎞
⎛
⎞
3
fi ⎟ ⎜ ⎟ c∗1 ⎜ i=0 ⎟⎝ ⎠=⎜ 3 ⎟ ⎜ ⎠ c∗2 ⎝ fi xi
⎛ ⎞⎛ ⎞ ⎛ ⎞ ⎟ ∗ ⎟ 4 0 c 23 ⎟ , tj. ⎝ ⎠⎝ 1 ⎠ = ⎝ ⎠. ⎟ ⎠ 0 10 c∗2 −12
i=0
Tato soustava m´a jedin´e ˇreˇsen´ı c∗1 =
23 , 4
c∗2 = − 65 , takˇze hledan´a pˇr´ımka ϕ∗ = ϕ
je urˇcena pˇredpisem ϕ∗ (x) =
23 6 − x. 4 5
(5.3.2) 2
Jej´ı graf je zn´azornˇen na obr´azku 5.3.1.
10 8 6 4 2 −2
−1
0
1
2
Obr´azek 5.3.1: Aproximace metodou nejmenˇs´ıch ˇctverc˚ u; pˇr´ımka (5.3.2) plnˇe; funkce (5.3.8) ˇc´arkovanˇe.
- 109 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
Postup z pˇr´ıkladu nyn´ı zobecn´ıme. Budeme pˇredpokl´adat, ˇze je d´an syst´em funkc´ı ϕj = ϕj (x), j = 1, . . . , m a budeme uvaˇzovat vˇsechny funkce ve tvaru ϕ(x) = c1 ϕ1 (x) + . . . + cm ϕm (x) =
m
cj ϕj (x),
(5.3.3)
j=1
kde koeficienty c1 , . . . , cm jsou libovoln´a ˇc´ısla. Funkci ϕ∗ , pro niˇz plat´ı n
(ϕ∗ (xi ) − fi )2 ≤
i=0
n
(ϕ(xi ) − fi )2
∀ϕ
(5.3.4)
i=0
naz´ yv´ame aproximac´ı podle metody nejmenˇs´ıch ˇctverc˚ u. Jej´ı koeficienty c∗1 , . . . , c∗m urˇc´ıme jako minimum funkce n m ( cj ϕj (xi ) − fi )2 , Ψ(c1 , . . . , cm ) =
(5.3.5)
i=0 j=1
kter´e vyhovuje rovnic´ım ∂Ψ ∗ (c , . . . , c∗m ) = 0, ∂ck 1
k = 1, . . . , m.
(5.3.6)
Vyj´adˇr´ıme-li parci´aln´ı derivace n m ∂Ψ =2 ( cj ϕj (xi ) − fi )ϕk (xi ) ∂ck i=0 j=1
a dosad´ıme je do (5.3.6), dostaneme po jednoduch´e u ´ pravˇe soustavu line´arn´ıch rovnic
n m j=1
i=0
ϕj (xi )ϕk (xi )
c∗j
=
n
fi ϕk (xi ),
k = 1, . . . , m.
(5.3.7)
i=0
Soustava (5.3.7) se naz´ yv´a soustava norm´ aln´ıch rovnic. Vˇ eta 5.3.1. Necht’ jsou d´any vz´ajemnˇe r˚ uzn´e uzly xi a funkˇcn´ı hodnoty fi , i = 0, . . . , n. Necht’ je d´an syst´em funkc´ı ϕj , j = 1, . . . , m, kter´e jsou line´arnˇe nez´avisl´e. Potom nuje (5.3.4) a jej´ı koeficienty c∗1 , . . . , c∗m jsou existuje jedin´a funkce ϕ∗ , kter´a splˇ ˇreˇsen´ım soustavy norm´aln´ıch rovnic (5.3.7).
- 110 -
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
D˚ ukaz: V bodˇe c∗1 , . . . , c∗m , kter´ y vyhovuje rovnic´ım (5.3.6), nab´ yv´a funkce Ψ minima, jestliˇze matice druh´ych derivac´ı je symmetrick´a a pozitivnˇe definitn´ı (kladn´a). Druh´e derivace jsou urˇceny vzorcem ∂2Ψ =2 ϕl (xi )ϕk (xi ), ∂ck ∂cl i=0 n
odkud je symetrie zˇrejm´a na prvn´ı pohled (prohozen´ım index˚ u k a l se nic nezmˇen´ı). Necht’ d1 , . . . , dm jsou ˇc´ısla ne vˇsechny souˇcasnˇe nulov´a. Potom n " m m n #" # ∂2Ψ dk dl =2 dl ϕl (xi ) dk ϕk (xi ) = 2 ϕ(x ˜ i )2 > 0, ∂c k ∂cl i=0 l=1 i=0 k=1 l=1 k=1 m kde ϕ(x) ˜ = k=1 dk ϕk (x), takˇze matice druh´ych derivac´ı je pozitivnˇe definitn´ı. m m
Odtud tak´e plyne, ˇze matice soustavy norm´aln´ıch rovnic je regul´arn´ı, coˇz znamen´a, ˇze existuje jej´ı jedin´e ˇreˇsen´ı c∗1 , . . . , c∗m , kter´e urˇcuje jedinou funkci ϕ∗ . 2 Pˇri aproximaci metodou nejmenˇs´ıch ˇctverc˚ u se mus´ıme nejdˇr´ıve rozhodnout pro nˇejak´ y line´arnˇe nez´avisl´y syst´em funkc´ı ϕj , j = 1, . . . , m. Pot´e staˇc´ı sestavit a vyˇreˇsit soustavu norm´aln´ıch rovnic (5.3.7). Pˇ r´ıklad 5.3.2.
Napiˇste norm´aln´ı soustavu line´arn´ıch rovnic odpov´ıdaj´ıc´ı
syst´emu funkc´ı ϕ1 (x) = e−x ,
ϕ2 (x) = sin x.
Aproximujte data z pˇr´ıkladu 5.3.1. ˇ sen´ı: Obecnˇe m´a soustava norm´aln´ıch rovnic tvar Reˇ ⎞ ⎛ ⎛ n n n ⎛ ⎞ −2xi −xi e e sin x fi e−xi i ⎟ ∗ ⎜ ⎜ c ⎟ ⎝ 1 ⎠ ⎜ i=0 ⎜ i=0 i=0 =⎜ ⎟ ⎜ n n n ⎠ c∗ ⎝ ⎝ −xi 2 2 e sin xi sin xi fi sin xi i=0
i=0
i=0
Po dosazen´ı dostaneme ⎛ ⎞⎛ ⎞ ⎞ ⎛ ∗ ⎜ 62.1409 −8.5736 ⎟ ⎝ c1 ⎠ ⎜ 87.3770 ⎟ =⎝ ⎝ ⎠ ⎠ ∗ c −8.5736 3.0698 −4.6821 2
- 111 -
⎞ ⎟ ⎟ ⎟. ⎠
5. INTERPOLACE A APROXIMACE FUNKC´I
Numerick´e metody
a odtud vypoˇc´ıt´ame c∗1 = 1.9452, c∗2 = 3.9076, tj. ϕ∗ (x) = 1.9452e−x + 3.9076 sin x.
(5.3.8)
Graf je zn´azornˇen na obr´azku 5.3.1. Kontroln´ı ot´ azky Ot´azka 1. Kdy je vhodn´e pouˇz´ıt metodu nejmenˇs´ıch ˇctverc˚ u? Ot´azka 2. Graficky zn´azornˇete smysl v´yrazu pro souˇcet druh´ych mocnin odchylek? Ot´azka 3. Co je to norm´aln´ı soustava line´arn´ıch rovnic a jak vznikne? Ot´azka 4. Co se stane, kdyˇz v (5.3.3) a (5.3.4) bude m = n + 1? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Napiˇste soustavu norm´aln´ıch line´arn´ıch rovnic pro syst´em funkc´ı ϕ1 (x) = 1, ϕ2 (x) = x, ϕ3 (x) = x2 . 2. Data x0 = −1, x1 = 0, x2 = 2, x3 = 3, x4 = 5 a f0 = −2, f1 = 1, f2 = 0, u pomoc´ı syst´emu funkc´ı f3 = 2, f4 = −1 aproximujte metodou nejmenˇc´ıch ˇctverc˚ z pˇredchoz´ı u ´ lohy. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Norm´aln´ı soustava m´a tvar: ⎛ n ⎞ ⎞ ⎛ n n n 2 1 xi xi ⎟ ⎛ fi ⎟ ⎞ ⎜ ⎜ ⎜ i=0 ⎟ c∗ ⎟ ⎜ i=0 i=0 i=0 ⎟⎜ 1 ⎟ ⎜ ⎟ ⎜ n n n ⎜ ⎟ ⎟ ⎜ n 2 3 ⎟⎜ ∗ ⎟ ⎜ ⎟. ⎜ x x x f x = ⎜ ⎟ i i i c i i ⎟⎝ 2 ⎠ ⎜ ⎟ ⎜ ⎜ i=0 ⎟ ⎟ ⎜ i=0 i=0 i=0 ⎜ ⎟ c∗ ⎟ ⎜ n n n n 3 ⎝ ⎠ ⎠ ⎝ x2i x3i x4i fi x2i i=0
i=0
i=0
i=0
2. ϕ∗ (x) = −0.2835x2 + 1.2359x − 0.0130. Shrnut´ı lekce Uk´azali jsme z´akladn´ı postupy pro aproximaci funkc´ı (dat) pomoc´ı interpolace a metody nejmenˇs´ıch ˇctverc˚ u.
- 112 -
Numerick´e metody
6.
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´ e integrov´ an´ı a derivov´ an´ı
Pr˚ uvodce studiem Pˇri ˇreˇsen´ı r˚ uzn´ych u ´ loh je potˇreba nal´ezt hodnotu urˇcit´eho integr´alu. Nˇekter´e integr´aly lze vypoˇc´ıtat snadno pomoc´ı tabulek a klasick´ych integraˇcn´ıch metod jako je per partes nebo substituce. Tak napˇr´ıklad integr´aly π 1 x e dx a cos x dx 0
0
ˇ maj´ı hodnotu e − 1 a 0. Casto vˇsak staˇc´ı mal´a zmˇena v integrovan´e funkci a klasick´y v´ ypoˇcet se stane sloˇzit´ ym nebo dokonce nemoˇzn´ym. Pokuste se vypoˇc´ıtat integr´aly
1
x2
e dx
a
0
π
cos x2 dx
0
a uvid´ıte jak daleko se v´am podaˇr´ı doj´ıt! Klasick´e integraˇcn´ı metody nelze pouˇz´ıt v˚ ubec, jestliˇze integrovan´a funkce je d´ana tabulkou (napˇr. to m˚ uˇze b´yt v´ ysledek mˇeˇren´ı nebo pˇredchoz´ıho v´ ypoˇctu). V t´eto kapitole se budeme zab´yvat metodami numerick´ ymi pro obecnˇe zadanou u ´ lohu: pˇredpokl´ad´ame, ˇze je d´ana spojit´a funkce f na intervalu a, b a m´ame vypoˇc´ıtat hodnotu urˇcit´eho integr´alu b f (x) dx. I=
(6.0.1)
a
Z geometrick´eho pohledu pˇredstavuje ˇc´ıslo I velikost plochy obrazce, kter´ y je vymezen grafem funkce f . Numerick´e metody jsou navrhov´any tak, ˇze poˇc´ıtaj´ı velikost plochy pˇribliˇzn´eho obrazce pomoc´ı nˇekolika funkˇcn´ıch hodnot. Lze je tedy pouˇz´ıt pro jakoukoliv funkci f , dokonce i pro funkci danou tabulkou, a jejich pracnost je relativnˇe mal´a. Pˇri numerick´em v´ ypoˇctu derivace je situace podobn´a.
- 113 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
6.1.
Numerick´e metody
Newton-Cotesovy vzorce
C´ıle Odvod´ıme Newton-Cotesovy vzorce a uk´aˇzeme jejich pouˇzit´ı.
Pˇredpokl´ adan´ e znalosti Interpolaˇcn´ı polynom. Interpolaˇcn´ı chyba.
V´ yklad Naˇs´ım c´ılem je navrhnout vzorce pro pˇribliˇzn´y v´ ypoˇcet integr´alu (6.0.1). Ze z´akladn´ıho kurzu integr´aln´ıho poˇctu v´ıme, ˇze snadno lze integrovat polynomy. Budeme proto postupovat tak, ˇze k funkci f sestav´ıme interpolaˇcn´ı polynom pn a ten integrujeme m´ısto f , tj. b b I= f (x) dx ≈ pn (x) dx. a
(6.1.1)
a
Pro jednoduchost uvaˇzujme na intervalu a, b ekvidistantn´ı uzly xi = a + iτ,
i = 0, 1, . . . , n,
kde τ = (b−a)/n. Interpolaˇcn´ı polynom k funkci f m˚ uˇzeme zapsat v Lagrangeovˇe tvaru (viz odstavec 5.1.1), tj. pn (x) =
n
f (xi )ϕi (x),
kde ϕi (x) =
i=0
n $ x − xj . xi − xj j=0 j =i
Dosazen´ım v´ yrazu pro pn do prav´e strany pˇribliˇzn´e rovnosti (6.1.1) dostaneme Newton-Cotesovy vzorce:
b
f (x) dx ≈ a
kde
n
wi f (xi ),
(6.1.2)
i=0
b
wi =
ϕi (x) dx,
i = 0, 1, . . . , n
a
- 114 -
(6.1.3)
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
jsou integraˇcn´ı v´ ahy. Abychom l´epe ilustrovali tento postup, odvod´ıme z´akladn´ı integraˇcn´ı pravidla. a) Obd´ eln´ıkov´ e pravidlo. V tomto pˇr´ıpadˇe poloˇz´ıme n = 0, x0 =
a+b 2
a za
interpolaˇcn´ı polynom vezmeme konstantn´ı funkci p0 (x) = f ( a+b ). Proto 2
b a+b f (x) dx ≈ (b − a)f (6.1.4) = IObd . 2 a b) Lichobˇ eˇ zn´ıkov´ e pravidlo dostaneme pro n = 1 a x0 = a, x1 = b. Interpolaˇcn´ı polynom je pˇr´ımka p1 (x) = Po jej´ı integraci je
x−a x−b f (a) + f (b). a−b b−a
b
f (x) dx ≈ a
b−a [f (a) + f (b)] = ILich . 2
c) Simpsonovo pravidlo vznikne pro n = 2 a x0 = a, x1 =
(6.1.5) a+b , 2
x2 = b, kdy
je interpolaˇcn´ı polynom kvadratick´a funkce. Vypoˇctˇeme integraˇcn´ı v´ahy w0 , w1 a w2 . Dost´av´ame
b
w0 =
ϕ0 (x) dx =
a
a 1
= −1
s pouˇzit´ım substituce x = 1 (b 6
b
(x − x1 )(x − x2 ) dx (x0 − x1 )(x0 − x2 )
t(t − 1) b − a b−a dt = 2 2 6
b−a t + a+b . 2 2
Podobnˇe vypoˇc´ıt´ame w1 = 46 (b − a) a w2 =
− a), takˇze
b a+b b−a [f (a) + 4f f (x) dx ≈ + f (b)] = ISimps . 6 2 a
Pˇ r´ıklad 6.1.1.
(6.1.6)
Pomoc´ı Newton-Cotesov´ ych vzorc˚ u (6.1.4), (6.1.5) a (6.1.6)
vypoˇctˇetˇe pˇribliˇznou hodnotu integr´alu 1 ex dx. I= −1
- 115 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
ˇ sen´ı: M´ame a = −1, b = 1 a f (x) = ex . Podle obd´eln´ıkov´eho pravidla (6.1.4) Reˇ je IObd = 2e0 = 2. Lichobˇeˇzn´ıkov´e pravidlo (6.1.5) d´av´a 2 ILich = [e−1 + e1 ] = 3.086161 2 a koneˇcnˇe pomoc´ı Simpsonova pravidla (6.1.6) vypoˇcteme 2 ISimps = [e−1 + 4e0 + e1 ] = 2.362054. 6 Poznamenejme jeˇstˇe, ˇze pˇresn´a hodnota integr´alu je I = e1 − e−1 = 2.350402. Pozn´ amka Nejpˇresnˇejˇs´ı hodnoty jsme dos´ ahli pomoc´ı Simpsonova pravidla. To n´ as m˚ uˇze v´est k domnˇence, ˇze jeˇstˇe pˇresnˇejˇs´ıch hodnot dos´ ahneme, pouˇzijeme-li NewtonCotesovy vzorce odvozen´e z interpolaˇcn´ıch polynom˚ u vyˇsˇs´ıch stupn˚ u. Obecnˇe to vˇsak nen´ı pravda. V Rungeho pˇr´ıkladu (pˇr´ıklad 5.1.4.) jsme vidˇeli,ˇze interpolaˇcn´ı polynom vysok´eho stupnˇe m˚ uˇze b´yt velice ˇspatnou aproximac´ı. Newton-Cotesovy vzorce d´ avaj´ı v takov´em pˇr´ıpadˇe nesmysln´e v´ysledky. N´asleduj´ıc´ı vˇeta ukazuje vyj´adˇren´ı integraˇcn´ı chyby. Vˇ eta 6.1.1. (i) Necht’ funkce f m´a na intervalu a, b spojitou druhou derivaci. Pak plat´ı: I − IObd I − ILich
f (ξ) (b − a)3 , = 24 f (ξ) (b − a)3 . = − 12
(6.1.7)
(ii) Necht’ funkce f m´a na intervalu a, b spojitou ˇctvrtou derivaci. Pak plat´ı: I − ISimps = −
f (4) (ξ) (b − a)3 . 90
Ve vˇsech pˇr´ıpadech je ξ bl´ıˇze neurˇcen´y bod z intervalu (a, b).
- 116 -
Numerick´e metody
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
D˚ ukaz: D˚ ukaz provedeme pouze pro lichobˇeˇzn´ıkov´e pravidlo. Vyj´adˇren´ı interpolaˇcn´ı chyby z vˇety 5.1.2. m´a pro interpolaˇcn´ı polynom p1 s uzly x0 = a a x1 = b tvar:
˜ f (ξ) (x − a)(x − b). 2
f (x) − p1 (x) =
Integrac´ı (a uˇzit´ım vˇety o stˇredn´ı hodnotˇe integr´aln´ıho poˇctu) dostaneme f (ξ) b I − ILich = (x − a)(x − b) dx 2 a f (ξ) b−a f (ξ) = t(t + a − b) dx = − (b − a)3 . 2 12 0 Pouˇzili jsme substituci t = x − a.
2
Kontroln´ı ot´ azky Ot´azka 1. Jak vzniknou Newton-Cotesovy vzorce? Ot´azka 2. Jak´e jsou z´akladn´ı pravidla pro numerick´ y v´ ypoˇcet integr´alu? Ot´azka 3. Zn´azornˇete graficky smysl obd´eln´ıkov´eho a lichobˇeˇzn´ıkov´eho pravidla. Ot´azka 4. Proˇc nen´ı rozumn´e pouˇz´ıvat Newton-Cotesovy vzorce odvozen´e z interpolaˇcn´ıch polynom˚ u vysok´eho stupnˇe?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pomoc´ı obd´eln´ıkov´eho, lichobˇeˇzn´ıkov´eho a Simpsonova pravidla vypoˇctˇete pˇribliˇzn´e hodnoty integr´al˚ u 1 2 a) ex dx;
π
b)
0
cos x2 dx.
0
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. a) IObd = 1.284025, ILich = 1.859141, ISimps = 1.475731; b) IObd = 1.961189, ILich = −0.675916, ISimps = 1.082154.
- 117 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
6.2.
Numerick´e metody
Sloˇ zen´ e vzorce
C´ıle V pˇredchoz´ım odstavci jsme odvodili vzorce pro pˇribliˇzn´y v´ ypoˇcet inter´alu integrac´ı interpolaˇcn´ıho polynomu. Z´aroveˇ n jsme upozornili na to, ˇze vzorce odvozen´e z polynom˚ u vysok´eho stupnˇe mohou d´avat nesmysln´e v´ ysledky. Pro pˇresnˇejˇs´ı v´ ypoˇcty integr´al˚ u se proto pouˇz´ıvaj´ı sloˇzen´e vzorce, kter´e dostaneme slepen´ım” ” z´akladn´ıch integraˇcn´ı pravidel.
Pˇredpokl´ adan´ e znalosti Obd´eln´ıkov´e, lichobˇeˇzn´ıkov´e a Simpsonovo pravidlo. Chyby tˇechto pravidel.
V´ yklad Interval a, b rozdˇel´ıme na m stejnˇe dlouh´ ych d´ılk˚ u s krokem h = (b − a)/m, m ≥ 2, tj. pouˇzijeme uzly xi = a + ih = a +
i (b − a), m
i = 0, 1, . . . m.
Integr´al rozloˇz´ıme n´asledovnˇe:
b
I=
f (x) dx = a
m i=1
xi
f (x) dx.
(6.2.1)
xi−1
Jestliˇze kaˇzd´y d´ılˇc´ı integr´al nahrad´ıme pomoc´ı obd´eln´ıkov´eho nebo lichobˇeˇzn´ıkov´eho pravidla, dostaneme odpov´ıdaj´ıc´ı pravidlo sloˇzen´e. a) Sloˇ zen´ e obd´ eln´ıkov´ e pravidlo jsme jiˇz odvodili v odstavci 1.1. M´a tvar
! x1 + x2 xm−1 + xm x0 + x1 +f + ...+ f = h f 2 2 2
m xi−1 + xi = h . (6.2.2) f 2 i=1
ISO
- 118 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
b) Sloˇ zen´ e lichobˇ eˇ zn´ıkov´ e pravidlo. V (6.2.1) provedeme n´ahradu podle vzorce (6.1.5), tj.
xi
f (x) dx ≈
xi−1
h [f (xi−1 ) + f (xi )], 2
a dostaneme ISL
1 1 = h f (x0 ) + f (x1 ) + . . . + f (xm−1 ) + f (xm ) 2 2 % & m−1 1 h f (x0 ) + 2 f (xi ) + f (xm ) . = 2 i=1
!
(6.2.3)
c) Sloˇ zen´ e Simpsonovo pravidlo. V tomto pˇr´ıpadˇe rozdˇel´ıme interval a, b na 2m stejnˇe dlouh´ ych d´ılk˚ u, m ≥ 2, s krokem h = (b − a)/(2m), takˇze budeme m´ıt lich´ y poˇcet uzl˚ u xi = a + ih, i = 0, 1, . . . 2m. Simpsonovo pravidlo (6.1.6) pouˇzijeme na kaˇzd´em intervalu x2i−2 , x2i , i = 1, . . . , m, coˇz d´av´a b m x2i m 2h I= f (x) dx = f (x) dx ≈ [f (x2i−2 ) + 4f (x2i−1 ) + f (x2i )]. 6 a i=1 x2i−2 i=1 V´yraz na prav´e stranˇe pˇrep´ıˇseme do pˇrehlednˇejˇs´ıho tvaru: h [f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + 2f (x4 ) + . . . + f (x2m )] 3 % & m m−1 h = f (x0 ) + 4 f (x2i−1 ) + 2 f (x2i ) + f (x2m ) . (6.2.4) 3 i=1 i=1
ISS =
Pˇ r´ıklad 6.2.1. Pomoc´ı pravidel (6.2.2), (6.2.3) a (6.2.4) vypoˇctˇetˇe pˇribliˇznou hodnotu integr´alu
1
I=
ex dx.
−1
Interval −1, 1 pˇritom rozdˇelte na ˇctyˇri ˇc´asti. ˇ sen´ı: Reˇ
(a) Poloˇz´ıme m = 4, takˇze krok bude h = 0.5 a dostaneme uzly
x0 = −1, x1 = −0.5, x2 = 0, x3 = 0.5 a x4 = 1. Sloˇzen´e obd´eln´ıkov´eho pravidlo (6.2.2) m´a tvar . ISO = 0.5[e−0.75 + e−0.25 + e0.25 + e0.75 ] = 2.326096.
- 119 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
(b) Sloˇzen´e lichobˇeˇzn´ıkov´eho pravidlo (6.2.3) vypoˇc´ıt´ame pro stejn´e uzly, tj. ISL =
1 . · 0.5[e−1 + 2e−0.5 + 2e0 + 2e0.5 + e1 ] = 2.399166. 2
(c) U sloˇzen´eho Simpsonova pravidla (6.2.4) vezmeme m = 2, coˇz znamen´a, ˇze pouˇzijeme stejn´e dˇelen´ı intevalu jako v pˇredchoz´ıch pˇr´ıpadech (protoˇze h = 2/(2m) = 0.5). Dostaneme ISS =
0.5 −1 . [e + 4e−0.5 + 2e0 + 4e0.5 + e1 ] = 2.351195. 3
V n´asleduj´ıc´ı vˇetˇe popisujeme ˇra´d jednotliv´ ych integraˇcn´ıch pravidel. Vˇ eta 6.2.1. (i) Necht’ m´a funkce f na intervalu a, b spojitou druhou derivaci. Sloˇzen´e obd´eln´ıkov´e a sloˇzen´e lichobˇeˇzn´ıkov´e pravidlo jsou druh´eho ˇra´du, tj. plat´ı: |I − ISO | ≤ C1 h2 , |I − ISL | ≤ C2 h2 . (ii) Necht’ funkce f m´a na intervalu a, b spojitou ˇctvrtou derivaci. Sloˇzen´e Simpsonovo pravidlo je ˇctvrt´eho ˇra´du, tj. plat´ı: |I − ISS | ≤ C3 h4 . Konstanty C1 , C2 a C3 jsou bl´ıˇze neurˇcen´a nez´aporn´a ˇc´ısla, kter´a nez´avis´ı na kroku h. D˚ ukaz: Omez´ıme se na lichobˇeˇzn´ıkov´e pravidlo. Staˇc´ı si uvˇedomit,ˇze jednoduch´e lichobˇeˇzn´ıkov´e pravidlo je ve sloˇzen´em lichobˇeˇzn´ıkov´em pravidle obsaˇzeno mkr´at. Jestliˇze tedy chceme vyj´adˇrit chybu, seˇcteme m-kr´at v´ yraz pro chybu jednoduch´eho pravidla (6.1.7). Dostaneme |I − ISL | = |
m i=1
f (ξi) f (ξi) 3 M 2 M(b − a) 2 h |≤ h3 | ≤ h h, − | h= 12 12 12 i=1 12 i=1 m
m
kde jsme pouˇzili M = maxζ∈a,b |f (ζ)|. Vid´ıme, ˇze C2 = M(b − a)/12.
- 120 -
2
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
Pˇ r´ıklad 6.2.2. Pomoc´ı sloˇzen´ych integraˇcn´ıch pravidel (6.2.2), (6.2.3) a (6.2.4) vypoˇctˇete pˇribliˇzn´e hodnoty integr´alu
1
I=
ex dx
−1
s krokem h = 0.5, h = 0.25, h = 0.125 a h = 0.0625 a porovnejte je s pˇresnou hodnotou. ˇ sen´ı: Reˇ
Pˇresn´a hodnota je I = 2.350402387. Pˇribliˇzn´e hodnoty a jejich po-
rovn´an´ı s pˇresnou hodnotou uv´ad´ıme v tabulce 6.2.1. Odtud je vidˇet, ˇze sloˇzen´e obd´eln´ıkov´e a sloˇzen´e lichobˇeˇzn´ıkov´e pravidlo se chovaj´ı podobnˇe, zat´ımco sloˇzen´e Simpsonovo pravidlo d´av´a v´ ysledky, kter´e jsou pˇresnˇejˇs´ı o nˇekolik ˇra´d˚ u. Tabulka 6.2.1: Sloˇzen´e integraˇcn´ı vzorce. h
ISO
|I − ISO |
ISL
|I − ISL |
ISS
|I − ISS |
0.5 0.25 0.125 0.0625
2.326096 2.344293 2.348873 2.350020
0.024306 0.006110 0.001530 0.000383
2.399166 2.362631 2.353462 2.351167
0.048764 0.012229 0.003060 0.000765
2.351195 2.350453 2.350406 2.350402
0.000792 0.000051 0.000003 0.000000
Kontroln´ı ot´ azky Ot´azka 1. Jak se odvozuj´ı sloˇzen´e integraˇcn´ı vzorce? Ot´azka 2. Jak´eho ˇra´du jsou z´akladn´ı sloˇzen´a integraˇcn´ı pravidla? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1.
Pomoc´ı sloˇzen´eho obd´eln´ıkov´eho, lichobˇeˇzn´ıkov´eho a Simpsonova pravidla
vypoˇctˇete pˇribliˇzn´e hodnotu integr´al˚ u 1 2 a) ex dx pro h = 0.1; b) 0
π
cos x2 dx pro h = π/10.
0
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. a) ISO = 1.460393, ISL = 1.467175, ISS = 1.462681; b) ISO = 0.553752, ISL = 0.588876, ISS = 0.566030.
- 121 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
6.3.
Numerick´e metody
V´ ypoˇ cet integr´ alu se zadanou pˇ resnost´ı
C´ıle U integraˇcn´ıch pravidel z pˇredchoz´ıho odstavce nen´ı jasn´e jak dos´ahnout zadan´e pˇresnosti. Pro tyto u ´ˇcely pouˇzijeme dvojn´y pˇrepoˇcet, kter´ y lze kombinovat s extrapolaˇcn´ımi vzorci.
Pˇredpokl´ adan´ e znalosti Sloˇzen´a integraˇcn´ı pravidla a jejich ˇra´d. Taylor˚ uv rozvoj.
V´ yklad Ve vˇetˇe 6.2.1. jsme uvedli vzorce pro odhad chyby sloˇzen´ych integraˇcn´ıch pravidel. Jejich pouˇzit´ım lze urˇcit krok h, kter´ y zajist´ı, aby chyba vypoˇcten´e hodnoty integr´alu byla menˇs´ı neˇz je zadan´a tolerance. Tento postup m´a vˇsak dva h´aˇcky. Pˇredevˇs´ım (jak je patrn´e z d˚ ukazu zm´ınˇen´e vˇety) v´ yraz pro odhad chyby z´avis´ı na derivac´ıch integrovan´e funkce, kter´e se odhaduj´ı pracnˇe. Druh´ y probl´em spoˇc´ıv´a v tom, ˇze v´ysledn´e odhady jsou pesimistick´e, takˇze integr´aly jsou poˇc´ıt´any mnohem pˇresnˇeji neˇz je poˇzadov´ano, coˇz vyˇzaduje zbyteˇcnˇe velk´ y objem v´ ypoˇct˚ u. Obvykle se proto postupuje tak, ˇze hledan´y integr´al vyˇcislujeme opakovanˇe, st´ale pˇresnˇeji a ze shody v´ ysledk˚ u se usuzuje, zda jiˇz byla dosaˇzena poˇzadovan´a pˇresnost. Pro tyto u ´ˇcely se osvˇedˇcilo postupn´e zdvojn´asobov´an´ı poˇctu d´ılk˚ u, na nˇeˇz rozdˇelujeme integraˇcn´ı interval a, b. Hovoˇr´ıme pak o dvojn´em pˇrepoˇctu. Cel´y postup zap´ıˇseme v podobˇe algoritmu, kde I(h) oznaˇcuje pˇribliˇznou hodnotu integr´alu vypoˇctenou s krokem h pomoc´ı nˇekter´eho sloˇzen´eho integraˇcn´ıho pravidla. Na zaˇc´atku pˇredpokl´ad´ame, ˇze integraˇcn´ı interval a, b se rozdˇel´ı na m u ´ sek˚ u. Symbolem oznaˇcujeme zadanou pˇresnost.
- 122 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
Algoritmus (Dvojn´ y pˇ repoˇ cet) Vstup: f , a, b, m, . Vypoˇcti h := (b − a)/m a I(h). Opakuj: poloˇz h := h/2, vypoˇcti I(h), dokud |I(2h) − I(h)| > . V´ystup: I(h).
Pˇ r´ıklad 6.3.1. Pomoc´ı dvojn´eho pˇrepoˇctu vypoˇctˇete pˇribliˇznou hodnotu integr´alu
1
I=
ex dx
−1
s pˇresnost´ı = 0.0001. Pouˇzijte sloˇzen´e lichobˇeˇzn´ıkov´e pravidlo a zaˇcnˇete s rozdˇelen´ım integraˇcn´ıho intervalu na m = 4 d´ılk˚ u. ˇ sen´ı: V´ Reˇ ypoˇcet je zaznamen´an v tabulce 6.3.1. Jako v´ ysledek dost´av´ame I = 2.3504 ± 0.0001.
2 Tabulka 6.3.1: Dvojn´ y pˇrepoˇcet. m
h
I(h)
|I(2h) − I(h)|
4 8 16 32 64 128 256
0.5000000 0.2500000 0.1250000 0.0625000 0.0312500 0.0156250 0.0078125
2.3991662 2.3626313 2.3534620 2.3511674 2.3505936 2.3504502 2.3504143
— 0.0365349 0.0091693 0.0022945 0.0005737 0.0001434 0.0000358
V dalˇs´ım uk´aˇzeme efektivnˇejˇs´ı variantu dvojn´eho pˇrepoˇctu s extrapolaˇcn´ımi vzorci, kter´e nejdˇr´ıve odvod´ıme. Na hodnotu I(h) m˚ uˇzeme pohl´ıˇzet jako na funkci promˇenn´e h, takˇze pro ni m˚ uˇzeme ps´at Taylor˚ uv rozvoj. Odhady pro chybu podle vˇety 6.2.1. ukazuj´ı, ˇze se v tomto rozvoji budou vyskytovat mocniny h
- 123 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
odpov´ıdaj´ıc´ı ˇra´du pˇr´ısluˇsn´eho integraˇcn´ıho pravidla a vyˇsˇs´ı, tj. I(h) = I + Chp + O(hr ),
(6.3.1)
kde p je ˇra´d a r > p. Jestliˇze vzorec (6.3.1) nap´ıˇseme pro 2h dostaneme I(2h) = I + 2p Chp + O(hr ),
(6.3.2)
protoˇze O((2h)r ) = O(hr ). Vylouˇc´ıme-li z rovnost´ı (6.3.1) a (6.3.2) v´ yraz Chp dost´av´ame I = I(h) +
I(h) − I(2h) + O(hr ). 2p − 1
(6.3.3)
Odtud vid´ıme n´asleduj´ıc´ı: 1) Veliˇcina I1 (h) = I(h) +
I(h) − I(2h) 2p − 1
(6.3.4)
je lepˇs´ı aproximac´ı I neˇz I(h) (je vyˇsˇs´ıho ˇra´du r). 2) V´ yraz E(h) =
I(h) − I(2h) 2p − 1
(6.3.5)
je aproximace chyby pˇribliˇzn´e hodnoty integr´alu I(h), kterou m˚ uˇzeme vzhledem k bodu 1) pouˇz´ıt tak´e pro odhad chyby aproximace I1 (h). Postup pro zvyˇsov´an´ı pˇresnosti v´ ysledk˚ u z´ıskan´ ych numerickou metodou podle vzorce (6.3.3) se naz´ yv´a Richardsonova extrapolace. Pomoc´ı extrapolaˇcn´ıch vzorc˚ u (6.3.3) a (6.3.4) uprav´ıme algoritmus dvojn´eho pˇrepoˇctu. Algoritmus (Dvojn´ y pˇ repoˇ cet s extrapolac´ı) Vstup: f , a, b, m, . Vypoˇcti h := (b − a)/m a I(h). Opakuj: poloˇz h := h/2, vypoˇcti I(h), dokud |E(h)| > . V´ystup: I1 (h).
- 124 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
Pozn´ amka V algoritmu potˇrebujeme zn´ at ˇra´d p pouˇz´ıvan´eho integraˇcn´ıho vzorce. Podle vˇety 6.2.1. je p = 2 pro sloˇzen´e obd´eln´ıkov´e a lichobˇeˇzn´ıkov´e pravidlo a p = 4 pro sloˇzen´e Simpsonovo pravidlo. Pˇ r´ıklad 6.3.2. Pomoc´ı dvojn´eho pˇrepoˇctu s extrapolac´ı vypoˇctˇete pˇribliˇznou hodnotu integr´alu
1
I=
ex dx
−1 −4
s pˇresnost´ı = 10 . Pouˇzijete sloˇzen´e lichobˇeˇzn´ıkov´e pravidlo a zaˇcnˇete pro m = 4. ˇ sen´ı: Protoˇze p = 2, budou m´ıt extrapolaˇcn´ı vzorce tvar Reˇ I1 (h) = I(h) +
I(h) − I(2h) 3
a E(h) =
I(h) − I(2h) . 3
Pr˚ ubˇeh v´ ypoˇctu je zaznamen´an v tabulce 6.3.2. Tabulka 6.3.2: Dvojn´ y pˇrepoˇcet s extrapolac´ı, lichobˇeˇzn´ıkov´e pravidlo. m
h
I(h)
|E(h)|
4 8 16 32 64 128
0.5000000 0.2500000 0.1250000 0.0625000 0.0312500 0.0156250
2.3991662 2.3626313 2.3534620 2.3511674 2.3505936 2.3504502
— 0.0121783 0.0030564 0.0007649 0.0001913 0.0000478
Z posledn´ıch dvou hodnot ve sloupci I(h) vypoˇc´ıt´ame zpˇresnˇenou aproximaci I1 (h) = 2.3504502 +
2.3504502 − 2.3505936 = 2.3504024. 3
Jako v´ ysledek dost´av´ame I = 2.3504024 ± 0.0001. Porovn´an´ım s pˇresnou hodnotou integr´alu I = 2.350402387... vid´ıme, ˇze dosaˇzen´a pˇresnost je velmi vysok´a. Pˇ r´ıklad 6.3.3. V pˇredchoz´ım pˇr´ıkladu pouˇzijte sloˇzen´e Simpsonovo pravidlo.
- 125 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
ˇ sen´ı: Pouˇzijeme extrapolaˇcn´ı vzorce Reˇ I1 (h) = I(h) +
I(h) − I(2h) 15
a E(h) =
I(h) − I(2h) . 15
Pr˚ ubˇeh v´ ypoˇctu je zaznamen´an v tabulce 6.3.3. Tabulka 6.3.3: Dvojn´ y pˇrepoˇcet s extrapolac´ı, Simpsonovo pravidlo. m 4 8
h
|E(h)|
I(h)
0.5000000 2.3511948 — 0.2500000 2.3504530 0.000049
Pomoc´ı extrapolace vypoˇc´ıt´ame zpˇresnˇenou aproximaci I1 (h) = 2.3504530 +
2.3504530 − 2.3511948 = 2.350403. 15
Porovn´an´ım s v´ ypoˇctem v pˇredchoz´ım pˇr´ıkladu vid´ıme, ˇze poˇzadovan´e pˇresnosti jsme dos´ahli mnohem dˇr´ıve. Kontroln´ı ot´ azky Ot´azka 1. Vysvˇetlete princip dvojn´eho pˇrepoˇctu. Ot´azka 2. Jak vzniknou extrapolaˇcn´ı vzorce a jakou informaci poskytuj´ı?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Pomoc´ı dvojn´eho pˇrepoˇctu vypoˇctˇete hodnoty integr´al˚ u 1 π 2 a) ex dx; b) cos x2 dx 0
0
s pˇresnost´ı = 0.0001. Pouˇzijte sloˇzen´e lichobˇeˇzn´ıkov´e pravidlo. 2. V pˇredchoz´ı u ´ loze pouˇzijte sloˇzen´e Simpsonovo pravidlo a extrapolaci. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Poˇzadovanou pˇresnost dos´ahneme: a) pro m = 128, kdy I = 1.462679 ± 10−4 ; b) pro m = 512, kdy I = 0.565702 ± 10−4. 2. Poˇzadovanou pˇresnost dos´ahneme: a) pro m = 8, kdy I = 1.462658 ± 10−4 ; b) pro m = 32, kdy I = 0.565689 ± 10−4 .
- 126 -
Numerick´e metody
6.4.
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´ e derivov´ an´ı
C´ıle ych Uk´aˇzeme jak pˇribliˇznˇe vypoˇc´ıtat hodnoty derivac´ı f (x) a f (x) ze zn´am´ funkˇcn´ıch hodnot f (x − h), f (x) a f (x + h).
Pˇredpokl´ adan´ e znalosti Newton˚ uv tvar interpolaˇcn´ıho polynomu. Taylor˚ uv rozvoj.
V´ yklad Budeme postupovat podobnˇe jako pˇri odvozen´ı Newton-Cotesov´ ych vzorc˚ u v odstavci 6.1. K funkci f sestav´ıme interpolaˇcn´ı polynom pn a ten pak derivujeme m´ısto f . Pouˇzijeme pˇritom Newton˚ uv tvar interpolaˇcn´ıho polynomu (5.1.6). 1) Pro uzly x0 = x a x1 = x + h sestav´ıme line´arn´ı interpolaˇcn´ı polynom a vyj´adˇr´ıme jeho prvn´ı derivaci: p1 (t) = f (x) + f [x + h, x](t − x)
⇒
p1 (t) = f [x + h, x].
Z definice pomˇern´ ych diferenc´ı dostaneme p1 (x) =
f (x + h) − f (x) ≈ f (x). h
(6.4.1)
y interpolaˇcn´ı 2) Pro uzly x0 = x−h, x1 = x a x2 = x+h sestav´ıme kvadratick´ polynom: p2 (t) = f (x − h) + f [x, x − h](t − x + h) + f [x + h, x, x − h](t − x + h)(t − x). Prvn´ı a druh´a derivace maj´ı tvar p2 (t) = f [x, x − h] + f [x + h, x, x − h](2t − 2x + h), p2 (t) = 2f [x + h, x, x − h].
- 127 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
Dosazen´ım t = x a u ´ pravou dost´av´ame p2 (x) = =
f (x) − f (x − h) f (x + h) − 2f (x) + f (x − h) + h h 2h2 f (x + h) − f (x − h) ≈ f (x) 2h
(6.4.2)
a p2 (x) =
f (x + h) − 2f (x) + f (x − h) ≈ f (x). 2 h
(6.4.3)
Pˇ r´ıklad 6.4.1. Vypoˇctˇete pˇribliˇzn´e hodnoty prvn´ı a druh´e derivace pro funkci f (x) = sin x v bodˇe x = 1 s krokem h = 0.01 pomoc´ı vzorc˚ u (6.4.1), (6.4.2) a (6.4.3). Porovnejte je s pˇresn´ymi hodnotami. ˇ sen´ı: Reˇ
Budeme potˇrebovat funkˇcn´ı hodnoty sin 1 = 0.841471, sin 1.01 =
0.846832 a sin 0.99 = 0.836026. Podle vzorec (6.4.1), resp. (6.4.2) dostaneme f (1) ≈ p1 (1) =
0.846832 − 0.841471 = 0.536100, 0.01
f (1) ≈ p2 (1) =
0.846832 − 0.836026 = 0.540300. 2 · 0.01
resp.
Pˇresn´a hodnota je f (1) = cos 1 = 0.540302, takˇze druh´a pˇribliˇzn´a hodnota je podstatnˇe pˇresnˇejˇs´ı. Podle vzorce (6.4.3) vypoˇc´ıt´ame druhou derivaci f (1) ≈ p2 (1) =
0.846832 − 2 · 0.841471 + 0.836026 = −0.840000. 0.012
Nyn´ı je pˇresn´a hodnota f (1) = − sin 1 = −0.841471. N´asleduj´ıc´ı vˇeta ukazuje jak´ y je ˇra´d jednotliv´ ych vzorc˚ u.
- 128 -
Numerick´e metody
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Vˇ eta 6.4.1. Necht’ je funkce f dostateˇcnˇe hladk´a (m´a v okol´ı bodu x spojitou druhou, tˇret´ı, resp. ˇctvrtou derivaci). Pak plat´ı:
f (ξ) , 2 f (3) (ξ) , p2 (x) − f (x) = h2 3 f (4) (ξ) p2 (x) − f (x) = h2 . 12 p1 (x) − f (x) = h
(6.4.4)
Ve vˇsech pˇr´ıpadech je ξ bl´ıˇze neurˇcen´y bod z okol´ı x. D˚ ukaz: Nejjednoduˇsˇs´ı zp˚ usob jak z´ıskat tato tvrzen´ı je pouˇz´ıt Taylor˚ uv rozvoj. Napˇr´ıklad pro odvozen´ı (6.4.4) staˇc´ı vyj´adˇrit prvn´ı derivaci z
2f
f (x + h) = f (x) + hf (x) + h
(ξ) . 2 2
V´ypoˇcet pˇribliˇzn´ych hodnot derivac´ı mohou podstatnˇe ovlivnit zaokrouhlovac´ı chyby. Jmenovatele vzorc˚ u totiˇz obsahuj´ı parametr h, kter´ y mus´ı b´ yt mal´ y, abychom dostali dostateˇcnˇe pˇresnou aproximaci derivace. Souˇcasnˇe ovˇsem mal´a hodnota jmenovatele zlomku zvˇetˇsuje zaokrouhlovac´ı chyby v ˇcitateli. Nejvˇetˇs´ı dosaˇziteln´a pˇresnost proto mus´ı b´ yt jist´ ym kompromisem mezi chybou aproximace a chybou zaokrouhlen´ı. Na pˇr´ıkladu vzorce (6.4.1) si uk´aˇzeme anal´ yzu tohoto probl´emu. y vznikne jako souˇcet odOznaˇcme Ecelk (h) horn´ı odhad celkov´e chyby, kter´ hadu chyby aproximace e(h) a chyby zaokrouhlen´ı z(h), tj. Ecelk (h) = e(h) + z(h). Podle (6.4.4) je e(h) = Ch. D´ale budeme pˇredpokl´adat, ˇze pˇri v´ ypoˇctu f (x) dostaneme vlivem zaokrouhlen´ı poruˇsenou hodnotu f ∗ (x), pˇriˇcemˇz velikost poruchy je nejv´yˇse κ, tj. |f ∗ (x) − f (x)| ≤ κ. Pro vzorec (6.4.1) dost´av´ame n´asleduj´ıc´ı odhad:
- 129 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody
f (x + h) − f (x) f ∗ (x + h) − f ∗ (x)
≤
−
h h ≤
1 2κ (|f ∗(x) − f (x)| + |f ∗ (x + h) − f (x + h)|) ≤ = z(h). h h
Odhad celkov´e chyby m´a proto tvar Ecelk (h) = Ch+ 2κ , viz obr´azek 6.4.1. Funkce h Ecelk (h) m´a jedin´e minimum v bodˇe ' hopt =
2κ C
(6.4.5)
a odpov´ıdaj´ıc´ı hodnota Ecelk (hopt ) pˇredstavuje nejmenˇs´ı horn´ı odhad celkov´e chyby. Pˇri v´ ypoˇctu derivace podle (6.4.1) tedy dojde pro h menˇs´ı neˇz hopt paradoxnˇe ke ztr´atˇe pˇresnosti.
Ecelk (h) e(h)
z(h) hopt
h
Obr´azek 6.4.1: Odhad celkov´e chyby Ecelk (h).
Pˇ r´ıklad 6.4.2. Vypoˇctˇete pˇribliˇznou hodnotu prvn´ı derivace funkce f (x) = sin x v bodˇe x = 1 s krokem h = 0.01 a h = 0.001 pomoc´ı vzorce (6.4.1). Zaokrouhlujte pˇritom na ˇctyˇri desetinn´a m´ısta. V´ ysledky porovnejte s optim´aln´ım krokem hopt .
- 130 -
´ INTEGROVAN ´ ´I A DERIVOVAN ´ ´I 6. NUMERICKE
Numerick´e metody ˇ sen´ı: Reˇ
V naˇsem pˇr´ıpadˇe je κ = 5 · 10−5 a
f (ξ) − sin ξ
=
2 2 ≤ 0.5 = C.
Dosazen´ım do vzorce (6.4.5) vypoˇc´ıt´ame hopt = 0.014142, takˇze v´ysledek pro h = 0.01 by mˇel b´yt pˇresnˇejˇs´ı. Pˇribliˇzn´e derivace maj´ı hodnotu: f (1) ≈
sin(1.01) − sin(1) 0.01
f (1) ≈
sin(1.001) − sin(1) . 0.8420 − 0.8415 = = 0.50. 0.001 0.001
. 0.8468 − 0.8415 = 0.53, = 0.01
Jejich porovn´an´ı s hodnotou f (1) = cos 1 = 0.540302 potvrzuje pˇredchoz´ı z´avˇer.
Kontroln´ı ot´ azky Ot´azka 1. Jak se odvozuj´ı vzorce pro pˇribliˇzn´y v´ ypoˇcet derivace? Ot´azka 2. Zn´azornˇete graficky smysl vzorc˚ u pro v´ ypoˇcet prvn´ı derivace. Ot´azka 3. Jak ovlivˇ nuj´ı v´ ypoˇcet derivac´ı zaokrouhlovac´ı chyby? Ot´azka 4. Odvod’te podrobnˇe vztah (6.4.5). ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1.
Vypoˇctˇete pˇribliˇznˇe prvn´ı a druhou derivaci funkce f (x) = cos x v bodˇe
x = 1.5 s krokem h = 0.01. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. f (1.5) ≈ −0.997832 podle vzorce (6.4.1); f (1.5) ≈ −0.997478 podle vzorce (6.4.2); f (1.5) ≈ −0.070737 podle vzorce (6.4.3). Shrnut´ı lekce Uk´azali jsme pouˇzit´ı z´akladn´ıch integraˇcn´ıch pravidel a vzorc˚ u numerick´eho derivov´an´ı. Vidˇeli jsme, ˇze numerick´e v´ ypoˇcty integr´al˚ u jsou stabiln´ı vzhledem k zaokrouhlovac´ım chyb´am. Zat´ımco pˇribliˇzn´e v´ ypoˇcty derivac´ı jsou na zaokrouhlovac´ı chyby pomˇernˇe citliv´e.
- 131 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
7.
Numerick´e metody
ODR – poˇ c´ ateˇ cn´ı u ´ lohy
Pr˚ uvodce studiem Jen velmi m´alo diferenci´aln´ıch rovnic, kter´e se vyskytuj´ı pˇri popisu praktick´ ych u ´ loh, se d´a ˇreˇsit exaktnˇe, a i kdyˇz dok´aˇzeme naj´ıt vzorce popisuj´ıc´ı analytick´e ˇreˇsen´ı, b´ yvaj´ı natolik sloˇzit´e, ˇze je obt´ıˇzn´e s nimi d´ale pracovat. Numerick´e metody jsou proto ˇcasto jedinou moˇznost´ı jak danou diferenci´aln´ı rovnici vyˇreˇsit. V t´eto kapitole pˇredstav´ıme z´akladn´ı numerick´e metody pro ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh pro obyˇcejn´e diferenci´aln´ı rovnice (ODR). Nejdˇr´ıve si na pˇr´ıkladu pˇripomeneme nˇekter´e analytick´e postupy a nachyst´ame si modelovou u ´ lohu. Pak struˇcnˇe odvod´ıme nejjednoduˇsˇs´ı Eulerovu metodu, na n´ıˇz uk´aˇzeme podstatn´e rysy spoleˇcn´e vˇsem numerick´ ym metod´am. U ostatn´ıch metod pak uvedeme pouze vzorce a na pˇr´ıkladech pˇredvedeme jejich pouˇzit´ı a vlastnosti.
7.1.
Formulace u ´lohy
C´ıle Zavedeme obecnou formulaci poˇc´ateˇcn´ı u ´ lohy pro ODR prvn´ıho ˇra´du a zm´ın´ıme pˇredpoklady, kter´e zajiˇst’uj´ı existenci a jednoznaˇcnost ˇreˇsen´ı. Na pˇr´ıkladu pˇripomeneme exaktn´ı metody pro v´ ypoˇcet analytick´eho ˇreˇsen´ı.
Pˇredpokl´ adan´ e znalosti Exaktn´ı metody ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh pro ODR.
- 132 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
V´ yklad Budeme se zab´yvat numerick´ ym v´ ypoˇctem funkce y = y(x), kter´a na intervalu a, b vyhovuje rovnici y (x) = f (x, y(x)),
(7.1.1)
kde f = f (x, y) je dan´a prav´a strana. Rovnice (7.1.1) je obyˇcejn´ a diferenci´ aln´ı rovnice prvn´ıho ˇra´du a z teorie je o n´ı zn´amo, ˇze ˇreˇsen´ı (pokud existuje) je urˇceno aˇz na jeden voliteln´y parametr. Aby bylo ˇreˇsen´ı urˇceno jednoznaˇcnˇe, budeme poˇzadovat splnˇen´ı poˇc´ateˇcn´ı podm´ınky ve tvaru y(a) = c.
(7.1.2)
´ Uloha (7.1.1), (7.1.2) je poˇca´teˇcn´ı u ´loha pro obyˇcejnou diferenci´aln´ı rovnici. Ovˇsem ani tato u ´ loha nemus´ı m´ıt jedin´e ˇreˇsen´ı. Vˇse z´avis´ı na vlastnostech prav´e strany f . O t´eto funkci budeme v cel´e kapitole pˇredpokl´adat, ˇze je spojit´a v prvn´ı nuje Lipschitzovu podm´ınku ve druh´e promˇenn´e, tj. existuje konpromˇenn´e a splˇ stanta L (nez´avisl´a na x a y) takov´a, ˇze |f (x, y) − f (x, z)| ≤ L|y − z| ∀x ∈ a, b ∀y, z ∈ R.
(7.1.3)
Za tˇechto pˇredpoklad˚ u m´a poˇc´ateˇcn´ı u ´ loha jedin´e ˇreˇsen´ı. Pˇ r´ıklad 7.1.1. Poˇc´ateˇcn´ı u ´ loha y = y2,
y(0) = 1
nem´a jedin´e ˇreˇsen´ı na ntervalu 0, 2, protoˇze prav´a strana na uveden´em intervalu nesplˇ nuje Lipschitzovu podm´ınku. V n´asleduj´ıc´ım pˇr´ıkladu si pˇripomeneme klasick´e postupy pro ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh. Bude se jednat o u ´ lohu, kterou v dalˇs´ım textu pouˇzijeme jako modelov´y pˇr´ıklad pˇri testov´an´ı numerick´ ych metod.
- 133 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Pˇ r´ıklad 7.1.2.
Numerick´e metody
Ovˇeˇrte, ˇze poˇc´ateˇcn´ı u ´ loha y = x2 − 0.2y,
y(−2) = −1
(7.1.4)
m´a jedin´e ˇreˇsen´ı. Toto ˇreˇsen´ı vypoˇctˇete exaktnˇe pomoc´ı zn´am´ ych analytick´ ych metod. ˇ sen´ı: Reˇ
Ovˇeˇren´ı Lipschitzovy podm´ınky pro f (x, y) = x2 − 0.2y provedeme
dosazen´ım do x2 − 0.2y − x2 + 0.2z f (x, y) − f (x, z) = = −0.2, y−z y−z ˇ sen´ı odkud vid´ıme, ˇze (7.1.3) je splnˇeno napˇr´ıklad pro konstantu L = 0.2. Reˇ zadan´e poˇc´ateˇcn´ı u ´ lohy je proto jedin´e. Pˇri jeho v´ ypoˇctu nejdˇr´ıve vyˇreˇs´ıme homogenn´ı diferenci´aln´ı rovnici u = −0.2u pomoc´ı separace promˇenn´ych. Postup je n´asleduj´ıc´ı: du du = −0.2u ⇒ = −0.2 dx ⇒ dx u
du = u
−0.2 dx ⇒
ln |u| = −0.2x + c ⇒ |u| = e−0.2x+c ⇒ u(x) = Ce−0.2x ,
C > 0.
Pro v´ ypoˇcet (partikul´arn´ıho) ˇreˇsen´ı yp rovnice (7.1.4) pouˇzijeme metodu variace konstant, kdy pˇredem pˇredpokl´ad´ame, ˇze ˇreˇsen´ı bude ve tvaru yp (x) = C(x)e−0.2x . Dosazen´ım do diferenci´aln´ı rovnice (7.1.4) dostaneme C (x)e−0.2x + C(x)(−0.2)e−0.2x = x2 − 0.2C(x)e−0.2x ⇒ C (x) = x2 e0.2x a odtud integrac´ı per partes vypoˇcteme C(x) = x2 e0.2x dx = e0.2x (5x2 − 50x + 250), takˇze yp (x) = 5x2 −50x+ 250. Obecn´e ˇreˇsen´ı dan´e diferenci´aln´ı rovnice lze zapsat ve tvaru y(x) = yp (x) + u(x), tj. y(x) = 5x2 − 50x + 250 + Ce−0.2x . Koneˇcnˇe
- 134 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody z poˇc´ateˇcn´ı podm´ınky urˇc´ıme konstantu C
−1 = y(−2) = 20 + 100 + 250 + Ce0.4 ⇒ C = −248.688737 a t´ım i ˇreˇsen´ı naˇs´ı v´ ychoz´ı u ´ lohy: y(x) = 5x2 − 50x + 250 − 248.018417e−0.2x .
(7.1.5)
Pozn´ amka ´ Ulohu (7.1.1), (7.1.2) m˚ uˇzeme ch´ apat vektorovˇe: hled´ ame vektorovou funkci a strana je rey(x) = (y1 (x), . . . , yn (x)) vyhovuj´ıc´ı rovnici (7.1.1), kde prav´ nuj´ıc´ı prezentov´ ana vektorovu funkc´ı f (x, y) = (f1 (x, y), . . . , fn (x, y)) , a splˇ poˇca´teˇcn´ı podm´ınku (7.1.2) zadanou vektorem c = (c1 , . . . , cn ) . Vˇsechny mumerick´e metody, s nimiˇz se v dalˇs´ım sezn´am´ıme, lze proto pouˇz´ıt i pro soustavy obyˇcejn´ych diferenci´ aln´ıch rovnic prvn´ıho ˇra´du.
Pozn´ amka Skuteˇcnost, ˇze se omezujeme pouze na rovnice prvn´ıho ˇra´du, nen´ı ˇz´adn´e podstatn´e omezen´ı. Z teorie diferenci´ aln´ıch rovnic je totiˇz zn´ amo, ˇze poˇc´ateˇcn´ı u ´lohu pro rovnici vyˇsˇs´ıho ˇra´du neˇz 1 lze jednoduchou substituc´ı pˇrev´est na soustavu rovnic prvn´ıho ˇra´du.
Kontroln´ı ot´ azky Ot´azka 1. Jak vypad´a obecn´a formulace poˇc´ateˇcn´ı u ´ lohy pro obyˇcejnou diferenci´aln´ı rovnici prvn´ıho ˇra´du? Ot´azka 2. Zopakujte si exaktn´ı metody pro v´ ypoˇcet pˇresn´eho (analytick´eho) ˇreˇsen´ı.
- 135 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
7.2.
Numerick´e metody
Eulerova metoda
C´ıle Odvod´ıme rekurentn´ı vzorce pro Eulerovu metodu a uk´aˇzeme jejich pouˇzit´ı.
Pˇredpokl´ adan´ e znalosti Prov´adˇen´ı rekurentn´ıch v´ ypoˇct˚ u, analytick´e ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh pro ODR.
V´ yklad Z´akladem, z nˇehoˇz vych´azej´ı numerick´e metody je diskretizace promˇenn´ych. Pˇribliˇzn´e ˇreˇsen´ı se nekonstruuje jako spojit´a funkce, ale postupnˇe se generuje posloupnost uzl˚ u x0 = a, x1 , x2 , . . . a pro nˇe se stanov´ı ˇc´ısla y0 = c, y1 , y2 , . . ., kter´a aproximuj´ı hodnoty pˇresn´eho ˇreˇsen´ı y(x0 ), y(x1 ), y(x2 ), . . .. Pro jednoduchost budeme pˇredpokl´adat, ˇze uzly jsou ekvidistantn´ı s krokem h a plat´ı xn = b, tj. h = (b − a)/n a xi = a + ih, i = 0, 1, . . . , n. Pˇri odvozov´an´ı vzorc˚ u pro pˇribliˇzn´e ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh m˚ uˇzeme postupovat napˇr´ıklad tak, ˇze v diferenci´aln´ı rovnici (7.1.1) zapsan´e v uzlu xi nahrad´ıme pˇresnou hodnotu y(xi) jej´ı aproximac´ı yi a derivaci na lev´e stranˇe vyj´adˇr´ıme numerick´ ym vzorcem (6.4.1), tj. y (xi ) = f (xi , y(xi))
≈
yi+1 − yi = f (xi , yi). h
Odtud jsme schopni pˇri zn´am´ ych hodnot´ach xi a yi vypoˇc´ıtat yi+1 . Po pˇrepisu do explicitn´ıho tvaru dost´av´ame rekurentn´ı vzorce Eulerovy metody: ⎫ ⎬ y0 = c, = y + hf (x , y ), i = 0, 1, . . . , n − 1. ⎭ y i+1
i
i
(7.2.1)
i
Pˇ r´ıklad 7.2.1. Poˇc´ateˇcn´ı u ´ lohu (7.1.4) ˇreˇste na intervalu −2, 3 pomoc´ı Eulerovy metody s krokem h = 1 a 0.5. V´ ysledky porovnejte s pˇresn´ym ˇreˇsen´ım.
- 136 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
ˇ sen´ı: V naˇsem pˇr´ıpadˇe je x0 = −2, y(−2) = y0 = −1 a f (x, y) = x2 − 0.2y. Reˇ Pro h = 1 dost´av´ame: y1 = −1 + 1 · ((−2)2 − 0.2 · (−1)) = 3.2, y2 = 3.2 + 1 · ((−1)2 − 0.2 · 3.2) = 3.56, y3 = 2.848, y4 = 3.2784, y5 = 6.6227. Podobnˇe pro h = 0.5 vypoˇcteme: y1 = −1 + 0.5 · ((−2)2 − 0.2 · (−1)) = 1.1, y2 = 1.1 + 0.5 · ((−1.5)2 − 0.2 · 1.1) = 2.115, y3 = 2.4035, . . . , y10 = 7.4988. Pro lepˇs´ı n´azornost zapiˇsmˇe obˇe pˇribliˇzn´a ˇreˇsen´ı do tabulky 7.2.1, v n´ıˇz provedeme tak´e porovn´an´ı s pˇresn´ym ˇreˇsen´ım y(x) urˇcen´ym vzorcem (7.1.5). Z tabulky je Tabulka 7.2.1: Eulerova metoda. h = 0.5
h=1 i
xi
yi
|yi − y(xi)|
0
−2
−1
0
1
−1
3.2
1.9491
2
0
3.56
2.2487
3
1
2.848
1.4571
4
2
3.2784
0.0206
5
3
6.6227
1.8940
i
xi
yi
0 1 2 3 4 5 6 7 8 9 10
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 3
−1 1.1 2.1150 2.4035 2.2882 2.0593 1.9784 2.2806 3.1775 4.8598 7.4988
|yi − y(xi )| 0 0.5447 0.8641 0.9971 0.9769 0.8322 0.5875 0.2637 0.1214 0.5529 1.0179
vidˇet, ˇze ˇreˇsen´ı vypoˇcten´e s menˇs´ım krokem h je pˇresnˇejˇs´ı. Tento z´avˇer potvrzuje tak´e obr´azek 7.2.1, kde jsou pˇribliˇzn´a ˇreˇsen´ı zn´azornˇena jako lomen´e ˇc´ary.
- 137 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
9 8 7 6 5 4
h=1
3
h = 0.5
2 1
y(x) 0 −1 −2
−1
0
1
2
3
Obr´azek 7.2.1: Pˇribliˇzn´a ˇreˇsen´ı z Eulerovy metody a pˇresn´e ˇreˇsen´ı (teˇckovanˇe). Pozn´ amka Eulerova metoda je metodou prvn´ıho ˇra´du, pˇrestoˇze jsme ji odvodili ze vzorec (6.4.1), kter´y je ˇra´du druh´eho. Pˇri v´ypoˇctu podle Eulerovy metody doch´ az´ı ke kumuluaci (diskretizaˇcn´ı) chyby, coˇz m´ a za d˚ usledek sn´ıˇzen´ı ˇra´du. Kontroln´ı ot´ azky Ot´azka 1. Odvod’te Eulerovu metodu. Jak´eho je ˇra´du a proˇc? ´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Eulerovou metodou ˇreˇste diferenci´aln´ı rovnici y = 1/(x2 +1)−0.1y s poˇc´ateˇcn´ı podm´ınkou y(−2) = −1 na intervalu −2, 3 s krokem h = 0.5. V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. y0 = −1, y1 = −0.85, y2 = −0.6537, y3 = −0.3710, y4 = 0.0476, y5 = 0.5452, y6 = 0.9179, y7 = 1.1220, y8 = 1.2198, y9 = 1.2588, y10 = 1.2648.
- 138 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
7.3.
Jednokrokov´ e metody vyˇ sˇ s´ıho ˇ r´ adu
C´ıle Uk´aˇzeme pouˇzit´ı rekurentn´ıch vzorc˚ u Heunovy metody a klasick´e RungeovyKuttovy metody.
Pˇredpokl´ adan´ e znalosti Eulerova metoda, analytick´e ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh pro ODR.
V´ yklad N´asleduj´ıc´ı vzorce popisuj´ı metody vyˇsˇs´ıho ˇra´du. Pˇri jejich pouˇzit´ı dos´ahneme srovnateln´e pˇresnosti jako u Eulerovy metody pˇri podstatnˇe vˇetˇs´ım kroku h, tedy pˇri v´ yraznˇe menˇs´ım celkov´em objemu v´ ypoˇct˚ u. Heunova metoda, kter´a je druh´eho ˇra´du, je urˇcena rekurentn´ımi vzorci: ⎫ ⎪ ⎪ y0 = c, ⎪ ⎪ ⎪ ⎪ ⎬ k1 = hf (xi , yi ), (7.3.1) ⎪ ⎪ k2 = hf (xi + h, yi + k1 ), ⎪ ⎪ ⎪ ⎪ 1 = y + (k + k ), i = 0, . . . , n − 1. ⎭ y i+1
i
2
1
2
Rungeova-Kuttova metoda ˇctvrt´eho ˇra´du (RK4) je urˇcena rekurentn´ımi vzorci: ⎫ ⎪ ⎪ y0 = c, ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ k1 = hf (xi , yi), ⎪ ⎪ ⎪ ⎪ 1 1 ⎬ k2 = hf (xi + 2 h, yi + 2 k1 ), (7.3.2) ⎪ ⎪ k3 = hf (xi + 12 h, yi + 12 k2 ), ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ k4 = hf (xi + h, yi + k3 ), ⎪ ⎪ ⎪ ⎪ 1 yi+1 = yi + 6 (k1 + 2k2 + 2k3 + k4 ), i = 0, . . . , n − 1. ⎭
- 139 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
Pozn´ amka Obˇe uveden´e metody jsou jednokrokov´e, ˇc´ımˇz m´ ame namysli, ˇze pro v´ypoˇcet yi+1 staˇc´ı hodnota z jedin´eho pˇredchoz´ıho kroku yi . Pozn´ amka Ze vzorc˚ u (7.3.1), (7.3.2) je d´ ale vidˇet,ˇze zv´yˇsen´ı ˇra´du u jednokrokov´e metody je spojeno s vˇetˇs´ım objemem v´ypoˇct˚ u, zejm´ena je v kaˇzd´em kroku potˇreba poˇc´ıtat hodnoty prav´e strany f (x, y) ve v´ıce bodech.
Pˇ r´ıklad 7.3.1. Poˇc´ateˇcn´ı u ´ lohu (7.1.4) ˇreˇste na intervalu −2, 3 pomoc´ı Heunovy metody a metody RK4 s krokem h = 1. V´ ysledky porovnejte s pˇresn´ym ˇreˇsen´ım a s ˇreˇsen´ım z´ıskan´ ym Eulerovou metodou. ˇ sen´ı: Opˇet vyjdeme z x0 = −2, y(−2) = y0 = −1 a f (x, y) = x2 − 0.2y. Reˇ Naznaˇc´ıme prvn´ı dva kroky Heunovy metody: k1 = 1 · ((−2)2 − 0.2 · (−1)) = 4.2, k2 = 1 · ((−2 + 1)2 − 0.2 · (−1 + 4.2)) = 0.36, y1 = −1 + 12 (4.2 + 0.36) = 1.28, k1 = 1 · ((−1)2 − 0.2 · 1.28) = 0.744, k2 = 1 · ((−1 + 1)2 − 0.2 · (1.28 + 0.744)) = −0.4048, y2 = 1.28 + 12 (0.744 + (−0.4048)) = 1.4496, atd. Obˇe pˇribliˇzn´a ˇreˇsen´ı zap´ıˇseme do tabulky 7.3.1 a porovn´ame je s pˇresn´ym ˇreˇsen´ım y(x) urˇcen´ym vzorcem (7.1.5). Porovn´an´ım se sloupcem h = 1 v tabulce 7.2.1 vid´ıme, ˇze dosaˇzen´e v´ ysledky jsou pˇresnˇejˇs´ı neˇz u Eulerovy metody, pˇriˇcemˇz nejpˇresnˇejˇs´ı v´ ysledky d´av´a metoda RK4, viz tak´e obr´azek 7.3.1.
- 140 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
Tabulka 7.3.1: Metody vyˇsˇs´ıho ˇra´du. Metoda RK4
Heunova metoda i
xi
yi
0 −2 1 −1 2 0 3 1 4 2 5 3
−1 1.2800 1.4496 1.6887 3.7847 9.2035
|yi − y(xi )| 0 0.0291 0.1383 0.2978 0.4858 0.6867
i
xi
yi
0 −2 1 −1 2 0 3 1 4 2 5 3
−1 1.2508 1.3112 1.3910 3.2994 8.5175
|yi − y(xi )| 0 0.0001 0.0001 0.0001 0.0004 0.0008
10
8
6
4
2
y(x)
0
−2 −2
−1
0
1
2
3
Obr´azek 7.3.1: Pˇribliˇzn´e ˇreˇsen´ı vypoˇc´ıtan´e metodou RK4 (plnˇe), Heunovou metodou (ˇc´arkovanˇe) a pˇresn´e ˇreˇsen´ı (teˇckovanˇe).
- 141 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
Kontroln´ı ot´ azky Ot´azka 1. Jak´e zn´ate metody vyˇsˇs´ıho ˇra´du? Co je jejich v´ yhodou oproti metod´am prvn´ıho ˇra´du? Ot´azka 2. Jak´ y je vztah mezi ˇra´dem metody a poˇcetn´ı n´aroˇcnost´ı jednoho kroku?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Diferenci´aln´ı rovnici y = y(1 + sin x) − x3 , y(1) = 0 ˇreˇste na intervalu 1, 2 Heunovou metodou a metodou RK4 s krokem h = 0.2.
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Heunova metoda: y0 = 0, y1 = −0.3114, y2 = −0.9732, y3 = −2.2320, y4 = −4.4495, y5 = −8.1186; metoda RK4: y0 = 0, y1 = −0.3210, y2 = −1.0087, y3 = −2.3257, y4 = −4.6586, y5 = −8.5351.
- 142 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
7.4.
V´ıcekrokov´ e metody
C´ıle Uk´aˇzeme pouˇzit´ı v´ıcekrokov´ ych metod pro ˇreˇsn´ı poˇc´ateˇcn´ıch u ´ loh pro ODR. Pomoc´ı z´akladn´ıch v´ıcekrokov´ ych vzorc˚ u odvod´ıme algoritmus prediktor-korektor.
Pˇredpokl´ adan´ e znalosti Jednokrokov´e a analytick´e metody ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh pro ODR.
V´ yklad Definice 7.4.1. Dan´a metoda se na´ yv´a k-krokov´a, jestliˇze pˇri v´ ypoˇctu yi+1 je potˇreba dosadit do vzorce metody hodnoty ˇreˇsen´ı z k pˇredchoz´ıh krok˚ u, tj. hodnoty yi , yi−1 , . . . , yi−k+1. Vˇsechny dosud uveden´e metody byly jednokrokov´e. Pˇr´ıkladem dvoukrokov´e metody je vzorec yi+1 = yi−1 + 2hf (xi , yi),
(7.4.1)
kter´ y lze odvodit podobnˇe jako Eulerovu metodu (7.2.1) pomoc´ı numerick´eho derivov´an´ı. Vzorci (7.4.1) se ˇr´ık´a metoda sk´ akaj´ıc´ı ˇz´aby, protoˇze hodnoty pˇribliˇzn´eho ˇreˇsen´ı vˇetˇsinou oscilij´ı kolem ˇreˇsen´ı pˇresn´eho. Definice 7.4.2. Dan´a metoda se na´ yv´a l-bodov´a, jestliˇze pˇri v´ ypoˇctu yi+1 vyˇzaduje vzorec metody vypoˇc´ıtat hodnoty prav´e strany f v l bodech. Eulerova metoda (7.2.1) je jednobodov´a, Heunova metoda (7.3.1) je dvoubodov´a a Runge-Kuttova metoda (7.3.2) je ˇctyˇrbodov´a. Vid´ıme, ˇze u jednokro-
- 143 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
kov´ ych metod je pro dosaˇzen´ı vyˇsˇs´ıho ˇra´du poˇc´ıtat hodnoty prav´e strany ve v´ıce bodech, ˇc´ımˇz se ovˇsem zvˇetˇsuje pracnost v´ypoˇctu. Tuto nepˇr´ıjemnou vlastnost odstraˇ nuj´ı v´ıcekrokov´e metody. Hodnoty pˇribliˇzn´eho ˇreˇsen´ı z pˇredchoz´ıch krok˚ u totiˇz pˇredstavuj´ı v dan´ y okamˇzik jiˇz napoˇctenou informaci, kterou lze vyuˇz´ıt pro dosaˇzen´ı vyˇsˇs´ıho ˇra´du. Vˇsimnˇeme si, ˇze metoda (7.4.1) je jednobodov´a, dvoukrokov´a a druh´eho ˇra´du (jej´ı odvozen´ı je zaloˇzeno na pouˇzit´ı vzorce numerick´eho derivov´an´ı (6.4.2) druh´eho ˇra´du). Jistou komplikac´ı u k-krokov´e metody je skuteˇcnost, ˇze pˇri zah´ajen´ı v´ ypoˇctu ´sek. Jeho v´ ypoˇcet se potˇrebujeme zn´at hodnoty y0 , y1 , . . . , yk−1 , tzv. poˇc´ateˇcn´ı u zpravidla prov´ad´ı vhodnou jednokrokovou metodou (stejn´eho nebo vyˇsˇs´ıho ˇra´du). Vˇsechny dosud uveden´e metody byly explicitn´ı, tzn. ˇze v jejich vzorci se yi+1 vyskytovalo pouze na lev´e stranˇe. U v´ıcekrokov´ ych metod se ˇcasto pouˇz´ıvaj´ı vzorce implicitn´ı, u nichˇz se yi+1 vyskytuje i na stranˇe prav´e. Pouˇzit´ı takov´ehoto vzorce pˇredstavuje v kaˇzd´em kroku rovnici (zpravidla neline´arn´ı), jej´ımˇz ˇreˇsen´ım u vhodn´e iteraˇcn´ı metody, je yi+1. Pˇri ˇreˇsen´ı t´eto rovnice lze pouˇz´ıt nˇekolik krok˚ coˇz je podstata algoritm˚ u typu prediktor-korektor. Adamsovy-Bashforthovy vzorce Pod n´azvem Adamsovy-Bashforthovy vzorce rozumm´ıme explicitn´ı v´ıcekrokov´e metody, kter´e lze odvodit integrac´ı interpolaˇcn´ıho polynomu sestaven´eho pro derivaci ˇreˇsen´ı diferenci´aln´ı rovnice. Ukaˇzme odvozen´ı tˇr´ıkrokov´eho vzorce. Necht’ y(x) je ˇreˇsen´ı u ´ lohy (7.1.1) a oznaˇcme yi = y (xi ). Derivaci y (x) m˚ uˇzeme vyj´adˇrit ve tvaru y (x) = p2 (x) + e(x),
(7.4.2)
kde p2 (x) je Newton˚ uv tvar interpolaˇcn´ıho polynomu v uzlech xi , xi−1 , xi−2 a e(x) je interpolaˇcn´ı chyba: p2 (x) = yi + y [xi−1 , xi ](x − xi ) + y [xi−2 , xi−1 , xi ](x − xi )(x − xi−1 ),
- 144 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
e(x) =
˜ y (4) (ξ) (x − xi )(x − xi−1 )(x − xi−2 ). 3!
V (7.4.2) provedeme integraci na intervalu xi , xi+1 : xi+1 y (x) dx = y(xi+1 ) − y(xi),
xi xi+1 xi
h2 5h3 p2 (x) dx = · h + y [xi−1 , xi ] · + y [xi−2 , xi−1 , xi ] · 2 6 2 y − 2yi−1 + yi−2 5h3 y − yi−1 h · + i = yi · h + i · h 2 2h2 6 h = (23yi − 16yi−1 + 5yi−2 ), 12 yi
xi+1
e(x) dx = xi
y (4) (ξ) 9 4 3 4 (4) · · h = · h · y (ξ), 3! 4 8
takˇze dohromady dost´av´ame y(xi+1 ) − y(xi ) =
h 3 (23yi − 16yi−1 + 5yi−2 ) + h4 y (4) (ξ). 12 8
Vynech´an´ım posledn´ıho ˇclenu vznikne rekurentn´ı vzorec, kter´y lze pouˇz´ıt pro pˇribliˇzn´y v´ ypoˇcet y(xi+1 ). Staˇc´ı si uvˇedomit, ˇze (pˇribliˇzn´e) hodnoty derivac´ı , yi−2 lze snadno vypoˇc´ıtat dosazen´ım do prav´e strany f naˇs´ı diferenci´aln´ı yi , yi−1
rovnice (7.1.1). Oznaˇc´ıme-li yi ≈ y(xi) a fi = f (xi , yi) ≈ yi , obdrˇz´ıme n´asleduj´ıc´ı tvar vzorce: yi+1 = yi +
h (23fi − 16fi−1 + 5fi−2 ). 12
Jedn´a se zˇrejmˇe o tˇr´ıkrokovou metodu tˇret´ıho ˇra´du (srovnej s pozn´amkou u Eulerovy metody). Souˇcasnˇe je to metoda jednobodov´a ! Staˇc´ı si totiˇz uvˇedomit, ˇze pˇri v´ ypoˇctu yi+1 nen´ı potˇreba vyˇc´ıslit hodnoty fi−1 a fi−2 , protoˇze k tomu jiˇz doˇslo v pˇredchoz´ıch kroc´ıch. Analogick´ ym postupem lze odvodit dalˇs´ı Adamsovy-Bashforthovy vzorce liˇs´ıc´ı se poˇctem krok˚ u. Obvykle pouˇz´ıvan´e vzorce jsou nejv´yˇse ˇctyˇrkrokov´e. Zde je jejich pˇrehled: yi+1 = yi + hfi ,
(7.4.3)
- 145 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
h yi+1 = yi + (3fi − fi−1 ), 2 h yi+1 = yi + (23fi − 16fi−1 + 5fi−2 ), 12 h yi+1 = yi + (55fi − 59fi−1 + 37fi−2 − 9fi−3 ). 24
Pˇ r´ıklad 7.4.1.
(7.4.4) (7.4.5) (7.4.6)
Poˇc´ateˇcn´ı u ´ lohu (7.1.4) ˇreˇste na intervalu −2, 3 pomoc´ı
tˇr´ıkrokov´e Adamsovy-Bashforthovy metody s krokem h = 1. V´ ysledky porovnejte s pˇresn´ym ˇreˇsen´ım. ˇ sen´ı: Poˇc´ateˇcn´ı u Reˇ ´sek vypoˇc´ıt´ame metodou RK4. Jsou to prvn´ı tˇri hodnoty xi a yi z druh´e ˇc´asti tabulky 7.3.1, tj. x0 = −2, x1 = −1, x2 = 0 a y0 = −1, y1 = 1.2508, y2 = 1.3112. Protoˇze f (x, y) = x2 − 0.2y, vypoˇc´ıt´ame f0 = (−2)2 − 0.2 · (−1) = 4.2000, f1 = (−1)2 − 0.2 · 1.2508 = 0.7498 a f2 = (0)2 − 0.2 · 1.3112 = −0.2622. Pomoc´ı vzorce (7.4.5) pak provedeme vˇsechny dalˇs´ı v´ ypoˇcty: y3 = −1.3112 +
h (23f2 12
− 16f1 + 5f0 ) = 1.5588,
f3 = 12 − 0.2 · 1.5588 = 0.6882, y4 = 1.5588 +
h (23f3 12
− 16f2 + 5f1 ) = 3.5400,
f4 = 22 − 0.2 · 3.5400 = 3.2920, y5 = 3.5400 +
h (23f4 12
− 16f3 + 5f2 ) = 8.8227.
V´ysledky jsou shrnuty v tabulce 7.4.1. Adamsovy-Moultonovvy vzorce Adamsovy-Moultonovy vzorce jsou implicitn´ı v´ıcekrokov´e metody, kter´e lze odvodit podobn´ ym postupem jako Adamsovy-Bashforthovy vzorce, tj. provede se integrace interpolaˇcn´ıho polynomu sestaven´eho pro derivaci ˇreˇsen´ı diferenci´aln´ı rovnice. Nyn´ı se integruje na intervalu xi−1 , xi a pak se posune indexov´an´ı. Uved’me pouze pˇrehled vzorc˚ u: yi+1 = yi + hfi+1 ,
(7.4.7)
- 146 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
h yi+1 = yi + (fi+1 + fi ), 2 h yi+1 = yi + (5fi+1 + 8fi − fi−1 ), 12 h yi+1 = yi + (9fi+1 + 19fi − 5fi−1 + fi−2 ). 24
(7.4.8) (7.4.9) (7.4.10)
Napˇr´ıklad (7.4.9) pˇredsatvuje dvoukrokovou, jednobodouvou metodu tˇret´ıho ˇra´du. Pouˇzit´ı uveden´ych vzorc˚ u vyˇzaduje v kaˇzd´em kroku ˇreˇsit rovnici pro nezn´amou usob ˇreˇsen´ı, kter´ y jsme zm´ınili v u ´ vodu, rozebereme aˇz v dalˇs´ım yi+1 . Iteraˇcn´ı zp˚ odstavci. Zde si ukaˇzme jednoduˇzˇs´ı postup, kdy se do zvolen´eho vzorce dosad´ı prav´a strana diferenci´aln´ı rovnice f a pak se vyj´adˇren´ım yi+1 vzorec pˇrevede na explicitn´ı tvar. Takto m˚ uˇzeme ovˇsem postupovat pouze v pˇr´ıpadech, kdy prav´a strana f nen´ı pˇr´ıliˇs sloˇzit´a funkce”. ” Tabulka 7.4.1: Adamsova-Bashforthova a Adamsova-Moultonova metoda. Ad.-Bash. 3. ˇra´du i
xi
yi
0 −2 1 −1 2 0 3 1 4 2 5 3
−1 1.2508 1.3112 1.5588 3.5400 8.8227
Ad.-Moul. 3. ˇra´du
|yi − y(xi )| 0 0.0001 0.0001 0.1679 0.2411 0.3060
i
xi
yi
0 −2 1 −1 2 0 3 1 4 2 5 3
−1 1.2508 1.2929 1.3613 3.2628 8.4773
|yi − y(xi )| 0 0.0001 0.0183 0.0296 0.0362 0.0394
Pˇ r´ıklad 7.4.2. Poˇc´ateˇcn´ı u ´ lohu (7.1.4) ˇreˇste na intervalu −2, 3 pomoc´ı dvoukrokov´e Adamsova-Moultonovy metody pro h = 1. V´ ysledky porovnejte s pˇresn´ym ˇreˇsen´ım. ˇ sen´ı: Do prav´e strany vzorce (7.4.9) dosad´ıme fi+1 = f (xi+1 , yi+1) = x2i+1 − Reˇ 0.2yi+1 : yi+1 = yi +
h (5(x2i+1 − 0.2yi+1) + 8fi − fi−1 ). 12
- 147 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
Vyjadˇr´ıme yi+1: yi+1 = 12(yi +
h (5x2i+1 + 8fi − fi−1 ))/(12 + h). 12
Tento pˇrepis Adamsova-Moultonova vzorce pouˇzijeme ve v´ypoˇctech. Jako poˇc´ateˇcn´ı u ´ sek vezmeme hodnotu vypoˇc´ıtanou metodou RK4, tj. pouˇzijeme xi a yi z prvn´ıch dvou ˇra´dk˚ u tabulky 7.3.1. V´ ysledky jsou shrnuty v tabulce 7.4.1. Algoritmus prediktor-korektor Princip odvozen´ı algoritmu uk´aˇzeme na dvoukrokov´em Adamsovˇe-Moultonovˇe vzorci: yi+1 = yi +
h (5f (xi+1 , yi+1) + 8fi − fi−1 ). 12
Pˇredpokl´adejme, ˇze zn´ame hodnoty yi, yi−1 , yi−2 a chceme vypoˇc´ıtat yi+1 . Na uveden´y vzorec m˚ uˇzeme pohl´ıˇzet jako na rovnici v iteraˇcn´ım tvaru (2.4.1), pro jej´ıˇz vyˇreˇsen´ı je pˇrirozen´e pouˇz´ıt metodu prost´ ych iterac´ı (2.4.3). Tato u ´vaha vede na n´asleduj´ıc´ı v´ ypoˇcetn´ı postup: Pro i = 1, . . . , n − 1 vypoˇcti yi+1 takto: 0 , (a) urˇci poˇca´teˇcn´ı odhad yi+1
(b) poˇc´ateˇcn´ı odhad zpˇresˇ nuj pomoc´ı iterac´ı: k+1 = yi + yi+1
h k (5f (xi+1 , yi+1 ) 12
+ 8fi − fi−1 ),
k = 0, 1, 2, . . . .
Krok (a) se naz´ yv´a prediktor, krok (b) je korektor. Varianta algoritmu prediktorkorektor uveden´a n´ıˇze pouˇz´ıv´a explicitn´ı Adams˚ uv-Bashforth˚ uv vzorec tˇret´ıho ˇra´du (7.4.5) jako prediktor. V korektoru se pak vykon´av´a jedin´e iteraˇcn´ı zpˇresnˇen´ı. S ohledem na struˇcn´y z´apisu algoritmu pouˇzijeme symbol pˇriˇrazen´ı :=” pro ” zmˇenu hodnoty promˇenn´e, coˇz umoˇzn ˇ uje vynechat iteraˇcn´ı index k. Dost´av´ame n´asleduj´ıc´ı algoritmus:
- 148 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
y0 = c; y1 , y2 vypoˇcti pomoc´ı jednokrokov´e metody; Pro i = 2, . . . , n − 1 vypoˇcti yi+1 takto: (P ) yi+1 := yi +
h (23fi 12
− 16fi−1 + 5fi−2 ),
(E) fi+1 := f (xi+1 , yi+1), (C) yi+1 := yi +
h (5fi+1 12
+ 8fi − fi−1 ),
(E) fi+1 := f (xi+1 , yi+1).
⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎭
(7.4.11)
Uveden´y algoritmus je metoda tˇr´ıkrokov´ a, dvoubodov´a a tˇret´ıho ˇra´du, pro pro niˇz se pouˇz´ıv´a oznaˇcen´ı PECE. Podobnˇe se pouˇz´ıv´a oznaˇcen´ı PE(CE)k , P(EC)k nebo P(EC)k E, pro varianty algoritmu prediktor-korektor s k vnitˇrn´ımi kroky a s r˚ uznou organizac´ı dalˇs´ıch v´ ypoˇct˚ u. Pˇ r´ıklad 7.4.3. Poˇc´ateˇcn´ı u ´ lohu (7.1.4) ˇreˇste na intervalu −2, 3 pomoc´ı PECE metody (7.4.11) s krokem h = 1. V´ ysledky porovnejte s pˇresn´ym ˇreˇsen´ım. ˇ sen´ı: Poˇc´ateˇcn´ı u Reˇ ´sek vypoˇc´ıt´ame metodou RK4. Jsou to prvn´ı tˇri hodnoty xi a yi z druh´e ˇc´asti tabulky 7.3.1, tj. x0 = −2, x1 = −1, x2 = 0 a y0 = −1, y1 = 1.2508, y2 = 1.3112. Pomoc´ı tˇechto hodnot vypoˇc´ıt´ame f0 = 4.2000, f1 = 0.7498 ypoˇct˚ u podle (7.4.11) uv´ad´ıme pouze poˇrad´ı v jak´em a f2 = −0.2622. U dalˇs´ıch v´ vznikaj´ı jednotliv´e hodnoty: y3 := 1.5588, f 3 := 0.6882, y3 := 1.3607, f 3 := 0.7279, y4 := 3.4178, f 4 := 3.3164, y4 := 3.2496, f 4 := 3.3501, y5 := 8.5908, f 5 := 7.2818, y5 := 8.4564, f 5 := 7.3087. V´ysledky jsou v tabulce 7.4.2.
- 149 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
Tabulka 7.4.2: Algoritmus prediktor-korektor. i
xi
yi
0 −2 1 −1 2 0 3 1 4 2 5 3
−1 1.2508 1.3112 1.3607 3.2496 8.4564
|yi − y(xi )| 0.0000 0.0001 0.0001 0.0302 0.0493 0.0603
Pozn´ amka Z porovn´ an´ım v´ysledk˚ u v tabulk´ ach 7.4.1 a 7.4.2 je vidˇet, ˇze implicitn´ı metoda je podstatnˇe pˇresnˇejˇs´ı neˇz explicitn´ı metoda stejn´eho ˇra´du. Algoritmus prediktorkorektor pˇredstavuje nepˇresnou” implicitn´ı metodu, takˇze tak´e dosaˇzen´ a pˇresnost ” je o nˇeco menˇs´ı.
Kontroln´ı ot´ azky Ot´azka 1. V ˇcem spoˇc´ıv´a hlavn´ı pˇr´ınos v´ıcekrokov´ ych metod oproti metod´am jednokrokov´ ym? Ot´azka 2. Jak se odvozuj´ı Adamsovy-Bashforthovy a Adamsovy-Moultonovy vzorce? Ot´azka 3. Na ˇcem je zaloˇzena konstrukce algoritmu prediktor-korektor?
´ Ulohy k samostatn´ emu ˇreˇsen´ı 1. Diferenci´aln´ı rovnici y = y(1 + sin x) − x3 , y(1) = 0 ˇreˇste na intervalu 1, 2 s krokem h = 0.2 pomoc´ı Adamsovy-Bashforthovy metody ˇctvrt´eho ˇra´du. 2. Vzorec Adamsovy-Moultonovvy metody ˇctvrt´eho ˇra´du pˇrepiˇste na explicitn´ı tvar pro diferenci´aln´ı rovnici z pˇredchoz´ı u ´ lohy a proved’te v´ ypoˇcet. 3. Sestavte algoritmy prediktor korektor PECE a PECEC zaloˇzen´e na Adamsov´ ych-Bashforthov´ ych a Adamsov´ych-Moultonov´ych vzorc´ıch ˇctvrt´eho ˇra´du a vyˇreˇste diferenci´aln´ı rovnici z prvn´ı u ´ lohy.
- 150 -
ˇ ATE ´ CN ˇ ´I ULOHY ´ 7. ODR – POC
Numerick´e metody
V´ ysledky u ´loh k samostatn´ emu ˇreˇsen´ı 1. Poˇc´ateˇcn´ı u ´sek vypoˇc´ıt´ame metodou RK4, pak y4 = −4.6497, y5 = −8.5164. h (−9x3i+1 + 19fi −5fi−1 + fi−2 ))/(8 −3h(1 + sin xi+1 )). 2. Odvod´ıme yi+1 = 8(yi + 24
Pomoc´ı y0 , y1, y2 z RK4 vypoˇc´ıt´ame: y3 = −2.3270, y4 = −4.6615, y5 = −8.5396. 3. Algoritmus PECEC m´a n´asleduj´ıc´ı podobu: y0 = c; y1 , y2 , y3 vypoˇcti pomoc´ı jednokrokov´e metody (RK4); Pro i = 3, . . . , n − 1 vypoˇcti yi+1 takto: (P ) yi+1 := yi +
h (55fi 24
− 59fi−1 + 37fi−2 − 9fi−3 ),
(E) fi+1 := f (xi+1 , yi+1), (C) yi+1 := yi +
h (9fi+1 24
+ 19fi − 5fi−1 + fi−2 ),
(E) fi+1 := f (xi+1 , yi+1), (C) yi+1 := yi +
h (9fi+1 24
+ 19fi − 5fi−1 + fi−2 ).
⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎬ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎭
Algoritmus PECE dostaneme vynech´an´ım posledn´ıho kroku (C). Poˇc´ateˇcn´ı u ´ sek vypoˇc´ıt´ame opˇet metodou RK4. V´ ysledky podle PECE: y4 = −4.6581, y5 = −8.5342; v´ ysledky podle PECEC: y4 = −4.6594, y5 = −8.5360.
Shrnut´ı lekce Uk´azali jsme princip numerick´eho ˇreˇsen´ı poˇc´ateˇcn´ıch u ´ loh pro obyˇcejn´e diferenci´aln´ı rovnice (prvn´ıho ˇra´du). Metody tohoto typu lze nal´ezt ve standardn´ıch knihovn´ach poˇc´ıtaˇcov´ ych program˚ u. Popisovan´a problematika je pomˇernˇe obs´ahl´a a zahrnuje napˇr´ıklad ˇr´ızen´ı dosaˇzen´e pˇresnosti nebo speci´aln´ı metody pro diferenci´aln´ı rovnice, jejichˇz ˇreˇsen´ı je citliv´e na zaokrouhlovac´ı chyby. ´ Ulohy zapsan´e pomoc´ı diferenci´aln´ıch rovnic (r˚ uzn´ych typ˚ u nejen ODR) se vyskytuj´ı velice ˇcasto pˇri modelov´an´ı fyzik´aln´ıch nebo technick´ych u ´ loh. Jejich ˇreˇsen´ı na poˇc´ıtaˇci je atraktivn´ı oblast´ı v´ yzkumu, kter´ y v posledn´ıch desetilet´ıch proch´az´ı bouˇrliv´ ym v´ yvojem.
- 151 -
LITERATURA
Numerick´e metody
Literatura [1] Fiedler M. Speci´aln´ı matice a jejich pouˇzit´ı v numerick´e matematice. SNTL, Praha, 1981. [2] M´ıka S.: Numerick´e metody algebry. SNTL, Praha, 1985. [3] Pˇrikryl P. Numerick´e metody matematick´e anal´ yzy. SNTL, Praha, 1988. [4] Ralston A. Z´aklady numerick´e matematiky. Academia, Praha, 1978. [5] S¨ ulli E., Mayers D. An introduction to numerical analysis. Cambridge University Press, Cambridge, 2003. (anglicky) [6] Van Loan Ch. F. Introduction to scientific computing. Prentice Hall, NJ, 1999. (anglicky) [7] Vit´asek E. Numerick´e metody. SNTL, 1987.
- 152 -