• Nie Znaleziono Wyników

Metody numeryczne

N/A
N/A
Protected

Academic year: 2021

Share "Metody numeryczne"

Copied!
42
0
0

Pełen tekst

(1)

dr hab. Piotr Fronczak

Metody numeryczne

Wykład nr 3

(2)

Rozwiązywanie układów

algebraicznych równań liniowych

Pojęcia podstawowe

1.

Układ algebraicznych równań liniowych

























3 2 1

3 2 1

33 32

31

23 22

21

13 12

11

b b b

x x x

a a

a

a a

a

a a

a

Układ liniowy m równań z n niewiadomymi postaci

𝑎

11

𝑥

1

+ ⋯ + 𝑎

1𝑛

𝑥

𝑛

= 𝑏

1

𝑎

21

𝑥

1

+ ⋯ + 𝑎

2𝑛

𝑥

𝑛

= 𝑏

2

𝑎

𝑚1

𝑥

1

+ ⋯ + 𝑎

𝑚𝑛

𝑥

𝑛

= 𝑏

𝑚

Postać macierzowa

𝑨 ∗ 𝒙 = 𝒃

(3)

2. Macierz diagonalna (wszystkie współczynniki leżące poza główną przekątną są zerowe)













44 33

22 11

0 0

0

0 0

0

0 0

0

0 0

0

a a

a a

3. Macierz jednostkowa













1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Gdy m > n – układ równań liniowych nadokreślonych

Gdy m < n – układ równań liniowych niedookreślonych (wtedy np. metoda najmniejszych kwadratów)

(4)

4. Dolna macierz trójkątna (wszystkie elementy ponad przekątną są zerowe)













44 43

42 41

33 32

31

22 21

11

0 0 0

0 0

0

a a

a a

a a

a

a a

a

5. Górna macierz trójkątna (wszystkie elementy pod przekątną są zerowe)













44 34 33

24 23

22

14 13

12 11

0 0

0

0 0

0

a a a

a a

a

a a

a a

6. Macierz przekątniowo dominująca (wartości bezwzględne elementów na głównej przekątnej są większe od sumy wartości bezwzględnych pozostałych

elementów w wierszach) 





6 4

1 0

1 14

2 3

2 2

8 1

1 0

2 10

(5)

Układ równań jest źle uwarunkowany, jeśli mała zmiana macierzy współczynników, lub wektora wyrazów wolnych prowadzi do dużej zmiany wektora rozwiązań.

Przykład:

1 2

2 3.999 𝑥

𝑦 = 4

7.999

𝑥

𝑦 = 2

ma rozwiązanie

1

1 2

2 3.999 𝑥

𝑦 = 4.001 7.998

𝑥

𝑦 = −3.999

ma rozwiązanie

4

1.001 2.001 2.001 3.998

𝑥

𝑦 = 4

7.999

𝑥

𝑦 = 3.994 0.0014

ma rozwiązanie

(6)

Norma macierzy

𝐴 = max

𝑖 𝑎𝑖𝑗

𝑛

𝑗=1

(maksymalna suma bezwzględnych wartości w wierszu)

Liczba warunkowa

𝐶𝑜𝑛𝑑(𝐴) = 𝐴 𝐴−1

∆𝑋

𝑋 ≤ 𝐶𝑜𝑛𝑑(𝐴) ∆𝐵 𝐵

∆𝑋

𝑋 ≤ 𝐶𝑜𝑛𝑑(𝐴) ∆𝐴

Można pokazać, że oraz 𝐴

Najmniejszy możliwy błąd, to precyzja zapisu liczby zmiennoprzecinkowej mach w komputerze.

Czyli Cond(A)mach da nam informację, ile jest cyfr znaczących m w rozwiązaniu.

𝐶𝑜𝑛𝑑 𝐴 𝜀𝑚𝑎𝑐ℎ < 0.5 × 10−𝑚

(7)

Przykład:

1 2

2 3.999 𝑥

𝑦 = 4

7.999 𝐴

−1

= −3999 2000

2000 −1000

𝐴 = 5.999 𝐴−1 = 5999

𝐶𝑜𝑛𝑑 𝐴 = 𝐴 𝐴−1 = 35990 Załóżmy, że działamy na typie float (23 bity)

