Aplikovaná matematika a fyzikáln´ı výpocty

Transkript

Aplikovaná matematika a fyzikáln´ı výpocty
Aplikovaná matematika a fyzikálnı́ výpočty
Poznámky k přednášce
Jan Stebel
9. prosince 2015
Obsah
1 Typy a zdroje numerických chyb
2 Základnı́ pojmy z lineárnı́ algebry
2.1 Vektorové prostory . . . . . . . . . . . . . .
2.2 Matice . . . . . . . . . . . . . . . . . . . . .
2.2.1 Leslieho populačnı́ model . . . . . . .
2.3 Soustavy lineárnı́ch rovnic . . . . . . . . . .
2.4 Metody pro řešenı́ soustav lineárnı́ch rovnic
2.4.1 Gaussova eliminace . . . . . . . . . .
2.4.2 Iteračnı́ metody . . . . . . . . . . . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Aproximace a interpolace funkcı́
3.1 Úlohy nejmenšı́ch čtverců . . . . . . . . . . . . . .
3.1.1 Lineárnı́ regrese . . . . . . . . . . . . . . . .
3.1.2 Nelineárnı́ metoda nejmenšı́ch čtverců (NLS)
3.2 Interpolace . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Po částech lineárnı́ interpolace . . . . . . . .
3.2.2 Lagrangeova interpolace . . . . . . . . . . .
3.2.3 Hermiteova polynomiálnı́ interpolace . . . .
3.2.4 Interpolace kubickým splinem . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
10
11
13
13
13
.
.
.
.
.
.
.
.
14
15
17
17
18
19
19
20
21
4 Numerický výpočet integrálu
22
4.1 Newton-Cotesovy vzorce . . . . . . . . . . . . . . . . . . . . . 23
4.2 Gaussova kvadratura . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 Výpočet integrálů se singularitami . . . . . . . . . . . . . . . . 25
1
5 Numerické řešenı́ nelineárnı́ch rovnic
5.1 Princip iteračnı́ch metod . . . . . . . . . . .
5.2 Metoda prostých iteracı́ pro rovnici g(x) = x
5.3 Metoda půlenı́ intervalu . . . . . . . . . . .
5.4 Newtonova metoda (metoda tečen) . . . . .
5.5 Srovnánı́ . . . . . . . . . . . . . . . . . . . .
5.6 Metoda sečen . . . . . . . . . . . . . . . . .
5.7 Newtonova-Raphsonova metoda . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
26
26
27
28
29
30
31
6 Obyčejné diferenciálnı́ rovnice
6.1 Rovnice a soustavy prvnı́ho řádu . . . . . .
6.2 Rovnice vyššı́ch řádů . . . . . . . . . . . . .
6.3 Řešenı́ vybraných typů ODR . . . . . . . . .
6.4 Aplikace . . . . . . . . . . . . . . . . . . . .
6.4.1 Lineárnı́ oscilátor . . . . . . . . . . .
6.4.2 Logistická rovnice . . . . . . . . . . .
6.4.3 Kinetika enzymatických reakcı́ . . . .
6.4.4 Lotkův-Volterrův model dravec-kořist
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
33
34
35
37
37
38
38
39
7 Numerické metody pro obyčejné diferenciálnı́ rovnice
39
7.1 Základnı́ numerické metody . . . . . . . . . . . . . . . . . . . 40
7.2 Analýza numerických metod . . . . . . . . . . . . . . . . . . . 41
1
Typy a zdroje numerických chyb
Mnoho praktických problémů se dá převést na nějakou matematickou úlohu
(např. soustavu rovnic, hledánı́ kořenů polynomu a pod.). Ne všechny matematické úlohy však majı́ analytické řešenı́, tedy takové, které dává exaktnı́
odpověd’ (např. jako čı́slo nebo funkce). Analytické řešenı́ může být přı́liš
obtı́žné nebo zbytečné počı́tat přesně.
Přı́klad. Vı́me, že Eulerova konstanta má přibližnou hodnotu e = 2.718.
Tato hodnota je důležitá pro výpočet funkce ex , která se vyskytuje v mnoha
vzorcı́ch a aplikacı́ch. Málokdy ovšem potřebujeme znát jejı́ přesnou hodnotu,
stačı́ nám obvykle prvnı́ch několik cifer v jejı́m desetinném rozvoji. Přibližnou
hodnotu čı́sla e lze zı́skat napřı́klad částečným součtem řady
N
∞
X
X
1
1
≈
n! n=0 n!
n=0
pro dostatečně velké N .
2
(1)
Numerické metody se zabývajı́ výpočtem přibližného řešenı́ v přiměřeném
čase s použitı́m dostupných prostředků. Jedná se obvykle o iteračnı́ proces—
opakuje se, dokud nenı́ dosaženo požadovaného kritéria (přesnost, tolerance,
počet iteracı́ apod.)
Při použitı́ numerických metod je důležité vědět, jaké (a jak velké) mohou
vzniknout chyby. Pokud bude celková chyba pod naši rozlišovacı́ schopnost,
jejı́ přı́tomnost nám nevadı́.
Numerická analýza je matematická disciplı́na zabývajı́cı́ se studiem efektivity metod, tj. zda daná metoda konverguje k přesnému řešenı́, jak rychle,
za jakých omezenı́.
Chyby způsobené člověkem se někdy dajı́ eliminovat. Jedná se typicky
o chybu nebo nepřesnost ve vstupnı́ch datech (neznámé materiálové koeficienty, kinetické konstanty a pod.), použitı́ chybného vzorce nebo o chyby v
počı́tačovém programu.
Numerické chyby naproti tomu nelze odstranit, ale lze je mı́t pod kontrolou. Rozlišujeme chyby:
• zaokrouhlovacı́: důsledek omezeného počtu platných cifer v počı́tačové
reprezentaci čı́sel
• diskretizačnı́: důsledek aproximace nebo zanedbánı́ v numerické metodě
Přı́klad. S pomocı́ rovnice (1) a N = 4 zı́skáme přibližnou hodnotu čı́sla e:
e≈1+
1
1
1
1
+ + + = 2.7083.
1! 2! 3! 4!
V počı́tači nebo na kalkulačce bychom tuto hodnotu reprezentovali např. čı́slem:
2.70833333.
Tato hodnota v sobě obsahuje jednak chybu diskretizačnı́ (důsledkem zanedbánı́
sčı́tanců v nekonečné řadě):
.
2.7083 − e = −0, 009948495
a jednak chybu zaokrouhlovacı́
2.70833333 − 2.7083 = −0.000000003.
Zaokrouhlovacı́ chyba je tedy oproti diskretizačnı́ chybě zanedbatelná.
3
Počı́tačová reprezentace čı́sel. Počı́tače převádějı́ veškeré informace na
posloupnosti nul a jedniček. Elementárnı́ datová jednotka, nabývajı́cı́ hodnoty 0 nebo 1, se nazývá bit.
• Celá čı́sla reprezentujeme jako n-tici bitů (obvykle 16, 32 nebo 64 bitů):
Např. pomocı́ 16 bitů lze reprezentovat čı́sla 0...216 − 1 = 65535. Aby
bylo možné pracovat i se zápornými čı́sly, od výsledné hodnoty se odečte
215 , takže 16bitová celá čı́sla mohou být v rozsahu
−215 = −32768...32767 = 215 − 1.
• Reálná čı́sla reprezentujeme pomocı́ trojice (znaménko s, exponent k a
mantisa d): (−1)s ×d×2k . Rozlišujeme jednoduchou a dvojitou přesnost
(32, resp. 64 bitů). U dvojité přesnosti je rezervováno 52 bitů pro mantisu, 11 bitů pro exponent a 1 bit pro znaménko. Jelikož 211 = 2048,
exponenty mohou být v rozsahu −1024...1024, a tedy absolutnı́ velikost
.
reprezentovaných čı́sel může být řádově max. 21024 = 1.798 × 10308 . Z
.
čı́sla 252 pak lze odvodit počet platných cifer: 2−52 = 2.2 × 10−16 , tedy
u dvojité přesnosti máme max. 16 platných cifer. Čı́slo 2−52 se označuje
jako strojová přesnost a značı́ se symbolem ε.
Přı́klad. Velké zaokrouhlovacı́ chyby vznikajı́ sčı́tánı́m velkého a malého čı́sla
nebo odčı́tánı́m dvou podobných čı́sel.
• V dvojité přesnosti dostaneme:
1e10 + 1e − 10 = 1e10
1.00000000000000123 − 1 = 1e − 15
• Kvadratická rovnice x2 + 49.99x − 0.5 = 0 má kořeny x1 = −50 a
x2 = 0.01. Pokud bychom rovnici řešili s přesnostı́ na 3 platné cifry,
dostali bychom:
(
√
−50,
2500
−50
±
50
−50
±
.
=
=
x1,2 =
2
2
0.
Mı́ry chyb At’ už majı́ chyby jakýkoliv původ, je vhodné je kvantifikovat.
Necht’ x značı́ přesnou hodnotu nějaké veličiny a x0 je přibližná hodnota
zı́skaná např. numerickou metodou. Absolutnı́ chyba je definována jako
|x0 − x|.
4
Z absolutnı́ chyby ovšem nenı́ patrné, jak je velká ve srovnánı́ se samotnou
hodnotou x. Proto se zavádı́ také relativnı́ chyba:
|x0 − x|
.
|x|
V praxi ovšem neznáme hodnotu x, proto se např. v iteračnı́ch procesech
počı́tá relativnı́ chyba pomocı́ po sobě jdoucı́ch iteracı́:
|xi+1 − xi |
.
|xi+1 |
Přı́klad. Mnoho numerických metod je založeno na Taylorově rozvoji funkce:
f (x + h) = f (x) + hf 0 (x) +
h2 00
hn
f (x) + . . . + f (n) (x) + Rn ,
2!
n!
kde zbytek Rn lze vyjádřit např. vztahem
Rn =
hn+1 (n+1)
f
(ξ),
(n + 1)!
kde ξ ∈ (x, x + h), resp. ξ ∈ (x + h, x) (je-li h < 0). Pokud je f (n+1) omezená
v okolı́ x, pak platı́:
Rn = O(hn+1 ),
tedy existujı́ konstanty C > 0 a h0 > 0 takové, že
|Rn | ≤ Chn+1
∀h ∈ (0, h0 ).
Přı́klad. Výpočet e−x , x > 0 pomocı́ Taylorova rozvoje v bodě 0:
ex = 1 − x +
x2 x3
−
+ ...
2!
3!
Počı́táme-li tento součet v počı́tačové aritmetice, pak při každém sčı́tánı́ vznikne
zaokrouhlovacı́ chyba, tj. teoreticky při sečtenı́ celé řady dostaneme chybu
ε.1 + εx + ε
x2
x3
+ ε + . . . = εex .
2!
3!
Relativnı́ zaokrouhlovacı́ chyba rovna
εex
= εe2x .
e−x
.
Použı́váme-li dvojitou přesnost (ε = 2.2 × 10−16 ), pak pro x = 18 bude relativnı́ zaokrouhlovacı́ chyba cca. 96 % (pro menšı́ x to bude ještě horšı́)!
5
Naproti tomu při výpočtu ex sčı́tánı́m Taylorovy řady vznikne relativnı́ zaokrouhlovacı́ chyba
εex
= ε.
ex
Pro záporné exponenty se tedy tento postup nehodı́. Drobnou modifikacı́ dostaneme následujı́cı́ algoritmus, který je již numericky stabilnı́:
e−x =
1
1
=
2
x
x
e
1 + x + 2! +
x3
3!
+ ...
,
Se zaokrouhlovacı́mi chybami bude výsledek
1
e−x
,
=
ex ± εe−x
1±ε
relativnı́ chyba tedy bude O(ε).
Přı́klad. Numerický výpočet derivace. Z Taylorova rozvoje lze odvodit např.
tyto diferenčnı́ vzorce:
• dopředná diference:
f 0 (x) =
f (x + h) − f (x)
+ O(h),
h
f 0 (x) =
f (x) − f (x − h)
+ O(h),
h
• zpětná diference:
• centrálnı́ diference:
f 0 (x) =
f (x + h) − f (x − h)
+ O(h2 ).
2h
Např. derivace funkce f (x) = x1 v bodě x = 1 je f 0 (1) = −1. Pro různé volby
kroku h dostaneme následujı́cı́ hodnoty relativnı́ chyby:
h
dopředná
zpětná
centrálnı́
0.1
0.05
0.025
9.1%
4.8%
2.4%
11.1% 5.3%
2.6%
1% 0.25% 0.0625%
Je tedy vidět jednak, že centrálnı́ diference je zdaleka nejpřesnějšı́, ale také, že
při polovičnı́m kroku se chyby zmenšı́ cca. 2x (u dopředné a zpětné diference),
resp. 4x (u centrálnı́ diference), což odpovı́dá teoretickému odhadu (O(h),
resp. O(h2 )).
6
2
Základnı́ pojmy z lineárnı́ algebry
2.1
Vektorové prostory
Vektorový prostor je neprázdná množina V , pro jejı́ž prvky (vektory) jsou
definovány operace ”násobenı́ reálným čı́slem (skalárem)”a ”sčı́tánı́ vektorů”.
Tyto operace musı́ navı́c mı́t jisté vlastnosti (komutativnı́, asociativnı́ a distributivnı́ zákony). Vektorový prostor také musı́ obsahovat nulový prvek.
Přı́klady vektorových prostorů
• R, R2 , Rn s obvyklým sčı́tánı́m vektorů a násobenı́m reálným čı́slem
• orientované úsečky v R3
• triviálnı́ prostor {0}
• prostor funkcı́, prostor polynomů, prostor polynomů stupně ≤ n
Podprostor vektorového prostoru V je taková množina W , která je podmnožinou
V a zároveň W je uzavřená vzhledem ke sčı́tánı́ a násobenı́ skalárem, tj.
(i) pro každé x, y ∈ W je x + y ∈ W ,
(ii) pro každé x ∈ W a α ∈ R je αx ∈ W .
Lineárnı́ kombinace vektorů x1 , x2 , . . . , xn je vektor
α1 x 1 + α2 x 2 + . . . + αn x n ,
kde α1 , α2 , . . . , αn jsou nějaká reálná čı́sla. Těmto čı́slům řı́káme koeficienty
lineárnı́ kombinace. Triviálnı́ lineárnı́ kombinace vektorů x1 , x2 , . . . , xn je
taková lineárnı́ kombinace, která má všechny koeficienty nulové. Netriviálnı́
lineárnı́ kombinace je taková, že alespoň jeden jejı́ koeficient je nenulový.
Přı́klady
• Triviálnı́ lineárnı́ kombinace je vždy rovna nulovému vektoru.
• Výraz 2(1, 0) + 2(0, 2) + (−1)(2, 4) je netriviálnı́ lineárnı́ kombinace
vektorů (1, 0), (0, 2) a (2, 4). Povšimněme si však, že tato lineárnı́ kombinace je rovna nulovému vektoru.
7
Konečnou množinu vektorů x1 , . . . , xn nazýváme lineárně závislou, pokud
existuje netriviálnı́ lineárnı́ kombinace těchto vektorů, která je rovna nulovému vektoru. Stručně řı́káme, že vektory x1 , . . . , xn jsou lineárně závislé.
Množina vektorů x1 , . . . , xn se nazývá lineárně nezávislá, pokud nenı́ lineárně
závislá. Lineárnı́ (ne)závislost lze zavést také pro nekonečné množiny vektorů:
Množina je lineárně závislá, pokud v nı́ existuje konečně mnoho vektorů, které
jsou lineárně závislé.
Přı́klady
• Nulový vektor a jakákoliv množina obsahujı́cı́ nulový vektor jsou lineárně
závislé, nebot’ 1.0 je netriviálnı́ lineárnı́ kombinace, která je rovna 0.
• Funkce cos(2x), cos2 x a 1 jsou lineárně závislé, nebot’
cos(2x) − 2 cos2 x + 1 = 0 ∀x ∈ R.
Lineárnı́ obal konečné množiny vektorů je množina všech lineárnı́ch kombinacı́ těchto vektorů. Lineárnı́ obal nekonečné množiny je sjednocenı́ lineárnı́ch
obalů všech jejı́ch konečných podmnožin. Lineárnı́ obal množiny M značı́me
hM i.
Báze vektorového prostoru V je lineárně nezávislá podmnožina B ⊂ V ,
pro kterou platı́ hBi = V . Každý vektor tedy lze napsat (jednoznačně) jako
lineárnı́ kombinaci prvků báze. Koeficientům této lineárnı́ kombinace řı́káme
souřadnice vektoru v bázi. Každý vektorový prostor má bázi a všechny jeho
báze majı́ stejný počet prvků nebo jsou nekonečné.
Dimenze vektorového prostoru V je počet prvků báze tohoto prostoru.
Označujeme ji symbolem dim V .
2.2
Matice
(Reálná) matice typu (m, n) je

a1,1 a1,2
 a2,1 a2,2

A=

am,1 am,2
symbol

. . . a1,n
. . . a2,n 

j=1,...,n
 = (aij )i=1,...,m ,
..

.
. . . am,n
kde pro i = 1, . . . , m a j = 1, . . . , n jsou aij reálná čı́sla (nazývajı́ se prvky
matice A). Matice stejného typu sčı́táme a násobı́me reálnými konstantami
8
po složkách. Nulová matice O je matice, která má všechny prvky nulové.
Matici typu (n, n) nazýváme čtvercovou maticı́. Množina všech reálných
matic typu (m, n) tvořı́ vektorový prostor a značı́me ji Rm×n .
Matice A ∈ Rm×n se nazývá
• hornı́ trojúhelnı́ková, pokud pro každé i = 1, . . . , m a j = 1, . . . , i−1
platı́: ai,j = 0,
• dolnı́ trojúhelnı́ková, pokud pro každé i = 1, . . . , m a j = i+1, . . . , n
platı́: ai,j = 0,
• diagonálnı́, pokud je hornı́ i dolnı́ trojúhelnı́ková.
• transponovaná matice k matici B = (bi,j ) ∈ Rn×m , jestliže bi,j = aj,i ,
i = 1, . . . , n, j = 1, . . . , m. Značı́me B = A> .
0
0 0
0 0 0
!
0 0
0
!
0 0
0
0
0 0
0 0 0
!
Obrázek 1: Hornı́ trojúhelnı́ková, dolnı́ trojúhelnı́ková a diagonálnı́ matice.
Hodnost matice A značı́me rank(A) a definujeme jako (maximálnı́) počet
lineárně nezávislých řádků matice A. Pro každou matici platı́, že rank(A> ) =
rank(A), což znamená, že hodnost matice je rovna také počtu lineárně nezávislých
sloupců.
Součinem AB matic A ∈ Rm×n a B ∈ Rn×p je matice C ∈ Rm×p , jejı́ž
prvky ci,j , i ∈ {1, . . . , m}, j ∈ {1, . . . , p}, jsou dány vzorcem
ci,j =
n
X
ai,k bk,j = ai,1 b1,j + ai,2 b2,j + . . . = ai,n bn,j .
k=1
Poznámka: Součin matic nenı́ komutativnı́, tj. obecně AB 6= BA.
Čtvercovou matici I = (ei,j ) ∈ Rn×n nazýváme jednotkovou maticı́, pokud
pro jejı́ prvky platı́: ei,j = 0 pro i 6= j a ei,j = 1 pro i = j.
Matici B ∈ Rn×n nazveme inverznı́ maticı́ k matici A ∈ Rn×n , pokud
platı́
AB = I = BA.
9
Tuto matici značı́me symbolem B = A−1 . Pokud existuje A−1 , pak matici A
nazýváme regulárnı́. V opačném přı́padě se A nazývá singulárnı́ matice.
Determinant matice A = (ai,j ) ∈ Rn×n je čı́slo
X
det A =
(sgn π)a1,i1 a2,i2 · · · an,in ,
π=(i1 ,i2 ,...,in )
kde π značı́ permutaci n prvků a sgn π jejı́ znaménko. V uvedeném vzorci se
sčı́tá přes všechny permutace n prvků, tj. jedná se o n! sčı́tanců. Determinant
je nulový právě tehdy, když matice je singulárnı́.
Čı́slo λ ∈ C se nazývá vlastnı́m čı́slem matice A ∈ Cn×n , jestliže existuje
nenulový vektor u ∈ Cn takový, že
Au = λu.
Vektor u se pak nazývá vlastnı́ vektor matice A přı́slušný vlastnı́mu čı́slu
λ. Všechna vlastnı́ čı́sla matice A tvořı́ jejı́ spektrum, které se značı́ σ(A).
Čı́slo λ je vlastnı́m čı́slem A právě tehdy, má-li soustava (A − λI) netriviálnı́ řešenı́, tj. právě tehdy, je-li A − λI singulárnı́, což je ekvivalentnı́
podmı́nce det(λI − A) = 0. Polynom χA (λ) := det(λI − A) se nazývá charakteristický polynom matice A. Čı́slo λ je tedy vlastnı́m čı́slem A, je-li
kořenem χA . Poznamenejme, že polynom s reálnými koeficienty může mı́t
komplexnı́ kořeny, a reálná matice může proto mı́t komplexnı́ vlastnı́ čı́sla. Jeli ovšem reálná matice symetrická, pak jsou všechna jejı́ vlastnı́ čı́sla reálná.
Matice a lineárnı́ zobrazenı́. Matici A ∈ Rm×n si lze představit jako
objekt, který libovolnému vektoru v ∈ Rn jednoznačně přiřadı́ vektor w =
Av ∈ Rm . A tedy reprezentuje zobrazenı́ z Rn do Rm . Protože platı́ vztahy
A(u + v) = Au + Av a A(αu) = α(Au), jedná se o zobrazenı́ lineárnı́.
Napřı́klad tzv.rotačnı́ matice
cos θ sin θ
− sin θ cos θ
otočı́ vektor v ∈ R2 o úhel θ ve směru hodinových ručiček.
2.2.1
Leslieho populačnı́ model
Použitı́ matic a vlastnı́ch čı́sel demonstrujeme na následujı́cı́m přı́kladu. Uvažujme
časový vývoj populace samiček nějakého živočišného druhu, u nějž je sledován
10
počet jedinců v určitých věkových skupinách. Řekněme, že vektor pn ∈ RK
obsahuje početnost věkových skupin [0, τ ), [τ, 2τ ), . . . , [(K − 1)τ, ∞) v čase
nτ . Přı́růstek populace v čase (n + 1)τ bude dán jednak stárnutı́m, tj.
n
pn+1
i+1 = si pi , i = 1, . . . , K − 1,
kde si ≥ 0 je pravděpodobnost přežitı́ i-té věkové skupiny, a jednak reprodukcı́:
pn+1
= f1 pn1 + f2 pn2 + · · · + fK pnK .
1
Zde fi ≥ 0 značı́ plodnost (mı́ru reprodukce) i-té věkové skupiny. Tyto vztahy
lze zapsat maticově:


f1 f2 . . . fK−1 fK  
 n+1 
n
 s1 0 . . .
p1
0
0

 p1
 ..   0 s2 . . .
 . 
0
0
  ..  ,
 . =


.
.
.
.
..
..  pn
 .. .. . . .
pn+1
K
K
0 0 0
sk
0
nebo také zkráceně
pn+1 = Lpn .
Matice L se nazývá Leslieho matice a má tu vlastnost, že jejı́ největšı́ vlastnı́
čı́slo je jednoduché a kladné. Označı́me-li toto vlastnı́ čı́slo λ a přı́slušný
vlastnı́ vektor v, pak pro n → ∞ platı́:
PK 0
pi
v.
pn ≈ eλn Pi=1
K
i=1 vi
Populace tedy exponenciálně roste (λ > 1), stagnuje (λ = 1) nebo exponenciálně vymı́rá (λ < 1), přičemž asymptoticky se rozloženı́ věkových skupin
blı́žı́ poměrně vektoru v.
2.3
Soustavy lineárnı́ch rovnic
V této kapitole ztotožnı́me vektory z Rn s maticemi typu (n, 1), tj. a ∈ Rn
znamená totéž jako a ∈ Rn×1 .
Maticovou rovnost Ax = b, kde A ∈ Rm×n , x = (x1 , . . . , xn )> ∈ Rn
a b = (b1 , . . . , bm ) ∈ Rm , nazýváme soustavou m lineárnı́ch rovnic o
n neznámých. Matici A nazýváme maticı́ soustavy, vektor b nazýváme
vektorem pravých stran a vektor x řešenı́m soustavy. Připı́šeme-li k
matici soustavy do dalšı́ho sloupce vektor b (pro přehlednost oddělený svislou
čarou), dostáváme matici (A|b) ∈ Rm×(n+1) , kterou nazýváme rozšı́řenou
maticı́ soustavy.
11
Věta 2.1 (Frobeniova). Soustava Ax = b má řešenı́ právě tehdy, když
rank(A) = rank(A|b),
tj. když hodnost matice soustavy se rovná hodnosti rozšı́řené matice soustavy.
Existuje-li v matici b aspoň jeden prvek nenulový, řı́káme, že soustava
Ax = b je nehomogennı́. Jsou-li všechny prvky v matici b nulové, nazýváme
soustavu rovnic homogennı́ a zapisujeme ji takto:
Ax = 0.
Množina M0 všech řešenı́ homogennı́ soustavy Ax = 0 s n neznámými tvořı́
podprostor vektorového prostoru Rn .
Libovolné řešenı́ v ∈ Rn nehomogennı́ soustavy lineárnı́ch rovnic Ax = b o n
neznámých se nazývá partikulárnı́ řešenı́ této soustavy. Pokud zaměnı́me
matici b za nulovou matici stejného typu, dostáváme homogennı́ soustavu
Ax = O, kterou nazýváme přidruženou homogennı́ soustavou k soustavě Ax = b.
Věta 2.2.
1. Necht’ v je partikulárnı́ řešenı́ nehomogennı́ soustavy Ax =
b a u je libovolné řešenı́ přidružené homogennı́ soustavy Ax = 0. Pak
v + u je také řešenı́m soustavy Ax = b.
2. Necht’ v a w jsou dvě partikulárnı́ řešenı́ nehomogennı́ soustavy Ax =
b. Pak v − w je řešenı́m přidružené homogennı́ soustavy Ax = 0.
Věta 2.3. Necht’ v je partikulárnı́ řešenı́ soustavy Ax = b a M0 je vektorový prostor všech řešenı́ přidružené homogennı́ soustavy Ax = 0. Pak pro
množinu M všech řešenı́ soustavy Ax = b platı́:
M = {v + u; u ∈ M0 }.
Věta 2.4 (Cramerovo pravidlo). Necht’ A je čtvercová regulárnı́ matice. Pak
pro i-tou složku řešenı́ soustavy Ax = b platı́:
αi =
det Bi
,
det A
kde matice Bi je shodná s A až na i-tý sloupec, který je zaměněn za sloupec
pravých stran.
12
2.4
Metody pro řešenı́ soustav lineárnı́ch rovnic
Nynı́ uvedeme několik postupů, které se běžně použı́vajı́ při počı́tačovém
řešenı́ soustav. Tyto metody se dajı́ rozdělit na přı́mé (např. Gaussova eliminace, LU rozklad, QR rozklad, singulárnı́ rozklad) a iteračnı́ (např. klasické
iteračnı́ metody – Jacobiova, Gauss-Seidelova, metody Krylovových podprostorů – m. sdružených gradientů, m. GMRES, m. BiCG).
2.4.1
Gaussova eliminace
Řešenı́ soustavy lineárnı́ch rovnic Gaussovou eliminačnı́ metodou spočı́vá v
převedenı́ na jednoduššı́ soustavu, která má stejné řešenı́, pomocı́ operacı́:
• prohozenı́ rovnic,
• násobenı́ rovnice nenulovým čı́slem,
• přičtenı́ libovolného násobku nějaké rovnice k jiné rovnici.
Postup znázornı́me schematicky pomocı́ rozšı́řené matice soustavy:
1. Přı́mý chod:
neznámé
v ”levém!dolnı́m trojúhelnı́ku”
! postupně eliminujeme
!
!
∼
0
∼
0
0
0
∼
0 0
0 0
0
0 0
0 0 0
2. Zpětný chod:
neznámé
v ”pravém
! postupně eliminujeme
!
!
! hornı́m trojúhelnı́ku”
0
0
0 0
0 0 0
∼
0
0
0 0
0
0 0 0
0 0
∼
0
0 0
0 0
0 0 0
0
0 0 0
∼
0
0 0
0 0
0
0 0 0
Gaussova eliminace je univerzálnı́ metoda, kterou lze použı́t pro libovolnou
regulárnı́ matici. Pro velké matice algoritmus vykoná O(n3 ) násobenı́ čı́sel,
což pro velké n může být limitujı́cı́ faktor. Dalšı́ nevýhodou Gaussovy eliminace je, že výpočet musı́ proběhnout celý, při předčasném ukončenı́ tedy
nelze zı́skat žádnou informaci o celém řešenı́.
2.4.2
Iteračnı́ metody
Principiálnı́ odlišnost iteračnı́ch metod od metod přı́mých spočı́vá v možnosti
ukončit výpočet, jakmile je dosaženo požadované přesnosti. Vstupem je kromě
matice A ∈ Rn×n a vektoru b ∈ Rn také počátečnı́ odhad x0 ∈ Rn , tolerance
τ > 0 a přı́padně maximálnı́ počet iteracı́ M . Iteračnı́ metoda pak generuje
13
posloupnost vektorů x1 , x2 , ... do té doby, než je dosaženo zastavovacı́ho
kritéria, např.:
kb − Axk k
< τ nebo k = M.
kbk
Klasické iteračnı́ metody se použı́vajı́ spı́še jako pomocné algoritmy, nebot’
obecně konvergujı́ poměrně pomalu. Metody Krylovových podprostorů majı́
společnou vlastnost, totiž že (v přesné aritmetice) naleznou přesné řešenı́ po
max. n iteracı́ch. Rychlost konvergence (poklesu chyby) závisı́ obecně na čı́sle
podmı́něnosti matice A, které je definováno výrazem
κ(A) =
|λ1 |
.
λ1 ,λ2 ∈σ(A) |λ2 |
max
Zmı́nı́me vlastnosti třı́ z těchto metod:
• Metoda sdružených gradientů (CG) je určena pro symetrické pozitivně definitnı́ matice1 . Je pamět’ově nenáročná, nebot’ v průběhu celého
výpočtu si ukládá pouze 4 vektory. Při každé iteraci se provádı́ jedno
násobenı́ maticı́ A, jinak nenı́ potřeba celou matici držet v paměti.
• Zobecněná metoda minimálnı́ch reziduı́ (GMRES) je určena pro obecné
regulárnı́ matice. Na rozdı́l od CG generuje při každé iteraci dalšı́ pomocný vektor, jejı́ pamět’ová náročnost tedy roste lineárně s počtem
iteracı́. Z praktických důvodů se proto použı́vá restartovaná metoda
GMRES, při které se v paměti udržuje pouze poslednı́ch l vektorů.
• Metoda bikonjugovaných gradientů (BiCG) funguje také pro libovolnou regulárnı́ matici a má konstantnı́ pamět’ovou náročnost (srovnatelnou s CG). Nenı́ ovšem zaručena jejı́ konvergence, může totiž dojı́t
k předčasnému zastavenı́. V tom přı́padě je nutné bud’ zvolit jiný
počátečnı́ odhad nebo použı́t jinou metodu.
3
Aproximace a interpolace funkcı́
V této kapitole se budeme zabývat různými způsoby, jak zı́skat funkci ze
sady dat. Budeme tedy hledat funkci určitého typu (lineárnı́, polynomiálnı́ a
1
Matice A je pozitivně definitnı́, pokud pro každý nenulový vektor v ∈ Rn platı́
v · Av > 0.
14
pod.), jejı́ž graf procházı́ několika zadanými body nebo se od těchto bodů co
nejméně odchyluje.
Pro začátek ještě upřesnı́me použı́vané pojmy:
• Interpolace je přibližné určenı́ hodnoty funkce v bodě, který ležı́ uvnitř
intervalu (nebo obecněji množiny), na němž jsou zadány hodnoty.
• Extrapolace znamená určenı́ hodnoty funkce vně intervalu (množiny),
na kterém jsou zadány hodnoty.
• Aproximacı́ se rozumı́ nalezenı́ funkce, která je v nějakém smyslu blı́zká
zadaným bodům, ale nemusı́ těmito body procházet.
3.1
Úlohy nejmenšı́ch čtverců
V této kapitole se budeme zabývat soustavami lineárnı́ch rovnic, které obecně
nemajı́ jednoznačné řešenı́. Pro matici A ∈ Rn×m a pravou stranu b ∈ Rn
hledáme vektor x ∈ Rm tak, aby
Ax ≈ b
v jistém smyslu.
Je-li m < n, pak odpovı́dajı́cı́ soustava má vı́ce rovnic než neznámých
a nazývá se přeurčená. Pro takové soustavy často neexistuje žádné řešenı́.
V přı́padě, že m > n, řı́káme, že soustava je nedourčená, a obvykle má
nekonečně mnoho řešenı́.
Cı́lem metody nejmenšı́ch čtverců je nalézt vektor x, který minimalizuje
součet kvadrátů odchylek:
n
X
(bi − (Ax)i )2 = (b − Ax) · (b − Ax).
i=1
Nutná podmı́nka na minimum—nulová derivace podle x—pak vede na soustavu rovnic
A> (Ax − b) = 0.
Motivacı́ pro úlohy nejmenšı́ch čtverců může být také jejich fyzikálnı́
význam. Pokud b reprezentuje naměřená nebo jinak zı́skaná data, pak téměř
jistě tato data obsahujı́ nějakou chybu. Cı́lem pak je nalézt co nejmenšı́ změnu
f pravé strany (reprezentujı́cı́ chybu v datech) tak, aby x bylo řešenı́m soustavy
Ax = b + f .
Požadavek minimalizovat normu kf k pak vede k definici následujı́cı́ úlohy.
15
Definice. Necht’ A ∈ Rn×m a b ∈ Rn . Problém nejmenšı́ch čtverců (LS) je
úloha nalézt x ∈ Rm takové, aby byla minimálnı́
kf k za podmı́nky Ax = b + f .
Zkratka LS pocházı́ z anglického least squares — minimalizuje se zde euklidovská norma, tj. odmocnina ze součtu kvadrátů prvků rezidua f = Ax −
b. Poznamenejme ještě, že lze také uvažovat tzv. úplný problém nejmenšı́ch
čtverců, kde předpokládáme, že chyba je obsažena také v koeficientech matice
A a hledáme tedy korekce E a f s minimálnı́mi normami tak, aby
(A + E)x = b + f .
Úplným problémem nejmenšı́ch čtverců se však zde nebudeme zabývat.
Připomeňme nynı́ Frobeniovu větu, z nı́ž plyne, že soustava Ax = b má
řešenı́ právě tehdy, když rank(A) = rank(()A|b), což lze interpretovat tak,
že vektor b je lineárnı́ kombinacı́ sloupců matice A. Zároveň platı́, že sloupce
matice A tvořı́ bázi množiny
R(A) := {Ay; y ∈ Rm }.
Soustava je tedy řešitelná tehdy (a jen tehdy), když b ∈ R(A). V obecném
přı́padě je třeba uvažovat ortogonálnı́ projekci b|R(A) vektoru b na množinu
R(A).
Věta 3.1. Necht’ A ∈ Rn×m a b ∈ Rn . Pak problém nejmenšı́ch čtverců má
právě jedno řešenı́ x ∈ Rm , které má minimálnı́ normu kxk. Toto řešenı́ je
dáno vztahy
Ax = b|R(A) ,
x ∈ R(A> ).
Vlastnost x ∈ R(A> ) znamená, že x je lineárnı́ kombinace řádkových
vektorů matice A. Pro řešenı́ problému LS se často použı́vá tzv. soustava
normálnı́ch rovnic.
Věta 3.2. Necht’ A ∈ Rn×m a b ∈ Rn . Pak x ∈ Rm je řešenı́ problému LS
právě tehdy, když je řešenı́m soustavy normálnı́ch rovnic
A> Ax = A> b.
Pozn.: Má-li A plnou sloupcovou hodnost, pak je matice A> A regulárnı́
a platı́:
x = (A> A)−1 A> b = A† b,
kde A† je tzv. pseudoinverze A. Vztah x = A† b má platnost i tehdy, když
A nemá plnou sloupcovou hodnost.
Dále zmı́nı́me nejčastějšı́ aplikaci úloh nejmenšı́ch čtverců.
16
3.1.1
Lineárnı́ regrese
Předpokládejme, že jsou dány dvojice čı́sel (x1 , y1 ), . . . , (xn , yn ). Vı́me-li, že
mezi veličinami x a y je lineárnı́ závislost, pak řešı́me úlohu nalezenı́ čı́sel
a, b ∈ R tak, aby zadané dvojice čı́sel ležely co nejblı́že přı́mky y = ax + b.
V ideálnı́m přı́padě tedy a, b řešı́ soustavu


 
y1 = ax1 + b
x1 1 y1
 .. ..  a
 .. 
..
neboli  . . 
=  . .
.
b
xn 1
yn
yn = axn + b,
Tuto soustavu lze řešit ve smyslu nejmenšı́ch čtverců, tj. pomocı́ soustavy
normálnı́ch rovnic, která má tvar
P 2 P P
xi
xi y i
a
P xi
P
=
xi
n
yi
b
(ve všech sumách sčı́táme přes i = 1, . . . , n). Jejı́m řešenı́m je dvojice
P P
P 2P
P
P P
yi − xi xi yi
xi
n xi yi − xi yi
P
P
P
P
, b=
.
a=
n x2i − ( xi )2
n x2i − ( xi )2
Obecněji je možnéPuvažovat tzv. polynomiálnı́ regresi, kdy hledáme polynomiálnı́ funkci y = pk=0 ak xk , která ležı́ nejblı́že zadaným bodům (xi , yi ),
i = 1, . . . , n.
3.1.2
Nelineárnı́ metoda nejmenšı́ch čtverců (NLS)
Metoda LS předpokládá lineárnı́ vztah mezi daty {xi } a {yi }. Toto omezenı́
lze odstranit—hledáme pak obecně nelineárnı́ funkci f (x, β), která má opět
minimalizovat součet kvadrátů odchylek od zadaných dat:
n
X
i=1
(yi − f (xi , β))2 .
Vektor β zde představuje neznámé parametry, na nichž funkce f může záviset
komplikovaným (nelineárnı́m) způsobem.
Nelineárnı́ metoda LS úlohu nalezenı́ optimálnı́ho β převádı́ na iteračnı́
proces, při kterém se postupně zpřesňuje počátečnı́ odhad vektoru. V každém
kroce tohoto procesu se funkce f nahradı́ funkcı́, která na β závisı́ lineárně:
Je-li dáno β, pak lze provést následujı́cı́ aproximaci:
X ∂f
f (x, β) ≈ f (x, β) +
(x, β) · (βj − β j ),
∂β
j
j
17
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
0.0
0.2
0.4
0.6
0.8
1.0
Obrázek 2: Nelineárnı́ metoda nejmenšı́ch čtverců, f (x, β1 , β2 ) = |x + β1 |β2 .
x
f (x)
x0
x1
x2
x3
1.0 1.5 2.5 3.5
0.5 2.25 0.75 1.5
y0
y1
y2
y3
Tabulka 1: Přı́klad tabulky dat pro interpolaci.
kde výraz napravo od symbolu ”≈”je lineárnı́ vzhledem k prvkům vektoru
β. Iteračnı́ proces pak můžeme definovat následovně:
1. Zvolı́me β 0 .
2. Použijeme LS na linearizovanou funkci (s β := β 0 ).
3. Zı́skáme tak nový vektor β 1 .
4. Opět použijeme LS, tentokrát na funkci linearizovanou v bodě β := β 1 .
5. Opakujeme postup do té doby, než se β ustálı́.
Poznamenejme, že úspěšnost procesu závisı́ na tom, jak dobře bylo zvoleno
β 0 . Pokud by totiž β 0 bylo přı́liš daleko od optimálnı́ hodnoty, může se stát,
že cyklus nezkonverguje.
3.2
Interpolace
Necht’ jsou dány body (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), napřı́klad jako v tabulce 1. Body xi , i = 0, . . . , n nemusı́ být rozmı́stěny rovnoměrně, budeme
18
však předpokládat, že jsou uspořádány vzestupně, tj. xi < xi+1 . Našı́m cı́lem
je nalézt vhodnou funkci f tak, aby splňovala
f (x0 ) = y0 ,
f (x1 ) = y1 ,
...
f (xn ) = yn .
(2)
Podle toho, jaký zvolı́me druh funkce, mluvı́me o různých typech interpolace.
3.2.1
Po částech lineárnı́ interpolace
Funkci f můžeme zvolit tak, aby byla lineárnı́ na každém úseku [xi , xi+1 ],
i = 0, . . . , n − 1. Pro x ∈ [xi , xi+1 ] tedy definujeme
f (x) =
x − xi
xi+1 − x
yi+1 +
yi ,
xi+1 − xi
xi+1 − xi
(3)
viz např. obrázek 3. Tato funkce je velice jednoduchá, má však nevýhodu, že
v bodech xi nenı́ hladká (nelze v nich sestrojit tečnu).
3.0
2.5
2.0
1.5
1.0
0.5
0.0
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Obrázek 3: Po částech lineárnı́ interpolace dat z tabulky 1.
3.2.2
Lagrangeova interpolace
Jiná možnost volby interpolačnı́ funkce je polynom Pn stupně n. Lagrange
odvodil postup pro výpočet tohoto polynomu:
Pn (x) = y0 L0 (x) + y1 L1 (x) + . . . + yn Ln (x) =
n
X
yi Li (x),
i=0
XX
(x − x0 )(x − x1 ) . . . (x − xi−1 )
(x−Xx
X
i )(x − xi+1 ) . . . (x − xn )
X
Li (x) =
.
XX
XX
(xi − x0 )(xi − x1 ) . . . (xi − xi−1 )
(x
xX
i−
i )(xi − xi+1 ) . . . (xi − xn )
19
Napřı́klad pro data z tabulky 1 dostaneme následujı́cı́ Lagrangeův interpolačnı́ polynom (viz obr. 4):
(x − 1.5)(x − 2.5)(x − 3.5)
(1 − 1.5)(1 − 2.5)(1 − 3.5)
(x − 1)(x − 2.5)(x − 3.5)
+ 2.25
(1.5 − 1)(1.5 − 2.5)(1.5 − 3.5)
(x − 1)(x − 1.5)(x − 3.5)
+ 0.75
(2.5 − 1)(2.5 − 1.5)(2.5 − 3.5)
(x − 1)(x − 1.5)(x − 2.5)
+ 1.5
(3.5 − 1)(3.5 − 1.5)(3.5 − 2.5)
107 3 49 2 6157
235
=
x − x +
x−
.
60
4
240
16
P3 (x) = 0.5
3.0
2.5
2.0
1.5
1.0
0.5
0.0
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Obrázek 4: Lagrangeův interpolačnı́ polynom pro data z tabulky 1.
Pro některá data, zejména pokud neodpovı́dajı́ polynomiálnı́ funkci, Lagrangeova interpolace nenı́ vhodná, viz přı́klad na obrázku 6.
3.2.3
Hermiteova polynomiálnı́ interpolace
Pro přı́pady, kdy jsou k dispozici nejen hodnoty, ale i derivace ve stejných
bodech, může být vhodná Hermiteova interpolace. Předpokládejme tedy, že
jsou zadána data (xi , yi , yi0 ), i = 0, . . . , n, např. jako v tabulce 2.
Hermiteův interpolačnı́ polynom je polynom P2n+1 stupně 2n + 1, který
splňuje
0
P2n+1 (xi ) = yi , P2n+1
(xi ) = yi0 , i = 0, . . . , n.
20
i
xi
yi
yi0
0
1
2
3
1.0 1.5 2.5 3.5
0.5 2.25 0.75 1.5
1
0
-0.5 0.5
Tabulka 2: Data pro Hermiteovu interpolaci.
Těmito podmı́nkami je P2n+1 určen jednoznačně. Existuje obecný postup, jak
tento polynom vypočı́tat, nebudeme jej zde však uvádět. Pro data z tabulky
2 má Hermiteův polynom stupeň 7 a jeho graf je znázorněn na obrázku 5.
3.0
2.5
2.0
1.5
1.0
0.5
0.0
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Obrázek 5: Hermiteova interpolace.
3.2.4
Interpolace kubickým splinem
Lagrangeova a Hermiteova metoda majı́ mimo jiné jednu nepřı́jemnou vlastnost, totiž že změna 1 hodnoty způsobı́ nutnost přepočı́tat celý interpolačnı́
polynom. Navı́c při vysokém počtu zadaných hodnot roste neúměrně stupeň
polynomu a tı́m roste i vliv zaokrouhlovacı́ch chyb při počı́tačovém řešenı́.
Tyto nevýhody odstraňujı́ tzv. kubické spliny.
Kubický spline je funkce y(x) s těmito vlastnostmi:
• procházı́ zadanými body (xi , yi ), i = 0, . . . , n
• na každém intervalu (xi , xi+1 ) je y polynom 3. stupně (kubická funkce)
• v každém vnitřnı́m bodě xi majı́ obě kubické funkce stejnou derivaci
(tečnu) a druhou derivaci (křivost)
21
2.0
2.0
n=5
n=11
1.5
1.5
1.0
1.0
0.5
0.5
0.0
0.0
0.5
0.5
1.0
2.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
n=7
2.0
1.0
2.0
1.5
1.0
0.5
0.0
0.5
1.0
Obrázek 6: Interpolace nehladkých dat. Vlevo: Lagrangeova interpolace,
vpravo: kubický spline.
Tyto vlastnosti představujı́ 4n − 2 podmı́nek pro 4n koeficientů. Pro jednoznačné určenı́ kubického splinu je třeba přidat 2 dodatečné podmı́nky v
krajnı́ch bodech. Typicky se volı́ např. následujı́cı́ podmı́nky:
a) nulová křivost
b) konstantnı́ křivost na [x0 , x1 ] a [xn−1 , xn ]
c) lineárnı́ extrapolace křivosti
Výpočet koeficientů kubického splinu pak lze realizovat poměrně efektivně.
Interpolace splinem je vhodná pro širokou škálu úloh, včetně nespojitých
nebo nehladkých dat (viz obr. 6).
4
Numerický výpočet integrálu
V této kapitole uvedeme způsoby, jak lze počı́tat určitý integrál
Z b
I=
f (x) dx.
a
Připomeňme, že analyticky lze spočı́tat jen některé typy integrálů a že postupy se velmi lišı́ v závislosti na tvaru funkce f . Pokud je výpočet nemožný,
přı́liš obtı́žný nebo neefektivnı́, použı́vajı́ se přibližné metody výpočtu integrálu, tzv. numerické kvadratury. Budeme předpokládat, že funkce f je na
22
1.5
2.0
intervalu [a, b] spojitá. Numerická kvadratura aproximuje hodnotu integrálu
výrazem
N
X
I≈
w i fi ,
(4)
i=0
kde wi ≥ 0 jsou kvadraturnı́ váhy, fi := f (xi ) a xi jsou kvadraturnı́ body.
Předpokládáme, že body xi jsou uspořádány vzestupně a platı́
a = x0 < x1 < . . . < xN = b.
Vzorec (4) může vzniknout např. když funkci f nahradı́me nějakou jejı́ interpolantou.
Kvadraturnı́ vzorce dělı́me na uzavřené (w0 > 0, wN > 0) a otevřené
(w0 = wN = 0). Tzv. Newton-Cotesovy vzorce použı́vajı́ rovnoměrné dělenı́
intervalu, tj. x1 − x0 = x2 − x1 = . . . = xN − xN −1 . Mezi jiné často použı́vané
patřı́ Gaussovy kvadratury, které majı́ tu vlastnost, že při daném počtu kvadraturnı́ch bodů dávajı́ přesný výsledek pro polynomy nejvyššı́ho možného
stupně. Kvadratury lze kombinovat a skládat, tedy nejprve rozdělit interval
[a, b] na menšı́ intervaly, na nichž použijeme kvadraturu a výsledky sečteme.
Pro numerickou kvadraturu definujeme chybu
N
X
E = I −
wi f (xi ) .
i=0
Zřejmě platı́, že kvadratura je přesná, pokud E = 0. Řekneme, že kvadratura
má řád přesnosti p, jestliže je přesná pro každý polynom stupně nejvýše p.
4.1
Newton-Cotesovy vzorce
V této části předpokládáme, že body xi , i = 0, . . . , N jsou rozmı́stěny s
krokem h = (a − b)/N , tj. xi = a + ih. V kvadraturnı́ch vzorcı́ch budeme
také použı́vat body xi+ 1 := xi + h2 .
2
Obdélnı́kové pravidlo je nejjednoduššı́ kvadratura, která nahrazuje funkci
f jejı́ konstantnı́ interpolantou: N = 1, w0 = 0, w1/2 = h, w1 = 0. Tedy
I ≈ hf 1 .
2
Z Taylorova rozvoje lze odvodit odhad chyby:
h3
E≤
max |f 00 (x)| =: O(h3 f 00 ).
24 x∈[a,b]
Protože každý polynom stupně 1 splňuje f 00 ≡ 0, má obdélnı́kové pravidlo
řád přesnosti 1.
23
Složené obdélnı́kové pravidlo vznikne opakovaným použitı́m předchozı́ho
pravidla na intervalech (x0 , x1 ), (x1 , x2 ), . . . , (xN −1 , xN ). Dostaneme:
I ≈ h(f1/2 + f3/2 + · · · + fN −3/2 + fN −1/2 ),
E≤
N h3
max |f 00 (x)| = O(h2 f 00 ).
24 x∈[a,b]
Lichoběžnı́kové pravidlo spočı́vá v nahrazenı́ funkce f lineárnı́ interpolantou určenou hodnotami v krajnı́ch bodech intervalu: N = 1, w0 = w1 = h2 ,
I≈
h
(f0 + f1 ).
2
Stejně jako u obdélnı́kového pravidla dostaneme odhad chyby
E = O(h3 f 00 )
a pravidlo má řád přesnosti 1.
Složené lichoběžnı́kové pravidlo má tvar
1
1
I ≈ h( f0 + f1 + f2 + · · · + fN −2 + fN −1 + fN ),
2
2
E = O(h2 f 00 ).
Adaptivnı́ lichoběžnı́kové pravidlo postupně zjemňuje dělenı́ intervalu
[a, b], přičemž již spočtené hodnoty se využijı́ v dalšı́m výpočtu. Vycházı́ z
rekurentnı́ho vzorce:
1
b−a
Ik = Ik−1 + k Σk ,
2
2
kde Ik je intergrál spočtený složeným lichoběžnı́kovým pravidlem s N = 2k a
Σk := f1 + f3 + · · · + f2k −1 .
Simpsonovo pravidlo nahrazuje funkci f kvadratickou interpolantou, N =
2, w0 = w2 = h3 , w1 = 43 h:
I≈
h
(f0 + 4f1 + f2 ),
3
E = O(h5 f (4) ),
jedná se tedy o pravidlo 3. řádu přesnosti.
24
4.2
Gaussova kvadratura
Gaussovy kvadraturnı́ vzorce jsou navrženy tak, aby pro daný počet dělı́cı́ch
bodů dosahovaly co nejvyššı́ho řádu přesnosti. Platı́, že při použitı́ n kvadraturnı́ch bodů je řád Gaussovy kvadratury roven 2n−1. Např. nejjednoduššı́m
Gaussovým vzorcem (n = 1) je obdélnı́kové pravidlo. Pro n = 2 má Gaussova
kvadratura následujı́cı́ tvar:
b − a√
a+b
a − b√
a+b
b−a
f
3+
+f
3+
.
I≈
2
2
2
2
2
Pravidla vyššı́ch řádů se dajı́ nalézt v literatuře.
4.3
Výpočet integrálů se singularitami
Pokud funkce f nenı́ spojitá a omezená, pak lze v některých přı́padech použı́t
jeden z následujı́cı́ch postupů:
• Má-li f v krajnı́m bodě konečnou limitu, např.
Z 1
sin x
dx,
x
0
použijeme obdélnı́kové pravidlo.
• Je-li krajnı́m bodem ±∞, provedeme substituci, např. t = 1/x, a
použijeme otevřené pravidlo:
Z 1/a
Z b
1
f (x)dx =
f (1/t) dt.
2
a
1/b t
• Má-li f v krajnı́m bodě singularitu, provedeme vhodnou substituci.
Např. pokud f (x) ≈ (x − a)−γ , γ ∈ [0, 1), zvolı́me substituci t =
(x − a)1−γ :
Z
a
5
b
1
f (x)dx =
1−γ
Z
(b−a)1−γ
0
γ
t 1−γ f t1/(1−γ) + a dt.
Numerické řešenı́ nelineárnı́ch rovnic
V mnoha oborech se setkáme s úlohami, které lze formulovat pomocı́ rovnice
nebo soustavy rovnic typu
f (x) = 0 nebo g(x) = x.
25
Pro některé speciálnı́ typy funkcı́ f (např. lineárnı́ nebo kvadratické funkce)
existujı́ metody pro vyřešenı́ dané rovnice. Je-li ovšem f , resp. g obecná
nelineárnı́ funkce, pak neexistuje univerzálnı́ postup k nalezenı́ řešenı́ x̄. V
tomto textu zmı́nı́me některé metody, které naleznou přibližnou hodnotu
řešenı́ x̄ na základě iteračnı́ho schématu. Budeme se zabývat nelineárnı́mi
funkcemi f a g, o nichž se předpokládá, že jsou spojité. Je-li nějaká funkce f
spojité na nějakém intervalu I, budeme to značit zápisem f ∈ C(I). Podobně
ma-li f na I spojité všechny derivace až do řádu k, pı́šeme f ∈ C k (I).
5.1
Princip iteračnı́ch metod
Iteračnı́ metody pro řešenı́ nelineárnı́ch rovnic generujı́ posloupnost čı́sel
{xk }, k = 0, 1, 2, . . ., na základě nějakého (pokud možno jednoduchého) pravidla. Obvykle je třeba zvolit počátečnı́ aproximaci x0 .
Definice. Necht’ {xk } je posloupnost čı́sel generovaná numerickou metodou
pro řešenı́ nelineárnı́ rovnice typu f (x) = 0 nebo g(x) = x a necht’ x̄ je
přesné řešenı́ této rovnice. Řekneme, že daná metoda je konvergentnı́, pokud
limk→∞ xk = x̄.
V praxi ovšem výpočet musı́me v určitém okamžiku ukončit, nejlépe když
dosáhneme požadované přesnosti, nebo když je jasné, že metoda nekonverguje. Důležitá je proto volba zastavovacı́ho kritéria, které určuje, zda prvek xk je již dostatečně blı́zko přesnému řešenı́ x̄. Obvykle se volı́ některé z
následujı́cı́ch kritériı́:
xk −xk−1 • xk−1 < ε
• |f (xk )| < ε
Symbol ε > 0 je volitelný parametr určujı́cı́ požadovanou přesnost zı́skané
aproximace.
5.2
Metoda prostých iteracı́ pro rovnici g(x) = x
Metoda prostých iteracı́ generuje posloupnost hodnot opakovaným dosazovánı́m do iteračnı́ funkce g. Algoritmus je následujı́cı́:
1. Zvolı́me x0 ∈ (a, b), ε > 0 a M > 0.
2. Pro k = 0, 1, 2, ..., M :
• spočteme xk+1 := g(xk ).
26
g(x)
a=0
x0
x1
x2 x3 b
Obrázek 7: Metoda prostých iteracı́.
• Pokud |xk − xk−1 | < ε, výpočet ukončı́me.
Konvergence metody závisı́ jak na vlastnostech funkce g tak na volbě počátečnı́
aproximace. Následujı́cı́ věta zaručuje existenci a jednoznačnost pevného
bodu.
Věta 5.1. Necht’ g : [a, b] → [a, b] je spojitá funkce na intervalu [a, b]. Pak
g má na tomto intervalu pevný bod ξ, tj. g(ξ) = ξ. Pokud navı́c existuje
q ∈ [0, 1) takové, že
|g(x) − g(y)| ≤ q|x − y|
∀x, y ∈ [a, b],
(5)
pak g má na [a, b] právě jeden pevný bod. Pro libovolné x0 ∈ [a, b] posloupnost
{xk }, xk := g(xk−1 ) konverguje k pevnému bodu ξ a platı́:
|xk − ξ| ≤ q k |x0 − ξ|.
Poznámka: Nerovnost (5) (nazývá se také Lipschitzova podmı́nka) je
splněna napřı́klad tehdy, když g má na intervalu [a, b] derivaci a platı́ |g 0 (x)| ≤
q < 1 ∀x ∈ [a, b].
5.3
Metoda půlenı́ intervalu
Metoda půlenı́ intervalu (nebo také metoda bisekce) vycházı́ z následujı́cı́ho
teoretického výsledku.
Věta 5.2 (Bolzanova). Necht’ funkce f : [a, b] → R je spojitá na intervalu [a, b] a necht’ f nabývá v koncových bodech intervalu hodnot s opačnými
znaménky, tj. f (a)f (b) < 0. Potom uvnitř tohoto intervalu existuje alespoň
jeden bod x̄ takový, že f (x̄) = 0. V přı́padě, že prvnı́ derivace funkce f má na
tomto intervalu konstantnı́ znaménko, pak se zde nacházı́ právě jeden takový
bod.
27
f (x)
f (x)
f (x)
x2
a
x0
b a
x0 = b
x1
a = x1
x0 = b
Obrázek 8: Prvnı́ 3 kroky metody půlenı́ intervalu.
Algoritmus metody je následujı́cı́:
1. Zvolı́me a, b tak, aby f (a)f (b) < 0, ε > 0 a M > 0.
2. Pro k = 0, 1, 2, . . . , M :
• xk := 12 (a + b)
• Pokud |f (xk )| < ε, pak výpočet skončı́.
• Jinak položı́me a := xk (je-li znaménko f (xk ) stejné jako f (a), tj.
f (xk )f (a) > 0) nebo b := xk (pokud f (xk )f (b) > 0).
Jedná se o poměrně univerzálnı́ a robustnı́ metodu (lze ji použı́t prakticky
pro libovolnou spojitou nelineárnı́ funkci). Jejı́ nevýhodou je velmi pomalá
konvergence.
5.4
Newtonova metoda (metoda tečen)
Tato metoda je určena pro rovnici f (x) = 0 a spočı́vá v nahrazenı́ funkce f
tečnou. Rovnice tečny v bodě xk je
y = f (xk ) + f 0 (xk )(x − xk ).
Definujeme-li xk+1 jako xovou souřadnici průsečı́ku tečny s osou x, dostaneme
0 = f (xk ) + f 0 (xk )(xk+1 − xk ),
a po úpravě
xk+1 = xk −
f (xk )
.
f 0 (xk )
Algoritmus lze souhrnně zapsat následovně:
1. Zvolı́me x0 ∈ (a, b), ε > 0 a M > 0.
28
f (x)
x2
x1 x0
Obrázek 9: Newtonova metoda.
2. Pro k = 0, 1, 2, ..., M :
• spočteme xk+1 := xk −
f (xk )
.
f 0 (xk )
• Pokud |f (xk )| < ε, výpočet ukončı́me.
Newtonova metoda nenı́ obecně konvergentnı́. Platı́ však následujı́cı́ tvrzenı́.
Věta 5.3. Necht’ f je dvakrát spojitě diferencovatelná funkce na intervalu
(a, b) a x̄ ∈ (a, b) je kořen f , tj. f (x̄) = 0. Pokud navı́c f 0 (x̄) 6= 0, pak existuje
δ > 0 takové, že Newtonova metoda konverguje pro libovolné x0 ∈ (x̄−δ, x̄+δ).
Z věty vyplývá, že metoda konverguje pro dostatečně blı́zkou počátečnı́
aproximaci. Poloměr intervalu konvergence δ závisı́ na vlastnostech funkce f .
5.5
Srovnánı́
Nynı́ demonstrujeme použitı́ výše prezentovaných metod na rovnici
1
x − sin x = , x ∈ [0, 4].
2
Úlohu můžeme zapsat ve tvaru
f (x) := x − sin x −
1
1
= 0 nebo g(x) := + sin x = x.
2
2
Nejprve ověřı́me předpoklady pro použitı́ metod:
• Funkce f je spojitá na intervalu [0, 4], f (0) = − 21 < 0, f (4) = 3.5 −
sin(4) > 0, na intervalu (0, 4) tedy ležı́ kořen a lze použı́t metodu půlenı́
intervalu.
29
• Dále f je dvakrát spojitě diferencovatelná na intervalu (0, 4) jejı́ derivace je nenulová: f 0 (x) = 1 − cos x > 0. Konvergovat tedy bude i
Newtonova, pokud zvolı́me vhodnou počátečnı́ aproximaci.
• Funkce g nesplňuje podmı́nku (5) na celém intervalu [0, 4]. Omezı́me-li
se však na interval [0.5, 2.5], pak pro x z tohoto intervalu je |g 0 (x)| =
| cos x| < cos(0.5) < 1 a g(x) ∈ [0.5, 2.5]. Zde tedy bude konvergovat
metoda prostých iteracı́.
V tabulce 3 je porovnána rychlost konvergence jednotlivých metod. U metody prostých iteracı́ si lze povšimnout, že ačkoliv x0 ∈
/ [0.5, 2.5], po několika
krocı́ch se hodnota xk dostane do požadovaného intervalu a v něm pak již
zůstává.
k
0
1
2
3
4
5
6
7
a
0
0
1
1
1.25
1.375
1.4375
1.46875
b
4
2
2
1.5
1.5
1.5
1.5
1.5
xk
2
1
1.5
1.25
1.375
1.4375
1.46875
1.484375
(a) Půlenı́ intervalu
k
0
1
2
3
4
5
6
7
xk
4
-0.256802
0.246011
0.743537
1.176896
1.423419
1.489160
1.496670
k
0
1
2
3
4
5
6
7
xk
4
1.425804
1.500266
1.497305
1.497300
1.497300
1.497300
1.497300
(b) Prosté iterace (c) Newtonova metoda
Tabulka 3: Srovnánı́ rychlosti konvergence. Tučně jsou uvedeny platné čı́slice
výsledku.
5.6
Metoda sečen
Newtonova metoda ve svém algoritmu potřebuje derivaci funkce f . Může
se ovšem stát, že výpočet derivace je obtı́žný nebo časově náročný. V tom
přı́padě je vhodné derivaci nahradit diferencı́, což je myšlenkou metody sečen:
f 0 (xk ) ≈
f (xk ) − f (xk−1 )
.
xk − xk−1
Na rozdı́l od Newtonovy metody je potřeba na začátku zvolit dvě hodnoty:
x0 a x1 .
1. Zvolı́me x0 , x1 ∈ (a, b), ε > 0 a M > 0.
30
2. Pro k = 1, 2, ..., M :
−xk−1
• spočteme xk+1 := xk − f (xk ) f (xxkk)−f
.
(xk−1 )
• Pokud |f (xk )| < ε, výpočet ukončı́me.
Konvergence metody sečen je zaručena za stejných podmı́nek jako ve Větě 5.3.
5.7
Newtonova-Raphsonova metoda
Newtonovu metodu lze zobecnit také pro řešenı́ soustav nelineárnı́ch rovnic
ve tvaru
f (x) = 0.
Předpokládejme, že f : Rn → Rm , tedy máme soustavu m rovnic pro n
neznámých. Taylorův rozvoj funkce f dává vztah
f (x) ≈ f (xk ) + J(xk )(x − xk ),
kde
 ∂f1
