52
Soustavy lineárních rovnic-numerické řešení November 9, 2008 Soustavy lineárních rovnic-numerické řešení 1 / 52

Soustavy lineárních rovnic-numerické re eníhlinena/INM/prednasky/prednaska1_tisk.pdf · Ale Gauss-Seidlova metoda diverguje. Nechť A je symetrická a pozitivně definitní a

  • Upload
    lexuyen

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Soustavy lineárních rovnic-numerické řešení

November 9, 2008

Soustavy lineárních rovnic-numerické řešení 1 / 52

(Systém lin. rovnic)

Systém rovnic

a11x1 + a12x2 + · · ·+ a1nxn = b1

a21x1 + a22x2 + · · ·+ a2nxn = b2

. . . . . . . . . . . . . . .

an1x1 + an2x2 + · · ·+ annxn = bn

nazveme systém n-lineárnych rovnic s n neznámými.

Soustavy lineárních rovnic-numerické řešení 2 / 52

◮ koeficienty systému - aij , i, j = 1, 2, ...,n

◮ matice systému

a11 a12 . . . a1n

a21 a22 . . . a2n

. . . . . . . . . . . .

an1 an2 . . . ann

◮ rozšířená matice systému

a11 a12 . . . a1n

a21 a22 . . . a2n

. . . . . . . . . . . . . . .

an1 an2 . . . ann

b1

b2

. . .

bn

Soustavy lineárních rovnic-numerické řešení 3 / 52

(Matice, opakování)

◮ typy matíc

◮ operace s maticemi

◮ lin. závislost, nezávislost

◮ determinanty

Soustavy lineárních rovnic-numerické řešení 4 / 52

Věta (Základní věta lineární algebry)

Systém lineárních rovnic má řešení ⇐⇒ hodnost matice A jestejná jako hodnost rozšířené matice systému.

Soustavy lineárních rovnic-numerické řešení 5 / 52

(Cramerovo pravidlo)

Ak je matica systému regulární, tak systém má jediné řešení

x = A−1 b a x = D1

D,

D2

D, . . .

Dn

D

Soustavy lineárních rovnic-numerické řešení 6 / 52

Příklad (Cramerovo pravidlo)

Najděte řešení soustavy rovnic:

x1 − 3x2 = 78x1 + x2 = 3

Soustavy lineárních rovnic-numerické řešení 7 / 52

Příklad (Cramerovo pravidlo, řešení)

Soustavu rovnic upravíme na rozš. matici systému:(

1 −3 78 1 3

)

Abychom mohli využít Cramerova pravidla, tak musí býtdeterminant matice nenulový. Výpočet determinantu matice:

D = 1 · 1− (−3) · 8 = 1 + 24 = 25 6= 0

Soustavy lineárních rovnic-numerické řešení 8 / 52

Příklad (Cramerovo pravidlo, pokr.)

Vypočítáme determinant D1, který vznikl nahrazením prvníhosloupce matice soustavy vektorem pravých stran.

D1 =

7 −33 1

= 7 · 1− (−3) · 3 = 7 + 9 = 16.

Můžeme vypočítat kořen x1 soustavy rovnic:

x1 =D1

D=

16

25.

Stejným způsobem vypočítáme i druhý kořen x2 soustavy rovnic:

D2 =

1 78 3

= 1 · 3− 7 · 8 = 3− 56 = −53,

x2 =D2

D= −

53

25.

Soustavy lineárních rovnic-numerické řešení 9 / 52

(Numerické metody:)

◮ přímé◮ Gaussova eliminační metoda◮ Gaussova eliminační metoda s výběrem hlavního prvku

◮ iterační◮ Jacobiho metoda◮ Gauss-Seidlova metoda◮ Relaxační metoda

Soustavy lineárních rovnic-numerické řešení 10 / 52

(Gaussova eliminační metoda)

Příklad (GEM, zadání)

Gaussovou elim. metodou najděte řešení soustavy rovnic:

x + 3y − 4z = 72x − 7y + 3z = 13x + 4y − 7z = 1

Soustavy lineárních rovnic-numerické řešení 11 / 52