𝜀𝑚𝑎𝑐ℎ = 2−23 = 0.12 × 10−6 𝐶𝑜𝑛𝑑 𝐴 𝜀𝑚𝑎𝑐ℎ = 0.429 × 10−2 0.429 × 10−2 < 0.5 × 10−𝑚

𝑚 < 2.067

Czyli mamy tylko dwie cyfry znaczące w rozwiązaniu.

(8)

Metody dokładne

Polegają na takim przekształcaniu danych

A

i

b

, że po skończonej liczbie dokładnie wykonywanych działań arytmetycznych otrzymujemy rozwiązanie.

Np. wzory Cramera

W x

i

W

i

gdzie

W

– wyznacznik macierzy

A

, a wyznacznik

W

i powstaje przez wstawienie kolumny wyrazów wolnych do

i

-tej kolumny wyznacznika

W

Stosując wzory Cramera należy obliczyć (

n+1

) wyznaczników, które wymagają co najmniej (

n+1

)! mnożeń. Jest to więc metoda bardzo pracochłonna

i dlatego jej się nie stosuje dla

n>4

.

(9)

Układy równań z macierzą trójkątną górną

Jeżeli macierz

A

układu

n

równań z

n

niewiadomymi

Ax = b

jest macierzą trójkątną górną i wszystkie elementy na przekątnej głównej są różne od zera, rozwiązanie

x

takiego układu można otrzymać rekurencyjnie.

(10)

1x

1

+1x

2

–1x

3

+4x

4

= 8 – 2x

2

–3x

3

+1x

4

= 5

2x

3

– 3x

4

= 0 2x

4

= 4

x 4 = 2

Przykład:

(11)

1x

1

+1x

2

–1x

3

= 0 – 2x

2

–3x

3

= 3

2x

3

= 6

2x

4

= 4

Przykład:

x 3 = 3

(12)

1x

1

+1x

2

= 3

– 2x

2

= 12

2x

3

= 6

2x

4

= 4

Przykład:

x 2 = -6

(13)

1x

1

= 9

– 2x

2

= 12

2x

3

= 6

2x

4

= 4

Przykład:

(14)

for(i = n; i>=1; i--) {

x[i] = b[i] / a[i][i];

for(j = 1; j<i; j++)

b[j] = b[j]  x[i]*a[j][i];

}

1 ,..., 2 ,

1

  1 

i n n

a

x a b

x

a x b

ii n j

i j

j ij i

i

nn n n

Układy równań z macierzą trójkątną górną

(15)

n a i

x a b

x

a x b

ii i j

i j

j ij i

i

2 , 3 ,...,

1 11

1 1

Układy równań z macierzą trójkątną dolną

for(i = 1; i<=n; i++) {

x[i] = b[i] / a[i][i];

for(j = i+1; j<=n; j++)

b[j] = b[j]  x[i]*a[j][i];

}

(16)

Układy równań z macierzą diagonalną

 

 

 

 

 

 

 

 

 

 

 

 

n n

nn

b

b b

x x x

a a

a

2 1 2

1 22

11

0 0

0

0 0 0

0 0

Liczba operacji konieczna do przekształcenia danej macierzy do formy diagonalnej jest większa niż do formy trójkątnej.

(17)

Metoda eliminacji Gaussa

Najczęściej stosowana metoda do numerycznego rozwiązywania układu niewielu równań liniowych.

Dwa etapy:

1. Sprowadzamy układ do postaci trójkątnej górnej

2. Rozwiązujemy nowy układ tak jak na poprzednich slajdach

(18)

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42 41

34 33

32 31

24 23

22 21

14 13

12 11

b b b b

x x x x

a a

a a

a a

a a

a a

a a

a a

a a

1 21 2

4 14

21 24

3 13

21 23

2 12

21

22

) ( ) ( )

(

0  am a xam a xam a xbm b

2 4

24 3

23 2

22 1

21

x a x a x a x b

a    

11 1 12 2 13 3 14 4

21 1

21

a x a x a x a x m b

m    

11 21

21

a

ma

'

22

a a '

23

a '

24

b '

2

0

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42 41

34 33

32 31

24 23

22

14 13

12 11

' '

' '

0

b b b

b

x x x x

a a

a a

a a

a a

a a

a

a a

a

a

(19)

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42 41

34 33

32 31

24 23

22

14 13

12 11

' '

' '

0

b b b

b

x x x x

a a

a a

a a

a a

a a

a

a a

a a

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42 41

34 33

32

24 23

22

14 13

12 11

' ' '

' '

0

' '

' 0

b b b b

x x x x

a a

a a

a a

a

a a

a

a a

a a

1 31 3

4 14

31 34

3 13

31 33

2 12

31

32

) ( ) ( )