∂x1

J(xk ) =  ...
∂fm
∂x1
...
∂f1
∂xn
...
∂fm
∂xn

..  (x )
.  k
je tzv. Jacobiova matice funkce f . Výsledný vztan pro tzv. NewtonovuRaphsonovu metodu je
xk+1 = xk − [J(xk )]† f (xk ),
kde symbol A† značı́ tzv. zobecněnou inverzi, neboli pseudoinverzi matice A.
V praxi se ovšem mı́sto pseudoinverze řešı́ soustava lineárnı́ch rovnic:
J(xk )r k = f (xk ),
xk+1 = xk − r k .
Pokud je Jacobiova matice obdélnı́ková nebo singulárnı́, hledá se r k ve smyslu
nejmenšı́ch čtverců.
6
Obyčejné diferenciálnı́ rovnice
Fyzikálnı́ zákony bilance stejně jako mnoho procesů v přı́rodnı́ch vědách jsou
matematicky popsány pomocı́ diferenciálnı́ch rovnic. Jejich řešenı́m pak dostaneme popis stavu nebo časového vývoje daného systému při předepsaných
vstupnı́ch datech. V této kapitole nejprve shrneme obecné poznatky z teorie
obyčejných diferenciálnı́ch rovnic a poté se zaměřı́me na některé konkrétnı́
rovnice a jejich interpretaci.
31
Definice. (i) (Obyčejnou) diferenciálnı́ rovnicı́ (ODR) pro funkci
y = y(x) rozumı́me rovnici tvaru
F (x, y, y 0 , y 00 , . . . , y (n) ) = 0,
(6)
kde F je reálná funkce n + 2 proměnných. Řádem ODR (6) nazveme
řád nejvyššı́ derivace funkce y, která se v rovnici (6) vyskytuje.
(ii) Soustava ODR je vztah ve tvaru
F (x, y, y 0 , . . . , y (n) ) = 0,
kde F : R × Rn × · · · × Rn → Rn .
Přı́klad.
(i) Vztah
y 00 = −2y 0 − 2y + 2x + 2
(7)
lze ekvivalentně zapsat jako rovnici F (x, y, y 0 , y 00 ) = 0, kde
F (x, y, . . . , y 00 ) := y 00 + 2y 0 + 2y − 2x − 2.
Jedná se proto o obyčejnou diferenciálnı́ rovnici 2. řádu.
(ii) Soustava
y10 = y1 − 2y1 y2 ,
y20 = −y2 − 3y1 y2
(8)
je podle Definice 6 soustavou ODR 1. řádu, nebot’ je ekvivalentnı́ rovnosti F (x, y, y 0 ) = 0, kde
0
0
y1 − y1 + 2y1 y2
y1
y1
0
0
y=
, F (x, y, y ) :=
.
, y =
y20
y20 + y2 + 3y1 y2
y2
Definice.
• Řešenı́m diferenciálnı́ rovnice (6) rozumı́me funkci y definovanou
na nějakém neprázdném otevřeném intervalu I, která má v každém bodě
intervalu I vlastnı́ n-tou derivaci a jejı́ž hodnoty spolu s hodnotami
derivacı́ splňujı́ rovnici (6) v každém bodě intervalu I, tj. pro každé
x ∈ I platı́
F (x, y(x), y 0 (x), . . . , y (n) (x)) = 0.
• Řešenı́ y diferenciálnı́ rovnice (6) je maximálnı́, pokud neexistuje takové řešenı́ z, pro které D(y) $ D(z) a které se na D(y) shoduje s y.
(Symbol D(y) zde značı́ definičnı́ obor funkce y.)
Přı́klad. Derivovánı́m lze ukázat, že pro libovolné α, β ∈ R je funkce
y(x) = x + αe−x sin x + βe−x cos x
řešenı́ diferenciálnı́ rovnice (7) na množině I = R.
32
6.1
Rovnice a soustavy prvnı́ho řádu
Uvažujme rovnici, resp. soustavu rovnic prvnı́ho řádu s počátečnı́ podmı́nkou
y 0 = f (x, y),
y(x0 ) = y 0 .
(9)
Pro tuto úlohu (nazývá se počátečnı́ nebo také Cauchyova úloha) lze stanovit
poměrně obecné podmı́nky zaručujı́cı́ existenci alespoň jednoho nebo právě
jednoho řešenı́:
Věta 6.1 (Peanova). Necht’ I je otevřený interval, H je otevřená množina v
Rn , f : I × Rn → Rn je spojitá na okolı́ bodu (x0 , y0 ) ∈ I × H. Pak existuje
řešenı́ rovnice (9) na nějakém okolı́ bodu x0 .
Peanova věta zaručuje existenci řešenı́ v okolı́ bodu, kde je zadána počátečnı́
podmı́nka. A priori však nenı́ jasné, jak velké toto okolı́ je.
Přı́klad. Počátečnı́ úloha
y 0 = y 2 , y(0) = y0 ∈ R
splňuje předpoklady Peanovy věty, nebot’ funkce f (x, y) := y 2 je spojitá na
množině I × H := R × R a bod (0, y0 ) ležı́ v I × H. Pro dostatečně malé δ
tedy existuje řešenı́ na intervalu (−δ, δ). Ve skutečnosti je řešenı́m funkce
y(x) =
1
y0
1
−x
na intervalu (−∞, y10 ).
Přı́klad. Rovnice
p
y 0 = 2 |y|
(10)
splňuje předpoklady Peanovy věty a má řešenı́ ys (x) = 0 na intervalu (−∞, ∞).
Kromě toho však jsou řešenı́m i funkce
yc+ (x) = (x − c)2 , x ∈ (c, ∞),
yc− (x) = −(x − c)2 , x ∈ (−∞, c), c ∈ R.
Tato tři řešenı́ lze na sebe navazovat, a tak pro každou počátečnı́ podmı́nku
y(x0 ) = y0 existuje nekonečně mnoho řešenı́.
33
Věta 6.2 (Picardova). Necht’ I je otevřený interval, H je otevřená množina
v Rn , f : I × H → Rn je spojitá na nějakém okolı́ bodu (x0 , y 0 ) ∈ I × H
a navı́c splňuje Lipschitzovu podmı́nku vzhledem ke 2. proměnné, tj. existuje
L > 0 takové, že
|f (x, y 1 ) − f (x, y 2 )| ≤ L|y 1 − y 2 |
pro každé x ∈ I a y 1 , y 2 ∈ H. Pak existuje právě jedno řešenı́ úlohy (9) na
nějakém okolı́ bodu x0 .
Lipschitzova podmı́nka je splněna napřı́klad tehdy, když f má omezené
parciálnı́ derivace 1. řádu podle y, tedy když pro každé (x, y) ∈ I × H platı́
∂fi
∂yj (x, y) ≤ L, i, j = 1, . . . , n.
Přı́klad. Soustava (8) splňuje předpoklady Picardovy věty, nebot’ funkce
y1 − 2y1 y2
f (x, y) :=
−y2 − 3y1 y2
je spojitá a vzhledem k y diferencovatelná, přičemž parciálnı́ derivace
∂f1
= 1 − 2y2 ,
∂y1
∂f1
= −2y1 ,
∂y2
∂f2
= −3y2 ,
∂y1
∂f2
= −1 − 3y1
∂y2
jsou omezené, pokud y ležı́ v omezené množině H. Pro každou počátečnı́
podmı́nku tedy bude existovat právě jedno řešenı́.
Přı́klad. Rovnice
(10) nesplňuje předpoklady Picardovy věty, nebot’ funkce
p
f (x, y) := 2 |y| nesplňuje Lipschitzovu podmı́nku: Zvolı́me-li L > 0, pak pro
pro y1 := 0 a y2 := 2/L2 platı́:
√
2 2
2
2
|f (x, 0) − f (x, 2/L )| =
> = L|0 − 2/L2 |.
L
L
To nenı́ překvapenı́m, nebot’ na okolı́ bodu y = 0 má f neomezenou derivaci
vzhledem k y. Proto v bodech, kde řešenı́ nabývá hodnoty y = 0 docházı́ k
větvenı́.
6.2
Rovnice vyššı́ch řádů
Rovnici n-tého řádu
y (n) = f (x, y, y 0 , . . . , y (n−1) )
34
(11)
s počátečnı́ podmı́nkou
y(x0 ) = y0 , y 0 (x0 ) = y1 , . . . , y (n−1) (x0 ) = yn−1
lze převést na soustavu ODR 1. řádu. Zavedeme-li funkce w0 , . . . , wn−1 :
w0 (x) := y(x), w1 (x) := y 0 (x), . . . , wn−1 (x) := y (n−1) (x),
pak je rovnice (11) ekvivalentnı́ se soustavou 1. řádu
w00 = w1 ,
w10 = w2 ,
...
0
wn−2 = wn−1 ,
0
wn−1
= f (x, w0 , . . . , wn−1 ),
neboli