Příklad (GEM, řešení)

Postupně provádíme elementární ekvivaletní úpravy, až dosáhnemetrojúhelníkové matice:

1 3 −4 72 −7 3 13 4 −7 1

Soustavy lineárních rovnic-numerické řešení 12 / 52

Příklad (GEM, řešení)

1 3 −4 70 −13 11 −130 −5 5 −20

Soustavy lineárních rovnic-numerické řešení 13 / 52

Příklad (GEM, řešení)

1 3 −4 70 −13 11 −130 1 −1 4

Soustavy lineárních rovnic-numerické řešení 14 / 52

Příklad (GEM, řešení)

1 3 −4 70 1 −1 40 −13 11 −13

1 3 −4 70 1 −1 40 0 −2 39

Soustavy lineárních rovnic-numerické řešení 15 / 52

Příklad (GEM, řešení)

Z matice v trojuhelníkovém tvaru vyčíslíme x, y a z:

−2z = 39

z = −39

2

y −

(

−39

2

)

= 4

y = −31

2

x + 3

(

−31

2

)

− 4

(

−39

2

)

= 7

x = −49

2

Soustavy lineárních rovnic-numerické řešení 16 / 52

(Gaussova eliminační metoda s částeč. výběrem hlavníhoprvku)

V prvním kroku vybereme do prvního řádku tu rovnici, která máv absolutní hodnotě u x1 největší koeficient. Pak eliminujeme x1

v dalších rovnicích. V dalším kroku si budeme vybírat ze zbylýchrovnic tu rovnici do druhého řádku, která má v absolutní hodnotěnejvětší koeficient při x2. Pak ze zbylých rovnic eliminujeme x2.A tak dále . . .

Soustavy lineárních rovnic-numerické řešení 17 / 52

Příklad (GEM s hl. prvkem)

0,14 0,24 −0,84 1,111,07 −0,83 0,56 0,480,64 0,43 −0,38 −0,83

Soustavy lineárních rovnic-numerické řešení 18 / 52

Příklad (GEM s hl. prvkem)

1,07 −0,830 0 0,560 0 0,480 00,14 0,348 6 −0,913 2 1,047 20,00 0,926 4 −0,714 9 −1,117 1

Soustavy lineárních rovnic-numerické řešení 19 / 52

Příklad (GEM s hl. prvkem)

1,07 −0,830 0 0,560 0 0,480 00,00 0,926 4 −0,714 9 −1,117 10,00 0,000 0 −0,644 2 1,467 6

Soustavy lineárních rovnic-numerické řešení 20 / 52

Iterační metody

Soustavy lineárních rovnic-numerické řešení 21 / 52

(Jacobiho metoda)

Příklad (Jacobiho metoda, zadání)

Jacobiho metodou řešte soustavu rovnic.

10x1 + x2 − x3 = 9−x1 + 20x2 + x3 = 42

x1 + x2 + 10x3 = 33

Soustavy lineárních rovnic-numerické řešení 22 / 52

Příklad (Jacobiho metoda, řešení)

Z první rovnice si vyjádříme první neznámou, ze druhé rovnicevyjádříme druhou neznámou a ze třetí rovnice vyjádříme posledníneznámou. Toto je soustava rovnic, do které budeme v každémdalším kroku dosazovat.

x1 = 0,1(−x2 + x3 + 9)x2 = 0,05(x1 − x3 + 42)x3 = 0,1(−x1 − x2 + 33)

(1)

Soustavy lineárních rovnic-numerické řešení 23 / 52

Příklad (Jacobiho metoda, řešení)

Začneme počáteční aproximací x(0) = (0,9; 2,1; 3,3) a dosadíme dopředchozích vztahů pro naše neznámé:

x(1)1 = 0,1(−2,1 + 3,3 + 9) = 1,02

x(1)2 = 0,05(0,9− 3,3 + 42) = 1,98

x(1)3 = 0,1(−0,9− 2,1 + 33) = 3,00

Dostali jsme další aproximaci, kterou opět dosadíme do soustavyrovnic (2).

