sylabus
DESCRIPTION
Sylabus. V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární úlohy Řešení soustav lineárních rovnic Metoda nejmenších čtverců pro lineární úlohy Sumace obecné a s korekcí - PowerPoint PPT PresentationTRANSCRIPT
Sylabus
V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí:
• Nelineární úlohy– Řešení nelineárních rovnic– Numerická integrace
• Lineární úlohy– Řešení soustav lineárních rovnic– Metoda nejmenších čtverců pro lineární úlohy– Sumace obecné a s korekcí
• Numerické výpočty v C a C++– Optimalizace výrazů, optimalizace při překladu
Řešení soustavy lineárních rovnic
1. Popis problému
2. Iterační metody• Maticové normy + Podmínky ukončení• Konkrétní metody
3. Přímé metody• Gaussova eliminační metoda• Metoda LU rozkladu
Iterační metody
Řešíme soustavu rovnic:Ax = bKde:
Hledáme odhad y x.=> Hledáme tedy takové y, pro které existuje malé
A a b:(A + A)y = b + b
Velikost matice A lze určit pomocí maticové normy.
nnn Rb,RA
Iterační metody - Maticové normy
Euklidovská norma pro x Rn:
2 možná zobecnění pro A Cmn:– Frobeniova norma:
– Spektrární norma:
21
n
1i
2i2
xx
21
i
2
jij2
aA
Iterační metody - Maticové normy II
– Spektrární norma:
kde:
AT je transponovaná matice A(B) je maximální vlastní hodnota matice
B
21
)AA(A T
2
}0)I.Bdet(:max{)B(
Iterační metody - Maticové normy III
Další normy:
Maximální součet sloupce:
Maximální součet řádku:
m
1iij
nj11amaxA
n
1iij
mj1amaxA
Iterační metody – Podmínky ukončení
Řešíme soustavu rovnic: Ax = b
Hledáme odhad y x. Hledáme tedy takové y, pro které existuje malé
A a b: (A + A)y = b + b
Lze použít například následující aproximaci:
Hledáme hodnotu:
nnn Rb,RA
byAA:A
Amin
2
2
Iterační metody – Podmínky ukončení II
Hledáme hodnotu:
Využijeme větu:
Aplikace: Při iterativním výpočtu vektoru x hodnotíme konvergenci metody pomocí výše uvedené hodnoty.
Poznámka: Existuje více metod, jak využít maticové normy ke studiu konvergence.
byAA:A
Amin
2
2
22
2
2
2
yA
AybbyAA:
A
Amin
Iterační metody – seznam metod
Lze použít většina optimalizačních metod (musí být adaptovány pro práci s maticemi), konkrétně:
Nederivační metodyProstá iterace
Metody první derivaceSpádové metody
Metoda konjugovaných gradientů
Metody druhé derivaceNewtonovské a quazi-Newtonovské metody
Nebudeme probírat
všechny – jen
přehled a
zorientování se
Iterační metody – prostá iterace
Řešíme soustavu rovnic: Ax = b
Převedeme soustavu na tvar:X(k+1) = U . X(k) + V, k = 0, 1, … . kde:
U čtvercová matice stupně n, V je vektor dimenze n
(přesná definice U a V záleží na implementaci)
Zvolíme X(0)
Iterujeme až do splnění podmínek ukončení
nnn Rb,RA
Iterační metody – prostá iterace
Řešíme soustavu rovnic: Ax = b
Konkrétní metody prosté iterace:• Jacobiova metoda:
• Gaussova-Saidlova metoda:
• Relaxační metoda SOR:
nnn Rb,RA
Iterační metody - metoda konjugovaných gradientů
Obecně pro metodu konjugovaných gradientů platí:
x(k+1) = x(k) + (k).s(k)
s(k+1) = -g(k+1) + (k).s(k)
Pro práci se soustavou lineárních rovnic platí:g(k) = b – A.x(k)
2
2
)k(
2
2
)1k(
)k(
g
g
)()(
)()()(
..
.kk
kkk
ss
gg
A
Iterační metody - metoda konjugovaných gradientů - příklad
Zadání:
Najděte x* = (x1, x2), aby platilo: A.x* = b, přičemž:
0
0
0
;
1
0
1
;
210
121
012
0xbA
Iterační metody - metoda konjugovaných gradientů – příklad II
Iniciace (k = 0):
g(0) = b; s(0) = -g (0)
První krok (k = 1):
x(1) =
g(1) =
s(1) =
)0(
)0(
Iterační metody - metoda konjugovaných gradientů – příklad II
Iniciace (k = 0):
g(0) = b; s(0) = -g (0)
První krok (k = 1):
x(1) = x(0) + (0).s(0) = (0.5, 0, 0.5)
g(1) = b – A.x(1) = (0,1,0)
s(1) = -g(1) + (0).s(0) = (-0.5, -1, -0,5)
5.0..
.)0()0(
)0()0()0(
ss
gg
A
5.02
2
)0(
2
2
)1(
)0( g
g
Iterační metody - metoda konjugovaných gradientů – příklad III
Druhý krok (k = 2):
x(2) = x(1) + (1).s(1) = (1, 1, 1)
g(2) = b – A.x(2) = (0,0,0)
s(2) = -g(2) + (1).s(1) = (0, 0, 0)
1..
.)1()1(
)1()1()1(
ss
gg
A
02
2
)1(
2
2
)2(
)1( g
g
Gaussova eliminační metoda
Řešíme soustavu rovnic: Ax = bA musí být regulární.
a) Gaussova eliminace:Převedení matice Ax = b na tvar A(n) x = b(n), kde A(n) je horní trojúhelníková maticeSložitost (n3)
b) Zpětný chod:Dopočítání x z rovnice A(n) x = b(n)
Složitost (n2)
nnn Rb,RA
Gaussova eliminace
Řešíme soustavu rovnic: Ax = b
A musí být regulární.
Iniciace:
A(1) := A, b(1) := b
Ukončení:
A(n) x = b(n), A(n) je horní trojúhelníková matice
nnn Rb,RA
Gaussova eliminace 2
k-tý krok metody:
Na začátku k-tého kroku (po k-1 iteracích) máme:
, kde:
A11(k) je horní trojúhelníková matice,
V tomto kroku provádíme následující:
Vynulujeme prvky ležící v k-tém sloupci pod diagonálou.
)k(22
)k(12
)k(11)k(
A0
AAA
)1k()1k()k(11 RA
Gaussova eliminace 3
V k-tém kroku provádíme následující:
Vynulujeme prvky ležící v k-tém sloupci pod diagonálou:
kde:
Tímto krokem tedy získáme: A(k+1) a b(k+1)
)k(kjik
)k(ij
)1k(ij amaa
akk
0
0
n,...,1kjn,...,1ki
)k(kk
)k(ik
ik a
am
)k(kik
)k(i
)1k(i bmbb
Gaussova eliminace 4
Pomocí Gaussovy eliminace tedy získáme soustavu:
A(n) x = b(n),
kde A(n) je horní trojúhelníková matice a lze ji tedy řešit zpětnou substitucí
Složitost metody: (n3)
Srovnání s výpočtem pomocí inverzní matice (!x = b.A-1):• Gaussova eliminace je numericky stabilnější
• Gaussova eliminace je numericky rychlejší
Gaussova eliminace 6
Potenciální problémy GE:
• Při výpočtu může být akk(k) nula
nebo téměř 0
• Při odečítání může dojít ke ztrátě platných cifer, pokud je mij velké.
Příklad:
=>
)k(kk
)k(ik
ik a
am
)k(kjik
)k(ij ama
11
1A
1
)2(
10
1A
Gaussova eliminace 7
Potenciální problémy GE:• Při odečítání může dojít ke ztrátě
platných cifer, pokud je mij velké.
Příklad:
=>
Pro dostatečně malé se ale 1- 1/ zaokrouhlí na -1/.Dostaneme tedy výsledek, který přísluší matici:
)k(kjik
)k(ij ama
11
1A
1
)2(
10
1A
01
1A
Gaussova eliminace - parciální pivoting
Řešením problémů GE je využití parciálního pivotingu:
Na začátku k-tého kroku se prohodí k-tý řádek za r-tý, kde r je určeno vztahem:
tzn. prohodíme k-tý řádek s řádkem, který má v k-tém sloupci největší číslo.
To zaručuje, že činitelé mik budou v absolutní hodnotě menší než 1:
)k(ik
nik
)k(rk amaxa
n,...,1ki1mik
Gaussova eliminace - parciální pivoting 2
Využití parciálního pivotingu řeší i problém ztráty platných cifer při :
Viz příklad:
V prvním kroku se 1. řádek zamění s druhým:
Výsledek:
)k(kjik
)k(ij ama
11
1A
1
11A
10
11A
Gaussova eliminace - úplný parciální
Výběr maximálního prvku neeliminované části matice.
Přehození řádků i sloupců tak, aby se maximální prvek stal pivotem
Z numerického hlediska nepřináší žádné výhody vzhledem k metodě částečného pivotingu
Proto větčinou dáváme přednost parciálnímu pivotingu
Gaussova eliminace - příklad
Řešte Gaussovou eliminační metodou a Gaussovou eliminační meodou s parciálním pivotingem
6
1
5
0
x
8062
2562
11500
0231
Metoda LU rozkladu (1)
Řešíme soustavu rovnic: Ax = b (A musí být regulární)
Matici A lze vyjádřit: A = LU, kde:
L je dolní trojúhelníková matice (s 1 na diagonále)
U je horní trojúhelníková matice
Ax = b => LU x = b
Nejdříve vypočítáme vektor y z rovnice: Ly = b
Potom vektor x z rovnice: Ux = y
Metoda LU rozkladu (2)
Ax = b => LU x = bNejdříve vypočítáme vektor y z rovnice: Ly = bPotom vektor x z rovnice: Ux = y
Význam: Řešení obou soustav (Ly = b a Ux = y) je analogické jako část „zpětný chod“ v rámci Gaussovy eliminační metody. Má složitost (n2) a je numericky stabilní.
Jak získat matice U a L: Rozkladem matice A po řádcích nebo po sloupcích
Metoda LU rozkladu - příklad
1 řádek a 1 sloupec: 1.u11 = 2
1 řádek a 2 sloupec: 1.u12 = 5
1 řádek a 3 sloupec: 1.u13 = 6
2 řádek a 1 sloupec: l21.u11 = 4 => u21 = 2
2 řádek a 2 sloupec: l21.u12 + 1.u22 = 13 => u22 = 3
2 řádek a 3 sloupec: l21.u13 + 1.u23 = 19 => u23 = 7
3 řádek a 1 sloupec: l31.u11 = 6 => l31 = 3
3 řádek a 2 sloupec: l31.u12 + l32.u22 = 27 => l32 = 4
3 řádek a 3 sloupec: l31.u13 + l32.u23 + u33 = 50 => u33 = 4
83
36
13
x
50276
19134
652
A