w1
..
.





w0 = 
,
 wn−1 
f (x, w)
w := (w0 , . . . , wn−1 )> .
Transformovaná počátečnı́ podmı́nka má tvar
w(x0 ) = y 0 ,
kde y 0 := (y0 , . . . , yn−1 )> . Vlastnosti ODR 1. řádu tedy lze do jisté mı́ry
aplikovat také na rovnice a soustavy vyššı́ch řádů.
6.3
Řešenı́ vybraných typů ODR
Definice. Rovnice se separovanými proměnnými je rovnice tvaru
y 0 = g(y) · h(x).
(12)
Návod k řešenı́:
• Pokud g(c) = 0, je funkce y(x) = c řešenı́m rovnice.
• Na intervalech, kde g(y) 6= 0 uvažte
R
h(x)dx.
y0
g(y)
= h(x) s následným
R
dy
g(y)
=
• Nutná je diskuse o možnostech navazovánı́ řešenı́ předchozı́ch dvou
typů!
35
Definice. Lineárnı́ ODR prvnı́ho řádu je rovnice tvaru
y 0 + p(x)y = q(x),
(13)
kde p, q jsou spojité funkce na daném intervalu (a, b), a, b ∈ R∗ , a < b
Návod k řešenı́:
• Násobte rovnici výrazem eP (x) , kde P je primitivnı́ funkce k p na (a, b).
• Upravte na levé straně do tvaru derivace součinu.
• Integrujte.
Definice. Lineárnı́ diferenciálnı́ rovnice druhého řádu s konstantnı́mi
koeficienty je rovnice tvaru
Ay 00 + By 0 + Cy = f (x),
(14)
kde A, B, C ∈ R, A 6= 0, a funkce f (x) je spojitá na intervalu (a, b). Pokud
je f identicky nulová na (a, b), nazýváme rovnici (14) homogennı́.
Přı́pad I:
f ≡ 0, rovnice: Ay 00 + By 0 + Cy = 0, obecné řešenı́ yh
Pokud charakteristická rovnice Aλ2 + Bλ + C = 0 má:
1. dva různé reálné kořeny λ1 6= λ2 :
yh (x) = c1 eλ1 x + c2 eλ2 x
2. jeden dvojnásobný reálný kořen λ:
yh (x) = c1 eλx + c2 xeλx
3. dva komplexně sdružené kořeny α ± iβ, β 6= 0:
yh (x) = eαx (c1 cos βx + c2 sin βx)
Přı́pad II:
f 6≡ 0, rovnice: Ay 00 + By 0 + Cy = f (x)
Pro řešenı́ y(x) platı́:
y(x) = yh (x) + yp (x),
kde yh (x) je obecné řešenı́ homogennı́ rovnice (viz předchozı́ přı́pad) a yp (x)
je jedno (jakékoliv), tzv. partikulárnı́ řešenı́ rovnice Ay 00 +By 0 +Cy = f (x).
Některá partikulárnı́ řešenı́ lze uhodnout“ podle tvaru pravé strany.
”
36
• Je-li f (x) = P (x)eαx , kde α ∈ R a P je polynom, potom existuje
polynom Q, st Q = st P , že
1. α 6= λ1 , α 6= λ2 =⇒ yp (x) = Q(x)eαx ,
2. α =
6 λ1 , α = λ2 =⇒ yp (x) = xQ(x)eαx ,
3. α = λ1 = λ2 =⇒ yp (x) = x2 Q(x)eαx .
• Je-li f (x) = eαx (P (x) cos βx + R(x) sin βx), (P , R polynomy), existujı́
polynomy Q, S, stupně nejvýše max(st P, st R), takové, že
1. α + iβ 6= λ1 , α + iβ 6= λ2 =⇒ yp (x) = eαx (Q(x) cos βx +
S(x) sin βx),
2. α + iβ = λ1 , α + iβ 6= λ2 =⇒ yp (x) = xeαx (Q(x) cos βx +
S(x) sin βx),
6.4
6.4.1
Aplikace
Lineárnı́ oscilátor
odpor prostředı́
odpor pružiny
vnějšı́ vlivy
b
k
y 00 = − y 0 − y + f (x)
|{z}
m } |{z}
m
| {z
y. . . odchylka od klidové polohy
m. . . hmotnost závažı́
k. . . tuhost pružiny
b. . . součinitel odporu
y=0
y
37
6.4.2
Logistická rovnice
y 0 = αy (K − y) , y(0) = y0
y. . . hustota populace
α. . . koeficient rychlosti růstu
K. . . maximálnı́ stav populace
1
alpha=2
alpha=0.2
alpha=-0.5
alpha=-2
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
2
4
6
8
10
Průběh řešenı́ logistické rovnice (K = 1).
Řešenı́: y(x) =
K
1+ yK −1 e−αKx
0
6.4.3
Kinetika enzymatických reakcı́
Rovnice pojmenovaná podle L. Michaelise a M. Mentenové popisuje časový
vývoj množstvı́ substrátu, který je spotřebováván při enzymatické reakci.
−
ds
Vmax s
=
,
dt
Km + s
s. . . koncentrace (množstvı́) substrátu
Vmax . . . maximálnı́ rychlost reakce
Km . . . koncentrace, při nı́ž je rychlost reakce 12 Vmax
Vmax
1
2 Vmax
Km
Rychlost reakce v závislosti na koncentraci substrátu.
38
6.4.4
Lotkův-Volterrův model dravec-kořist
y10 = y1 (α − βy2 )
y20 = −y2 (γ − δy1 )
y1 . . . množstvı́ kořisti (králı́cı́)
y2 . . . množstvı́ dravců (lišky)
• soustava rovnic nemá explicitnı́ řešenı́
• lze řešit přibližně nebo studovat kvalitativnı́ vlastnosti řešenı́
• řešenı́ jsou periodická
• rovnovážné řešenı́ (y10 = y20 = 0)
7
Numerické metody pro obyčejné diferenciálnı́
rovnice
V této kapitole se budeme zabývat rovnicı́ 1. řádu s počátečnı́ podmı́nkou
y 0 (x) = f (x, y(x)), x > 0, y(0) = y 0 ,
(15)
kde y a f jsou funkce nabývajı́cı́ skalárnı́ch nebo vektorových hodnot (ve
druhém přı́padě pak mluvı́me o soustavě rovnic). Připomeňme, že do této
kategorie úloh spadajı́ také rovnice vyššı́ch řádů, jestliže provedeme speciálnı́
substituci.
Budeme předpokládat, že f je spojitá na [0, ∞) × Rn a Lipschitzovská
vzhledem k y:
∃L > 0 ∀y 1 , y 2 ∈ Rn ∀x ∈ [0, ∞) : |f (x, y 1 ) − f (x, y 2 )| ≤ L|y 1 − y 2 |.
Za těchto podmı́nek má úloha (15) jediné řešenı́ na nějakém intervalu [0, T ].
Pro některé speciálnı́ typy pravé strany f jsme zmı́nili způsoby analytického (přesného) řešenı́. V obecném přı́padě ale neexistuje univerzálnı́ metoda pro nalezenı́ řešenı́ rovnice (15). Protože v mnoha přı́padech je dostačujı́cı́
znát pouze přibližný průběh řešenı́ y, hrajı́ důležitou roli numerické metody.
Princip numerických metod je následujı́cı́. Zvolı́me dělenı́ 0 = x0 < x1 <
. . . < xN = T intervalu [0, T ]. Pro jednoduchost budeme předpokládat, že
uzly xi jsou rozmı́stěny rovnoměrně, tj. xi = ih, kde h := T /N je krok metody. Přesné řešenı́ aproximujeme diskrétnı́mi hodnotami y i ≈ y(xi ), přičemž
hodnota y 0 je rovna počátečnı́ podmı́nce pro y(0). Po částech lineárnı́ funkci
39
y
y(x)
yNh
y2
y0
y1
0 = x0
x1
x2
xNh
x
Obrázek 10: Numerické řešenı́ ODR.
určenou hodnotami y i pak nazveme přibližným (numerickým) řešenı́m rovnice (15) (viz obrázek 10). Jednotlivé numerické metody se pak lišı́ pouze ve
způsobu, jak ze známých hodnot y 0 , . . . , y k vypočı́tat dalšı́ hodnoty. Rozlišujeme
2 druhy numerických metod:
a) Explicitnı́ l-kroková metoda: K výpočtu y i+1 se použı́vá explicitnı́ vzorec použı́vajı́cı́ hodnoty y i , y i−1 , . . . , y i−l+1 ;
b) Implicitnı́ l-kroková metoda: Pro výpočet y i+1 vyžaduje řešit obecně
nelineárnı́ rovnici závisejı́cı́ na y i+1 , y i , . . . , y i−l+1 .
Zatı́mco tedy u explicitnı́ metody se nová hodnota y i+1 spočte prostým dosazenı́m známých hodnot y i , . . . , y i−l+1 do vzorce, implicitnı́ metoda vyžaduje
pro výpočet y i+1 vyřešenı́ obecně nelineárnı́ rovnice. Implicitnı́ metody jsou
tedy složitějšı́ na implementaci a výpočetně náročnějšı́, majı́ však své výhody,
které zmı́nı́me později.
7.1
Základnı́ numerické metody
Nejjednoduššı́ metoda je založena na Taylorově rozvoji
y(xi+1 ) = y(xi ) + hy 0 (xi ) + O(h2 ).
Připomeňme, že nějaká funkce a(h) splňuje a(h) = O(hp ), pokud existuje
c > 0 takové, že pro h → 0+ je |a(h)| ≤ chp . Z (15) lze nahradit y 0 (xi ) =
f (xi , y(xi )). Zanedbáme-li člen O(h2 ), dostaneme vzorec, který se nazývá
explicitnı́ Eulerova metoda: y i+1 = y i + hf (xi , y i ).
40
Tento vztah lze také zapsat ve tvaru
y i+1 − y i
= f (xi , y i ),
h
odkud vidı́me souvislost s rovnicı́ (15): derivace y 0 (xi ) je zde nahrazena
y
−y
dopřednou diferencı́ i+1h i . Z obdobného rozvoje
y(xi ) = y(xi+1 ) − hy 0 (xi+1 ) + O(h2 ),
vycházı́
Implicitnı́ Eulerova metoda: y i+1 = y i + hf (xi+1 , y i+1 ).
Dalšı́ implicitnı́ jednokrokovou metodou je
Crank-Nicholsonova metoda: y i+1 = y i +
7.2
h
f (xi , y i ) + f (xi+1 , y i+1 ) .
2
Analýza numerických metod
Pro vhodnou volbu numerické metody pro ODR jsou důležité jejı́ vlastnosti.
Zejména nás zajı́má, jak velká je chyba numerického řešenı́ v závislosti na
velikosti kroku h a jak se tato chyba vyvı́jı́ v čase.
V této sekci budeme značit výrazem y(x; a, z) přesné řešenı́ rovnice
y 0 (x) = f (x, y(x)), y(a) = z.
(16)
Funkce y(x; 0, y 0 ) =: y(x) je pak řešenı́ rovnice (15).
Uvažujme nynı́ přibližné řešenı́ zı́skané nějakou numerickou metodou a
reprezentované hodnotami y hi ≈ y(xhi ), kde xhi = ih, i = 0, . . . , Nh := T /h.
Základnı́ otázkou je, zda rozdı́l mezi y hi a y(xhi ) bude pro dostatečně malý
krok h přijatelně malý. To vyjadřuje následujı́cı́ definice
Definice. Globálnı́ chyba numerické metody v bodě xhi je čı́slo
ehi := y(xhi ) − y hi .
Řekneme, že metoda je konvergentnı́, pokud
lim
max
h→0+ i=0,1,...,Nh
|ehi | = 0.
Metoda je konvergentnı́ řádu p, pokud
max |ehi | = O(hp ).
i=0,...,Nh
41
y
y(x) = y(x; 0, y0 )
y(x; xh1 , yh1 )
eh2
δ2h
yh,Nh
yh2
y0
yh1
0 = xh0
xh1
xh2
T = xh,N
xh
Obrázek 11: Globálnı́ a lokálnı́ chyba metody.
Globálnı́ chyba vzniká akumulacı́ chyb z předchozı́ch kroků. Tyto chyby
vzniklé v jednom kroce lze analyzovat samostatně.
Definice. Lokálnı́ chyba metody je výraz
δ hi := y(xhi ; xh,i−1 , y h,i−1 ) − y h,i .
Dalšı́ možnost vyjádřenı́ chyby spočı́vá v dosazenı́ přesného řešenı́ do
rovnice metody. K tomu zavádı́me tzv. diferenčnı́ operátor Lh metody. Pro
explicitnı́ Eulerovu metodu je
[Lh u](x) :=
u(x) − u(x − h)
− f (x − h, u(x − h)),
h
tedy
[Lh u](xhi ) :=
u(xhi ) − u(xh,i−1 )
− f (xh,i−1 , u(xh,i−1 )).
h
Definice. Lokálnı́ diskretizačnı́ chyba metody je
τ hi := τ h (xhi ) = [Lh y](xhi ),
kde y = y( · ; xh,i−1 , y h,i−1 ) je funkce splňujı́cı́ y(xh,i−1 ) = y h,i−1 . Řekneme,
že metoda je konzistentnı́, pokud pro každé x ∈ (0, T ) je
lim |τ h (x)| = 0.
h→0+
Metoda je konzistentnı́ řádu p, pokud pro každé x ∈ (0, T ) je
τ h (x) = O(hp ).
42
Tvrzenı́. Má-li přesné řešenı́ úlohy (16) omezenou druhou derivaci, pak je
explicitnı́ Eulerova metoda konzistentnı́ řádu 1.
Důkaz. Protože y(xh,i−1 ; xh,i−1 , y h,i−1 ) = y h,i−1 , platı́:
δ hi = y(xi ; xi−1 , y h,i−1 ) − y h,i−1 − hf (xi−1 , yh,i−1 ) = hτ hi .
Z Taylorova rozvoje
y(xhi ; . . .) = y(xh,i−1 ; . . .) + hy 0 (xhi ; . . .) +
dostáváme
δ hi =
a tedy
|τ hi | ≤
kde
h2 00
y (ξi ; . . .), ξi ∈ (xh,i−1 , xhi )
2
h2 00
y (ξi ; xh,i−1 , y h,i−1 ),
2
|δih |
h
≤ max y 00 (x; xh,i−1 , y h,i−1 ) = Ch,
h
2 x∈[0,T ]
C :=
1
max |y 00 (x; a, z)|.
a∈[0,T
]
2
n
z∈R
x∈[0,T ]
Dokázali jsme, že explicitnı́ Eulerova metoda je konzistentnı́ 1. řádu.
Definice. Numerická metoda se nazývá stabilnı́, pokud existujı́ kladné konˆ takové, že pro numerické řešenı́ y h s počátečnı́ podmı́nkou y 0
stanty k, ĥ, ∆
a numerické řešenı́ z h s počátečnı́ podmı́nkou y 0 + ∆0 platı́:
|y h,i − z h,i | ≤ k|∆0 |, i = 1, 2, . . . , Nh ,
ˆ
a to pro všechna h ∈ (0, ĥ) a |∆0 | ∈ (0, ∆).
Stabilita numerické metody znamená, že při malé změně počátečnı́ podmı́nky
bude odchylka v numerických řešenı́ch omezená.
Tvrzenı́. Explicitnı́ Eulerova metoda je stabilnı́.
Důkaz. Označme ∆hi := y h,i − z h,i . Pak platı́:
∆hi = ∆hi−1 + h(f (xh,i−1 , y h,i−1 ) − f (xh,i−1 , z h,i−1 )),
a tedy
|∆hi | ≤ |∆hi−1 | + hL|∆hi−1 | = (1 + hL)|∆hi−1 |.
Opakovánı́m poslednı́ úvahy pro i − 1, i − 2, . . . , 1 dostaneme
|∆hi | ≤ (1 + hL)i |∆0 | ≤ ehLi |∆0 | ≤ eLT |∆0 |.
43
(17)
Vidı́me, že ačkoliv je metoda stabilnı́, odchylka v numerických řešenı́ch
způsobená změnou počátečnı́ podmı́nky ∆0 může růst exponenciálně pro
T → +∞.
Definice. Numerická metoda se nazývá absolutně stabilnı́, pokud je stabilnı́
s konstantou k = 1.
Jak je vidět z (17), explicitnı́ Eulerova metoda obecně nenı́ absolutně
stabilnı́. Proto se absolutnı́ stabilita obvykle zkoumá u konkrétnı́ rovnice.
Např. pro lineárnı́ rovnici
y 0 = λy, y(0) = y0
(18)
explicitnı́ Eulerova metoda splňuje
∆hi = (1 + hλ)∆hi−1 = . . . = (1 + hλ)i ∆0 .
Pro λ a h takové, že
|ΦEE (hλ)| ≤ 1, kde ΦEE (z) := 1 + z,
je metoda absolutně stabilnı́. Uvažujeme-li reálné hodnoty λ, pak explicitnı́
Eulerova metoda je absolutně stabilnı́ pro λ < 0 a h ≤ − λ2 , tedy pro dostatečně malý krok h.
Pro implicitnı́ Eulerovu metodu platı́ u rovnice (18):
∆hi
1
∆hi−1 = . . . =
=
1 − hλ
1
1 − hλ
i
∆0
a metoda je absolutně stabilnı́, pokud
|ΦIE (hλ) ≤ 1, kde ΦIE (z) :=
1
,
1−z
tedy bud’ pro λ < 0 a libovolné h nebo pro λ > 0 a h ≤ λ2 .
U Crank-Nicholsonovy metody dostaneme obdobně:
!i
hλ
hλ
1
+
1
+
2
2
∆hi =
∆hi−1 = . . . =
∆0 ,
hλ
hλ
1− 2
1− 2
odkud plyne, že metoda je absolutně stabilnı́ pokud
1 + z2
|ΦCN (hλ)| ≤ 1, kde ΦCN (z) :=
,
1 − z2
44
−1
0
0
1
0
Obrázek 12: Oblast absolutnı́ stability pro explicitnı́ Eulerovu, implicitnı́
Eulerovu a Crank-Nicholsonovu metodu.
tedy pro všechna h > 0 a λ < 0.
Absolutnı́ stabilita je hlavnı́ výhodou implicitnı́ch metod. Lze je proto
s výhodou použı́t u úloh, kde by explicitnı́ metoda vyžadovala přı́liš malý
krok.
Oblast absolutnı́ stability je definována jako množina
{z ∈ C; |Φ(z)| ≤ 1}.
Pro uvažované metody je tato množina zobrazena v komplexnı́ rovině na
obrázku 12.
45