x(2)1 = 0,1(−1,98 + 3,00 + 9) = 1,002

x(2)2 = 0,05(1,02− 3,00 + 42) = 2,001

x(2)3 = 0,1(−1,02− 1,98 + 33) = 3,000

Příklad (Jacobiho metoda, řešení)Soustavy lineárních rovnic-numerické řešení 24 / 52

V tabulce jsou výsledky z dalších dvou kroků Jacobiho metody.

k x(k)1 x

(k)2 x

(k)3

0 0,9 2,1 3,31 1,02 1,98 3,002 1,002 2,001 3,0003 0,999 9 2,000 1 2,999 74 0,999 96 2,000 01 3,000 00

Sledujeme rozdíly u každé neznámé ve dvou po sebe jdoucíchaproximacích. Metodu ukončíme, když jsou rozdíly v absolutníhodnotě (u každé neznámé) menší než požadovaná přesnost.

Příklad (Jacobiho metoda, divergence)Soustavy lineárních rovnic-numerické řešení 25 / 52

Zde si ukážeme případ, kdy Jacobiho metoda diverguje.

x1 + x2 + 10x3 = 3310x1 + x2 − x3 = 9−x1 + 20x2 + x3 = 42

x1 = −x2 − 10x3 + 33x2 = −10x1 + x3 + 9x3 = x1 − 20x2 + 42

Příklad (Jacobiho metoda, divergence)Soustavy lineárních rovnic-numerické řešení 26 / 52

x1 = −2,1− 10 · 3,3 + 33 = −2,1x2 = −10 · 0,9 + 3,3 + 9 = 3,3x3 = 0,9− 20 · 2,1 + 42 = 0,9

x1 = −3,3− 10 · 0,9 + 33 = 20,7x2 = 10 · 2,1 + 0,9 + 9 = 30,9x3 = −2,1− 20 · 3,3 + 42 = −26,1

Příklad (Jacobiho metoda, divergence)

x1 = 30,9− 10 · (−26,1) + 33 = 263,1x2 = −10 · 20,7 − 26,1 + 9 = −224,1x3 = 20,7 − 20 · 30,9 + 42 = −555,3

Jak je vidět, tak Jacobiho metoda v tomto případě diverguje.Všimněte si, že se jedná o stejnou soustavu jako v předchozímpříkladu, jen řádky soustavy jsou v jiném pořadí!

Soustavy lineárních rovnic-numerické řešení 27 / 52

( Gauss-Seidlova metoda)

Příklad (Gauss-Seidlova metoda, zadání)

Najděte řešení soustavy rovnic Gauss-Seidlovou metodou.

10x1 + x2 − x3 = 9−x1 + 20x2 + x3 = 42

x1 + x2 + 10x3 = 33

Soustavy lineárních rovnic-numerické řešení 28 / 52

Příklad (Gauss-Seidlova metoda, řešení)

Začneme s počátoční aproximaci řešení x(0) = (0,9; 2,1; 3,3). Při

výpočtu x(1)1 pracujeme s počátoční aproximací, při výpočtu x

(1)2

už využíváme hodnotu x(1)1 a při výpočtu x

(1)3 využijeme i hodnotu

x(1)2 , porovnejte si to s Jacobiho metodou!

x(1)1 = 0,1(−x

(0)2 + x

(0)3 + 9) = 0,1(−2,1 + 3,3 + 9) = 1,02

x(1)2 = 0,05(x

(1)1 − x

(0)3 + 42) = 0,05(1,02− 3,3 + 42) = 1,986

x(1)3 = 0,1(−x

(1)1 − x

(1)2 + 33) = 0,1(−1,02− 1,986 + 33) = 2,9994

Příklad (Gauss-Seidlova metoda, řešení)Soustavy lineárních rovnic-numerické řešení 29 / 52

Tabulka výsledků do čtvrtého řádu:

k x(k)1 x

(k)2 x

(k)3

0 0,9 2,1 3,31 1,02 1,986 2,999 42 1,001 34 2,000 097 2,999 856 33 0,999 975 93 2,000 005 98 3,000 001 814 0,999 999 58 1,999 999 89 3,000 000 05