(

0  am a xam a xam a xbm b

3 4

34 3

33 2

32 1

31

x a x a x a x b

a    

11 1 12 2 13 3 14 4

31 1

31

a x a x a x a x m b

m    

11 31

31

a

ma

'

32

a a '

33

a '

34

b '

3

0

(20)

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42 41

34 33

32

24 23

22

14 13

12 11

' ' '

' '

0

' '

' 0

b b b b

x x x x

a a

a a

a a

a

a a

a

a a

a a

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42

34 33

32

24 23

22

14 13

12 11

' ' '

' '

' 0

' '

' 0

' '

' 0

b b b b

x x x x

a a

a

a a

a

a a

a

a a

a a

1 41 4

4 14

41 44

3 13

41 43

2 12

41

42

) ( ) ( )

(

0  am a xam a xam a xbm b

4 4

44 3

43 2

42 1

41

x a x a x a x b

a    

11 1 12 2 13 3 14 4

41 4

41

a x a x a x a x m b

m    

11 41

41

a

ma

'

42

a a '

43

a '

44

b '

4

0

(21)

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42

34 33

32

24 23

22

14 13

12 11

' ' '

' '

' 0

' '

' 0

' '

' 0

b b b b

x x x x

a a

a

a a

a

a a

a

a a

a a

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42

34 33

24 23

22

14 13

12 11

' '' '

' '

' 0

'' ''

0 0

' '

' 0

b b

b b

x x x x

a a

a

a a

a a

a

a a

a a

2 32 3

4 24

32 34

3 23

32

33

' ) ( ' ' ) ' '

' (

0  am a xam a xbm b

3 4

34 3

33 2

32

' ' '

' x a x a x b

a   

22 2 23 3 24 4

32 2

32

a ' x a ' x a ' x m b '

m   

22 32

32

'

' a ma

'

33

'

a a ' '

34

b ' '

3

0

(22)

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

42

34 33

24 23

22

14 13

12 11

' '' '

' '

' 0

'' ''

0 0

' '

' 0

b b

b b

x x x x

a a

a

a a

a a

a

a a

a a

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

34 33

24 23

22

14 13

12 11

'' '' '

'' ''

0 0

'' ''

0 0

' '

' 0

b b b

b

x x x x

a a

a a

a a

a

a a

a a

2 42 4

4 24

42 44

3 23

42

43

' ) ( ' ' ) ' '

' (

0  am a xam a xbm b

4 4

44 3

43 2

42

' ' '

' x a x a x b

a   

22 2 23 3 24 4

42 2

42

a ' x a ' x a ' x m b '

m   

22 42

42

'

' a ma

'

43

'

a a ' '

44

b ' '

4

0

(23)

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 43

34 33

24 23

22

14 13

12 11

'' '' '

'' ''

0 0

'' ''

0 0

' '

' 0

b b b

b

x x x x

a a

a a

a a

a

a a

a a

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 34 33

24 23

22

14 13

12 11

'' '

'' '

'' ' 0

0 0

'' ''

0 0

' '

' 0

b b

b b

x x x x

a a a

a a

a

a a

a a

3 43

4 4

34 43

44

' ' ) ' ' ' '