Podobné dokumenty

Sbírka příkladů k předmětu Fyzika a přístrojová - EnviMod

Sbírka příkladů k předmětu Fyzika a přístrojová - EnviMod Při psaní jednotek v odborném textu je nutno dodržovat řadu pravidel, která jsou shrnuta především v ČSN ISO 80000-1. Je však možné se setkat s texty, kde tato pravidla nejsou dodržována, přičemž ...

Více

Iterační metody, úvod do funkcionální analýzy

Iterační metody, úvod do funkcionální analýzy Důsledek: Je-li M0 vektorový prostor všech řešenı́ homogennı́ soustavy lineárnı́ch rovnic A~x “ ~0 s n neznámými, pak dim M0 “ n ´ rank A. Definice 28 Libovolné řešenı́ ~v P Rn nehomoge...

Více

Stieltjesu˚v integra´l (Kurzweilova teorie) Milan Tvrdy´

Stieltjesu˚v integra´l (Kurzweilova teorie) Milan Tvrdy´ Stieltjesově pojednánı́ [60] z let 1894–5, věnovaném souvislostem konvergence řetězových zlomků a problému, jak popsat rozloženı́ hmoty na hmotné úsečce, jsou-li známy všechny moment...

Více

Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti

Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti funkce nutné. Instrukce číslo 1 odpovídá zapsání „1“ místo prázdného slova a ukončení práce. Instrukce 2 až 6 odpovídají pohybu hlavy na konec vstupu a přechodem zpět zpoza konce na poslední znak v...