Soustavy lineárních rovnic-numerické řešení 30 / 52

(Konvergence a odhad chyb)

Soustavy lineárních rovnic-numerické řešení 31 / 52

(Normy vektorů a matic)

◮ sloupcová norma: ||A||1 = maxj

(n∑

i=1|aij |)

◮ řádková norma: ||A||∞ = maxi

(n∑

j=1|aij |)

Soustavy lineárních rovnic-numerické řešení 32 / 52

(Ostře řádkově nebo sloupcově diagonálně dominantní matice)

◮ řádkově:

|aii | >n∑

j=1,j 6=i

|aij | pro i = 1, . . . ,n

◮ sloupcově:

|ajj | >n∑

i=1,i 6=j

|aij | pro j = 1, . . . ,n

Soustavy lineárních rovnic-numerické řešení 33 / 52

(Pozitivňe definitní matice)

Symetrická matice A řádu n se nazývá pozitivně definitní, jestližepro každý nenulový sloupcový vektor x= (x1, x2, . . . , xn)T platí

xT.A.x > 0

Soustavy lineárních rovnic-numerické řešení 34 / 52

(Iterační matice, příklad na Jacobiho metodu, pokr.)

x1 = 0,1(−x2 + x3 + 9)x2 = 0,05(x1 − x3 + 42)x3 = 0,1(−x1 − x2 + 33)

(2)

C =

0 −0, 1 0, 10, 05 0 −0, 05−0, 1 −0, 1 0

Soustavy lineárních rovnic-numerické řešení 35 / 52

(Odhad chyby Jacobiho a Gauss-Seidlovy metody)

||x(r) − x|| ≤||C ||

1− ||C ||· ||x(r) − x

(r−1)||

Soustavy lineárních rovnic-numerické řešení 36 / 52

(odhad pro příklad na Jacobiho metodu)

||C ||∞ = max{|−0, 1|+|0, 1|; |0, 05|+|−0, 05|; |−0, 1|+|0, 1|} = 0, 2.

||x(4) − x(3)|| = ||0, 00006;−0, 00009; 0, 0003|| =

= max{|0, 00006|; | − 0.00009|; |0, 0003|} = 0, 0003

||x(4) − x|| ≤0, 2

1− 0, 2· 0, 0003 = 0, 000075.

Soustavy lineárních rovnic-numerické řešení 37 / 52

(Pravidla)

◮ Je-li matice soustavy ostře řádkově nebo sloupcově diagonálnědominantní, Jacobiho aj Gauss-Seidelova metoda konvergují

◮ Je-li matice soustavy symetrická a pozitivně definitníGauss-Seidelova metoda konverguje (Jacobiho metodakonvergovat nemusí)

◮ Vynásobíme-li libovolnou regul. čtvercovou matici zleva maticík ní transponovanou, vzniklá matice je symetrická a pozitivnědefinitní.

Soustavy lineárních rovnic-numerické řešení 38 / 52

PříkladVšimněte si následující soustavu rovnic:

x1 −0,464x2 = 0,5362,047x1 +x2 −0,464x3 = 2,583−0,464x1 + +x3 = 0,536

Zkuste si, že Jacobiho metoda konverguje při řešení této soustavy.Ale Gauss-Seidlova metoda diverguje.

Nechť A je symetrická a pozitivně definitní a Jacobiho metodakonverguje (když A je symetrická a pozitivně definitní, Jacobihometoda konvergovat ještě nemusí, ale může) ⇒ Gauss-Seidlovametoda konverguje dvakrát rychleji než Jacobiho metoda.[Ralston, A.: Základy numerické matematiky, 1978].

Soustavy lineárních rovnic-numerické řešení 39 / 52

( Relaxační metoda )

Soustavy lineárních rovnic-numerické řešení 40 / 52

Mějme Ax = b, det A 6= 0.α-řešení ⇒ b −Aα = 0

Při řešení využijeme tzv. rezídua.Rezíduum vypočítáme pomocí následujícího vzorce:

r = b − Ax