' ' (

0  am a xbm b

4 4

44 3

43

' ' ' '

'

' x a x b

a  

33 3 34 4

43 3

43

a ' ' x a ' ' x m b ' '

m  

33 43

43

' '

' ' a ma

'

44

' '

a b ' ' '

4

0

(24)

 

 

 

 

 

 

 

 

 

 

 

 

4 3 2 1

4 3 2 1

44 34 33

24 23

22

14 13

12 11

'' '

'' '

'' ' 0

0 0

'' ''

0 0

' '

' 0

b b

b b

x x x x

a a a

a a

a

a a

a a

Otrzymaliśmy zatem układ równań z macierzą trójkątną górną.

Dalej postępujemy zgodnie z algorytmem dla macierzy trójkątnych.

(25)

Metoda Gaussa: uwagi

 

 

12 3

4 2

16 2

3 4

46 3

2 0

3 2

1

3 2

1

3 2

1

x x

x

x x

x

x x

x

Układ postaci:

nie może być rozwiązany przy pomocy metody Gaussa – element podstawowy w pierwszym równaniu równy jest zero.

Rozwiązanie:

 

 

12 3

4 2

46 3

2 0

16 2

3 4

3 2

1

3 2

1

3 2

1

x x

x

x x

x

x x

x

Wniosek: Należy tak przestawić równania, by element podstawowy był jak największy.

(26)

Metoda Gaussa: uwagi

Robimy tak nie tylko wtedy, gdy element podstawowy jest równy zeru.

Zawsze wybieramy równanie podstawowe z największym elementem podstawowym.

W przeciwnym wypadku rozwiązanie może być obarczone dużym błędem zaokrągleń.

Po każdym etapie algorytmu, równania są modyfikowane – zatem za każdym razem należy sprawdzić, które z równań najbardziej nadaje się na równanie

podstawowe.

Jeśli układ równań ma rozwiązania (nie jest sprzeczny), to zawsze można znaleźć równanie podstawowe z niezerowym elementem podstawowym.

W metodzie Gaussa należy wykonać łącznie 13

n

3

n

2

31

n

mnożeń i dzieleń.

Za pomocą wzorów Cramera (n+1)! mnożeń.

Dla

15

równań –

16! = 20922789888000 15

3

= 3375

(27)

Metoda eliminacji Gaussa-Jordana

Podobna do metody Gaussa. Dążymy do uzyskania macierzy diagonalnej.









n nn n

n

n n

b b b

a a

a

a a

a

a a

a

2 1

2 1

2 22

21

1 12

11

Macierz rozszerzona:

























n n

nn n

n

n n

b b b

x x x

a a

a

a a

a

a a

a

2 1 2

1

2 1

2 22

21

1 12

11

























n n

nn b

b b

x x x

a a

a

' ' '

' 0

0 0

0 0 '

0

0 0

'

2 1 2

1 22

11

(28)

16 25

. 6 5

. 7

6 5

. 6 7

6

12 3

2 4

3 2

1

3 2

1

3 2

1

x x

x

x x

x

x x

x

16 25 . 6 5 . 7 1

6 5

. 6 7 6

12 3

2

4 (6)

1 0.5 0.75 3

1 0.5 0.75 3

1

13 7

8 0

12 2

4 0

3 75 . 0 5

. 0

1 (0.5)

0 1 0.5 3

0 1 0.5 3

8

11 3

0 0

3 5

. 0 1 0

5 . 4 5 . 0 0

1 (0.5)

0 0 1 113

3

1 11

0 0 5 .

0

113

6 29

6 16

1 0 0

0 1 0

0 0 1

Przykład:

16 25 . 6 5 . 7 1

6 5

. 6 7 6

4 12 4

3 4

2 4

4

16 25

. 6 5

. 7 1

6 5

. 6 7

6

3 75 . 0 5

. 0 1

13 7

8 0

0

3 75 . 0 5

. 0 1

4 12 4

2 4

4

13 7

8 0

3 5

. 0 1

0

3 75 . 0 5

. 0 1

3 11 3

0 3

0

3 5

. 0 1 0

5 . 4 5 . 0 0

1

3

1 11

0 0

3 5

. 0 1 0

5 . 4 5 . 0 0

1

3 / 11

6 / 29

6 / 16

3 2 1

x x x

(29)

Metoda eliminacji Gaussa-Jordana: uwagi

Łatwo uogólnić do rozwiązywania kilku układów równań jednocześnie:









n nn n

n

n n

b b b

a a

a

a a

a

a a

a

2 1

2 1

2 22

21

1 12

11









n n n nn n

n

n n

d d d

c c c

b b b

a a

a

a a

a

a a

a

2 1 2 1 2 1

2 1

2 22

21

1 12

11

Należy pamiętać o właściwym wyborze równania podstawowego (jak w metodzie Gaussa)

Liczba działań około 1.5 razy większa niż w metodzie Gaussa

(30)

Rozkład macierzy LU

Przedstawmy macierz [

A

] jako iloczyn: [

A

] = [L] [U].

Dany jest układ [A][x] = [b]. Macierz trójkątna dolna (Lower)

Macierz trójkątna górna (Upper)

[L][y] = [b]

[L][U][x] = [b]

Zatem:

[U][x] = [y]

Niech:

Czyli rozwiązanie problemu dwuetapowe:

1. Znajdujemy [y] (korzystając ze wzorów na układy równań z macierzą trójkątną dolną)

2. Znajdujemy [x] (korzystając ze wzorów na układy równań z macierzą trójkątną górną)

(31)

Metoda Doolittle’a

 

 

 

 

 

 

 

 

 

 

 

 

 

44 34 33

24 23

22

14 13

12 11

43 42

41

32 31

21

44 43

42 41

34 33

32 31

24 23

22 21

14 13

12 11

0 0

0

0 0

0

1 0 1

0 0

1

0 0

0 1

u u u

u u

u

u u

u u

l l

l

l l

l

a a

a a

a a

a a

a a

a a

a a

a a

A

st

21 21 11 31 31 11 41 41 11

1 column: la / u ; la / u ; la / u

14 14

13 13

12 12

11

11

a ; u a ; u a ; u a

u    

: 1 wiersz

 

u u

l u

l u

l u

l u

l u

l u

l u

l u

l

u u

l u

l u

u l u

l u

l u

l u

l

u u

l u

u l u

u l u

l

u u

u u

A

44 34

43 24

42 14

41 33

43 23

42 13

41 22

42 12

41 11

41

34 24

32 14

31 33

23 32 13

31 22

32 12

31 11

31

24 14

21 23

13 21 22

12 21 11

21

14 13

12 11

 

 

 

 

 

Kolumna 1:

(32)

 

u u

l u

l u

l u

l u

l u

l u

l u

l u

l

u u

l u

l u

u l u

l u

l u

l u

l

u u

l u

u l u

u l u

l

u u

u u

A

44 34

43 24

42 14

41 33

43 23

42 13

41 22

42 12

41 11

41

34 24

32 14

31 33

23 32 13

31 22

32 12

31 11

31

24 14

21 23

13 21 22

12 21 11

21

14 13

12 11









 

nd

21 12 22 22 21 13 23 23 21 14 24 24

22 22 21 12

23 23 21 13

24 24 21 14

2 : ; ;

row l u u a l u u a l u u a

u a l u

u a l u

u a l u

     

 

   

   

Wiersz 2:

nd

31 12 32 22 32 41 12 42 22 42

32 32 31 12 22

42 42 41 12 22

2 column: ;

( ) /

( ) /

l u l u a l u l u a

l a l u u

l a l u u

   

 

   

Kolumna 2:

Metoda Doolittle’a

Cytaty

Powiązane dokumenty

Zmodyfikuj projekt z belką z laboratorium tak, aby macierz była przechowywana w postaci macierzy rzadkiej (format Matlaba – przechowujący dla każdego niezerowego elementu jego

- matematyka (metody numeryczne to dział matematyki stosowanej) - meteorologia (prognozowanie temperatury, siły wiatru, opadów,...) inżynieria. -

Wykorzystując podane wzory obliczyć wartości funkcji f(x) dla 100 wybranych argumentów z przedziału &lt;5,1 ; 5,5&gt;. Wykreślić funkcję oraz jej interpolacje na wspólnym

Ogólny wzór opisujący przybliżoną wartość całki funkcji metodą trapezów:.. Wartość całej całki otrzymamy sumując te

trygonometrycznych (a także funkcji wykładniczych) jest to, że w przybliżeniach korzystających z każdej z tych klas przesunięcie układu współrzędnych zmienia współczynniki,

Wadą metody siecznych jest to, że może nie być zbieżna do pierwiastka (np. gdy początkowe przybliżenia nie leżą dość blisko pierwiastka).. Wykład

Metoda Romberga jest rozszerzeniem metody trapezów i daje lepsze przybliżenie całki poprzez zasadniczą redukcję błędu (true error).. Całkowanie metodą Romberga stosuje ten

jeżeli rząd r macierzy głównej jest mniejszy od rzędu macierzy rozszerzonej, to układ równań liniowych nie ma rozwiązań; jest to układ sprzeczny.. rz A