Více

Dynamika rotor˚u a základn´ı poznatky na jednoduchém systému

Dynamika rotor˚u a základn´ı poznatky na jednoduchém systému I Přı́prava vstupnı́ch dat I Vytvořenı́ výpočtového/matematického modelu (lineárnı́ vs. nelineárnı́) I Řešenı́ matematického modelu — závisı́ na požadovaných výstupech I Modálnı́ an...

Více

Numerické a geometrické modelován´ı

Numerické a geometrické modelován´ı Zápočet Zápočet lze zı́skat za jednu z následujı́cı́ch aktivit: • absolvovánı́ praktických cvičenı́ a splněnı́ podmı́nek (odladěnı́ programu v MATLABu, vytvořenı́ modelu v systému RHIN...

Více

Univerzita Karlova v Praze Matematicko – fyzikální

Univerzita Karlova v Praze Matematicko – fyzikální Definice. Označme WLk2 (Sobolevův) prostor funkcí f : R → C s periodou 2π, pro které existuje f (k−1) a je absolutně spojitá a f (k) ∈ L2 (0, 2π) . Věta 2.3.1. Nechť f ∈ C2π (R). Pak následující tv...

Více

A, P

A, P Jev jistý a jev nemožný Jev, který nastává vždy při realizaci určitého komplexu podmı́nek, budeme označovat jevem jistým a zapisovat pomocı́ symbolu Ω nebo E. Naopak jev, který se nev...

Více