Složky vektoru rezíduí se snažíme zmenšovat. Jestliže rezíduumkonverguje k 0 dostáváme iterační metodu: Např.: tzv. relaxačnímetodu.

Příklad ( Relaxační metoda, zadání)

Příklad. Relaxační metodou řešte soustavu rovnic.

10x1 + x2 + x3 = 22x1 + 10x2 + x3 = 13−x1 + x2 + 10x3 = 9

Soustavy lineárních rovnic-numerické řešení 41 / 52

Příklad ( Relaxační metoda, řešení)

Začneme počáteční aproximací x(0) = (0, 0, 0), vypočítámepočáteční aproximaci rezídua:

r = (22 − 10x1 − x2 − x3, 13− x1 − 10x2 − x3, 9 + x1 − x2 − 10x3)

r (0) = (22; 13; 9) |22| > |13|, |22| > |9|

Jelikož první složka rezídua je dominantní (v absolutní hodnotě jenejvětší ze všech složek nulté iterace rezídua), tak budemeupravovat první rovnici (zejména neznámou x1) tak, aby tato prvnísložka byla vynulována.

Příklad ( Relaxační metoda, pokr.)Soustavy lineárních rovnic-numerické řešení 42 / 52

10x(1)1 + x

(0)2 + x

(0)3 = 22

10x(1)1 = 22

x(1)1 = 2,2, r

(1)1 = 0

x(1) = (2,2; 0; 0) r (1) = (0; 10,8; 11,2)

Nájdeme v absolutní hodnotě největší složku první iterace rezídua apříslušnou rovnici a neznámou upravíme tak, aby se tato složkavynulovala. Největší složka je 11, 2, (třetí složka) proto si budemevšímat třetí rovnici a zejména třetí neznámou x3.

Příklad ( Relaxační metoda, pokr.)Soustavy lineárních rovnic-numerické řešení 43 / 52

−x(1)1 + x

(1)2 + 10x

(2)3 = 9

−2,2 + 0 + 10x(2)3 = 9

x(2)3 = 1,12

x(2) = (2,2; 0; 1,12) r (2) = (−1,12; 9,68; 0)

Největší složka ve druhé iteraci rezídua je 9, 68, proto si budemevšímat příslušnou rovnici a neznámou, teda druhou rovnici a x2.

Příklad ( Relaxační metoda, pokr.)Soustavy lineárních rovnic-numerické řešení 44 / 52

x(2)1 + 10x

(3)2 + x

(2)3 = 13

2,2 + 10x(3)2 + 1,12 = 13

x(3)2 = 0,968

x(3) = (2,2; 0,968; 1,12) r (3) = (−2,088; 0;−0,968)

... Po pěti dalších výpočetních krocích dostáváme

x(8) = (1,9997; 1,00065; 1,99991) r (8) = (0,0241;−0,00608; 0)

Soustavy lineárních rovnic-numerické řešení 45 / 52

(Podmíněnost matice)

Soustavy lineárních rovnic-numerické řešení 46 / 52

Číslo podmíněnosti matice

Cp(A) = ||A−1|| · ||A||

Matice s velkým číslem podm. můžou výrazně zesilnit chyby.

Soustavy lineárních rovnic-numerické řešení 47 / 52

PříkladZjistěte číslo podm. matice systému

x1 + 0, 99x2 = 1, 991, 01x1 + x2 = 2, 01

Soustavy lineárních rovnic-numerické řešení 48 / 52

Příklad

A =

[

1 0, 991, 01 1

]

Soustavy lineárních rovnic-numerické řešení 49 / 52

Příklad

A−1 =

[

10000 −999910100 10000

]

Soustavy lineárních rovnic-numerické řešení 50 / 52

Příklad

||A|| = 2, 01 ||A−1|| = 20100

CpA = 40401.

Soustavy lineárních rovnic-numerické řešení 51 / 52

PříkladJacobiho metodou zjistěte řešení systému

x1 + 0, 99x2 = 1, 991, 01x1 + x2 = 2, 01

Soustavy lineárních rovnic-numerické řešení 52 / 52