sylabus

34
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

Upload: marshall-george

Post on 01-Jan-2016

19 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

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

Popis problému

Řešíme soustavu rovnic:

Ax = b

Kde:nnn Rb,RA

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 - Maticové normy IV

Obecné podmínky pro maticové normy:

1.

2.

3.

0A0A,0A

R,A.A

BABA

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

Jacobiova metoda - příklad

1

3

5

x

431

251

136

A

2500,0

6000,0

8333,0

x )1(

0

0

0

x )0(

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

Metoda LU rozkladu – příklad (2)

400

730

652

.

143

012

001

50276

19134

652

A

4

10

13

y

4

10

13

y.

400

730

652

Ly = b =>

Ux = y =>

1

1

1

x

83

36

13

y.

143

012

001