5. Rozwiązywanie układów równań liniowych

Transkrypt

5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych
Wprowadzenie (5.1)
Układ n równań z n niewiadomymi:
a11 x 1+a 12 x 2+...+a 1n xn =a 10 ,
a 21 x1+a 22 x 2+...+a 2n x n=a 20 ,
.............................................. ,
a n1 x 1+an2 x 2+...+a nn x n=a n0 .
Wprowadzając oznaczenia macierzowe
układ równań można zapisać w postaci
AX = A0 .
Wprowadzenie (5.1)
Zakłada się, że elementy a ij są liczbami rzeczywistymi. Macierz A nazywa
się macierzą główną układu równań, wektor A0 kolumną wyrazów wolnych a
wektor X wektorem niewiadomych. Rozwiązaniem rozważanego układu
równań nazywany jest każdy wektor
 =[ x1 x2  xn
X
T
]
o składowych xj , j =1  n , rzeczywistych, spełniający równanie
̄ = A0 .
AX
Twierdzenie (Cramer): Układ równań liniowych AX = A0 ma dokładnie
jedno rozwiązanie gdy det  A≠0.
Metody rozwiązywania równań liniowych dzieli się na dwie klasy:
- metody skończone - pozwalają uzyskać rozwiązanie po wykonaniu
skończonej liczby działań arytmetycznych a otrzymane rozwiązania
obarczone są tylko błędami zaokrągleń.
- metody iteracyjne - polegają na wyznaczaniu ciągu wektorów
X  0 , X 1  , , X  k , zbieżnego do rozwiązania układu. Uzyskane
rozwiązania są obarczone błędem metody oraz zaokrągleń. Metody
te pozwalają jednak wyznaczyć rozwiązania z dowolną, z góry zadaną
dokładniością.
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda wyznaczników Cramera (5.2.1)
Układ równań liniowych AX = A0 można rozwiązać stosując wzory Cramera
Def. Podwyznacznikiem danego wyznacznika nazywamy każdy wyznacznik,
który otrzymamy usuwając z macierzy danego wyznacznika pewną liczbę
wierszy i taką samą liczbę kolumn, zachowując kolejność elementów
pozostałych.
Def. Minorem wyznacznika przynależnym do elementu a ik macierzy tego
wyznacznika nazywamy ten podwyznacznik danego wyznacznika, który
otrzymamy usuwając z macierzy danego wyznacznika wiersz oraz kolumnę, na
przecięciu których znajduje się ten element (usuwamy i-ty wiersz oraz k-tą
kolumnę).
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda wyznaczników Cramera (5.2.1)
Uwaga! Minor wyznacznika przynależny do elementu a ii jest minorem
głównym wyznacznika
Def. Dopełnieniem algebraicznym Aik elementu a ik wyznacznika nazywamy
iloczyn minora tego wyznacznika przynależnego do elementu a ik oraz
ik
czynnika −1 .
Tw. (Laplace'a) Wyznacznik jest równy sumie iloczynów każdego elementu
dowolnego wiersza (kolumny) i odpowiadającego temu elementowi
dopełnienia algebraicznego.
Przykład 1: Stosując wzory Cramera wyprowadzić wzory na rozwiązanie
układu dwóch równań liniowych z dwiema niewiadomymi x 1, x 2
a 11 x 1+a12 x 2=b1 ,
a 21 x1 +a 22 x 2=b2 .
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda wyznaczników Cramera (5.2.1)
Rozwiązanie:
Przykład 2: Stosując wzory Cramera wyprowadzić wzory na rozwiązanie
układu trzech równań liniowych z trzema niewiadomymi x 1, x 2, x 3
a11 x 1+a 12 x 2+a13 x 3=b1 ,
a 21 x1+a 22 x 2+a 23 x 3=b 2 ,
a 31 x 1+a32 x 2+a 33 x3=b3 .
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda wyznaczników Cramera (5.2.1)
Rozwiązanie:
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda wyznaczników Cramera (5.2.1)
Złożoność obliczeniowa metody wyznaczników Cramera:
Stosowanie wzorów Cramera nakłada konieczność obliczenia n1
wyznaczników stopnia n. Stosując opisaną wcześniej klasyczną metodę
obliczania wyznacznika należy wykonać n ! dodawań oraz n⋅n ! mnożeń.
Łącznie należy wykonać n1! działań arytmetycznych zmiennoprzecinkowych. W tabeli poniżej zamieszczono czasy obliczania wyznacznika przez
komputer wykonujący 108 operacji zmiennoprzecinkowych na sekundę.
Aby rozwiązać układ równań AX = A0 należy obliczyć n1 wyznaczników stopnia n oraz wykonać n dzieleń. Całkowita liczba działań arytmetycznych jest zatem równa n1⋅n1 !n . Z powodu dużej złożoności
obliczeniowej wzory Cramera stosuje się tylko dla n4.
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Rozwiązywanie układu równań przebiega w dwóch etapach:
- etap postępowania prostego - układ równań zostaje przekształcony do
postaci równoważnej (mającej takie samo rozwiązanie, co układ wyjściowy)
z trójkątną górną macierzą główną układu,
- etap postępowania odwrotnego - układ w postaci równoważnej zostaje
rozwiązany.
Metoda Eliminacji Gaussa - etap postępowania prostego
Wyjściowy układ równań:
(0)
(0)
(0)
(0)
a 11 x1 +a 12 x 2 +...+a 1n x n=a 10 ,
(0)
(0)
(0)
(0)
a 21 x1 +a 22 x 2 +...+a 2n x n=a 20 ,
................................................ ,
(0)
(0)
(0)
(0)
a n1 x 1+an2 x 2+...+a nn x n=a n0 .
(1)
Przekształcanie macierzy głównej układu w macierz trójkątną odbywa sie w
n krokach.
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Etap postępowania prostego (cd)
Krok 1: eliminacja niewiadomej x 1 z równań nr 2, 3, , n .
0 
0 
Zakładając, że element a 11 ≠0 dzieli się pierwsze równanie przez a 11 i
otrzymuje
(2)
gdzie
Następnie od i-tego ( i=2, 3, , n ) równania układu (1) odejmuje się

równanie (2) pomnożone przez a 0
otrzymując
i1
(3)
gdzie
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Etap postępowania prostego (cd)
Krok 2: eliminacja niewiadomej x 2 z równań nr 3, 4, , n. Schemat obliczeń
kroku 1 powtarza się w odniesieniu do ukłdu równań (3). Tak więc
zakładając, że element a 1
dzieli się pierwsze równanie układu (3) przez
22 ≠0
1
a 22 i otrzymuje
(4)
gdzie
Następnie od i-tego ( i=3, 4, , n ) równania układu (3) odejmuje się
1
równanie (4) pomnożone przez a i2 otrzymując
(5)
gdzie
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Etap postępowania prostego (cd)
Krok 3,4, ..., n-1: eliminacja kolejnych niewiadomych x 3 , , x n−1 w sposób
analogiczny do algorytmu postępowania z kroków 1 i 2. Po wykonaniu obliczeń
w n−1 kroku, otrzymuje się równania
(6)
gdzie
oraz
(7)
Krok n: zakłada się, że element a nn−1
≠0 . Równanie (7) dzieli się przez
n
 n−1
a n n i otrzymuje

x n =a n
n0 .
(8)
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Etap postępowania odwrotnego:
Rozwiącuje się równoważny układ równań uzyskany w wyniku postępowania
prostego
Algorytm rozwiązania tego układu równań jest oczywisty. Z ostatniego
równania odczytuje się bezpośrednio x n . Wartość tę podstawia się do równań
n−1, n−2, , 1 . Z równania n−1 można wyznaczyć x n −1 . Obliczoną
wartość podstawia sie do równań n−2, n−3,  ,1 . Teraz z równania n−2
można wyznaczyć x n −2 itd.
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Wnioski: Układ równań liniowych mozna rozwiązać metodą eliminacji Gaussa,
(k −1 )
gdy elementy a k k (k =1 , 2 ,… , n) są różne od zera. Ponieważ pomiędzy
tymi elementami a minorami macierzy głównej układu zachodzą związki
wyrażone w twierdzeniu
Twierdzenie. Zachodzą równości
Stąd prawdziwe jest twierdzenie
Twierdzenie. Układ równań liniowych można rozwiązać metodą eliminacji
Gaussa, jeśli wszystkie minory główne macierzy głównej układu są różne od
zera
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Przykład : Stosując metodę eliminacji Gaussa rozwiązać układ równań
liniowych
1,2 x 1
2,6 x 2 −0,1 x3
4,5 x 1
9,8 x 2 −0,4 x3
0,1 x 1 −0,1 x 2 −0,3 x3
4,5 x 1 −5,2 x 2
4,2 x3
1,5 x 4
5,7 x 4
−3,5 x 4
−3,4 x 4
=
13,15 ,
=
49,84 ,
= −14,08 ,
= −46,51 .
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Rozwiązanie: Postępowanie proste
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Rozwiązanie (cd): Postępowanie proste
Postępowanie odwrotne
x 4= 4,10003
x 3=−2,40029
x 2 = 3,19989
x1=−1,29983
Rozwiązanie
x1=−1,29983
x 2 = 3,19989
x 3=−2,40029
x 4= 4,10003
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Z pełnym wyborem elementu podstawowego
Przytoczone wczesniej twierdzenie określające warunki stosowalności metody
eliminacji Gaussa pokazało istotne jej ograniczenia (aby układ równań
liniowych można było rozwiązać metodą eliminacji Gaussa, wszystkie minory
główne macierzy głównej układu muszą być różne od zera).
Algorytm ten można jednak zmodyfikować w taki sposób, aby można go było
stosować do układu Cramera, tzn do układu z det  A≠0.
Przyjmijmy, że układ równań liniowych AX = A0 jest rozwiązywany metodą
eliminacji Gaussa i że zostało już wykonanych k −1 kroków etapu
postępowania prostego. Wyjściowy układ równań został przekształcony do
postaci
(9)
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
 k−1
1. wyszukuje się element a rs
spełniający warunek ∣a rs
(k−1)
a
,
∣= kmax
∣
∣
{
}
ij
⩽i ⩽n
(k −1)
k ⩽ j ⩽n
2. przestawia się w układzie (9) równanie r z równaniem k oraz kolumę s
kolumną k ,
3. eliminuje się niewiadomą x k z równań k 1, k 2, , n , zgodnie z
algorytmem k-tego kroku prostej eliminacji Gaussa.
Jeśli det  A≠0 to żaden element podstawowy w tej metodzie nie jest równy
zero.
Przykład : Rozwiązać układ równań liniowych stosując metodę eliminacji
Gaussa z pełnym wyborem elementu podstawowego
1,2 x 1
2,6 x 2 −0,1 x3
4,5 x 1
9,8 x 2 −0,4 x3
0,1 x 1 −0,1 x 2 −0,3 x3
4,5 x 1 −5,2 x 2
4,2 x3
1,5 x 4
5,7 x 4
−3,5 x 4
−3,4 x 4
=
13,15 ,
=
49,84 ,
= −14,08 ,
= −46,51 .
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
Rozwiązanie: Postępowanie proste
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
Rozwiązanie (cd): Postępowanie proste
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
Rozwiązanie (cd): Postępowanie proste
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
Proces zamiany elementów w macierzy A oraz wektorach X i A0 najprościej
można dokonać możąc powyższe zmienne przez odpowiednio dobrane
macierze elementarnej permutacji Pk ,i .
k
Macierz taka różni się od macierzy jednostkowej tylko elementami
p k ,k = p i , i =0 i p k ,i = p i , k =1 , stąd pełna informacja o macierzy dana jest
tylko dwiema liczbami k i i k .
Można pokazać, że:
k
k
k
k
Pk ,i =PTk ,i =P−1
k ,i
k
k
[ ]
1
.
k
.
czyli macierz elementarnej permutacji
jest symetryczna i ortogonalna.
Pk ,i =
Lewostronne przemnożenie danej
macierzy A przez Pk ,i (t.j. Pk ,i A )
odpowiada przestawieniu jej wierszy o
numerach k i i k , a przemnożenie prawostronne (t.j. A Pk ,i ) równoważne jest
przestawieniu odpowiednich kolumn.
k
k
k
k
0
.
.
1
. .
. .
1
.
.
0
.
.
1
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
W omawianym przykładzie mamy:
[
] [] [ ]
[ ]
[ ][
]
1,2
2,6 −0,1
1,5
(0)
(0)
4,5
9,8
−0,4
5,7
X
=
A =
,
0,1 −0,1 −0,3 −3,5
4,5 −5,2
4,2 −3,4
x1
x2
,
x3
x4
13,15
(0)
A0 = 49,84 .
−14,08
−46,51
W kroku 1 postępowania prostego należy zamienić miejscami wiersze k =1
oraz i k =2 . Macierz elementarnej
0
1
P1,2 =
0
0
permutacji ma wówczas postać:
(0) '
1
0
0
0
0
0
1
0
0
0
.
0
1
'
Macierz A
oraz wektor A(0)
z zamienionymi wierszami otrzymamy w
0
wyniku operacji
0
(0) '
(0)
1
A =P 1,2 A =
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1,2
2,6 −0,1
1,5
4,5
9,8 −0,4
5,7
,
0,1 −0,1 −0,3 −3,5
4,5 −5,2
4,2 −3,4
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
[
]
4,5
9,8 −0,4
5,7
(0) '
1,2
2,6 −0,1
1,5
A =
,
0,1 −0,1 −0,3 −3,5
4,5 −5,2
4,2 −3,4
[ ][ ] [ ]
0
(0) '
(0)
1
A0 =P 1,2 A0 =
0
0
1
0
0
0
0
0
1
0
0
13,15
49,84
0
49,84 = 13,15 ,
0 −14,08
−14,08
1 −46,51
−46,51
W kroku 1 należy również zamienić miejscami kolumny k =1 oraz i k =2.
Macierz elementarnej permutacji ma wówczas postać
[ ]
0
1
P1,2 =
0
0
1
0
0
0
0
0
1
0
0
0
.
0
1
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
(0) ' '
Macierz A
z zamienionymi kolumnami otrzymamy w wyniku operacji
[
4,5
A(0) ' ' = A(0)' P 1,2= 1,2
0,1
4,5
[
9,8
2,6
−0,1
−5,2
][
9,8 −0,4
5,7 0
2,6 −0,1
1,5 1
−0,1 −0,3 −3,5 0
−5,2
4,2 −3,4 0
4,5
1,2
0,1
4,5
−0,4
−0,1
−0,3
4,2
5,7
1,5
−3,5
−3,4
1
0
0
0
0
0
1
0
]
0
0 =
0
1
]
W tym przypadku konieczna jest również zamiana wierszy w wektorze X
(1)
Wykonując poniższe przekształcenie otrzymuje sie wektor X .
[
0
(1)
(0)
1
X =P1,2 X =
0
0
1
0
0
0
0
0
1
0
0
0
0
1
][ ] [ ]
x1
x2
x2
x
= 1 .
x3
x3
x4
x4
(0)
.
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
Teraz można przystąpić do przekształceń pierwszego kroku algorytmu
)
eliminacji Gaussa, w wyniku czego otrzymamy macierz A(1 ) oraz wektor A(1
0 o
postaciach:
[
1,0
(1 )
0,0
A =
0,0
0,0
0,45918
0,00613
0,14592
6,88774
−0,04082
0,00613
−0,30408
3,98774
] [ ]
0,58163
−0,01224
,
−3,44184
−0,37552
5,08571
(1 )
−0,07285
A0 =
.
−13,57143
−20,06413
W kroku 2 postępowania prostego należy zamienić miejscami wiersze k =2
oraz i k =4. Macierz elementarnej
permutacji ma postać:
[ ]
1
0
P2,4 =
0
0
0
0
0
1
0
0
1
0
0
1
.
0
0
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
(1 ) '
(1 ) '
Macierz A oraz wektor A0
wyniku operacji
z zamienionymi wierszami otrzymamy w
[ ][
]
[
]
[ ][ ] [ ]
1
(1 ) '
(1)
0
A =P 2,4 A =
0
0
0
0
0
1
1,0
(1 ) '
0,0
A =
0,0
0,0
1
)'
(1)
0
A(1
=P
A
=
0
2,4
0
0
0
0
0
1
0
0
1
0
0
1,0
0,0
0,0
0,0
0,45918 −0,04082
0,58163
0,00613
0,00613 −0,01224
,
0,14592 −0,30408 −3,44184
6,88774
3,98774 −0,37552
0,45918 −0,04082
6,88774
3,98774
0,14592 −0,30408
0,00613
0,00613
0
0
0
1
0
0
1
0
0,58163
−0,37552
,
−3,44184
−0,01224
0
5,08571
5,08571
1 −0,07285 = −20,06413 ,
0 −13,57143
−13,57143
0 −20,06413
−0,07285
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
Teraz można przystąpić do przekształceń drugiego kroku algorytmu eliminacji
Gaussa, w wyniku którego otrzymamy macierz A(2) oraz wektor A(2)
0 o
postaciach:
[
1,0
(2)
0,0
A =
0,0
0,0
0,45918
1,00000
0,00000
0,00000
Wektor X (2) ma postać:
] [ ]
−0,04082
0,58163
0,57896 −0,05452
,
−0,38856 −3,43388
0,00258 −0,01191
[]
x2
X (2)= X (1) = x1 .
x3
x4
5,08571
(2)
−2,91305
A0 =
.
−13,14636
−0,05499
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
W kroku 3 postępowania prostego należy zamienić miejscami kolumny k =3
oraz i k =4 . Macierz elementarnej permutacji
ma wówczas postać:
(2) '
Macierz A
[ ]
][ ]
]
1
P3,4 = 0
0
0
0
1
0
0
0
0
0
1
0
0 .
1
0
z zamienionymi kolumnami otrzymamy w wyniku operacji
[
1,0
(2) '
(2)
0,0
A =A P3,4 =
0,0
0,0
0,45918
1,00000
0,00000
0,00000
[
1,0
0,0
0,0
0,0
−0,04082
0,58163 1
0,57896 −0,05452 0
−0,38856 −3,43388 0
0,00258 −0,01191 0
0
1
0
0
0,45918
0,58163 −0,04082
1,00000 −0,05452
0,57896
.
0,00000 −3,43388 −0,38856
0,00000 −0,01191
0,00258
0
0
0
1
0
0
=
1
0
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
W tym przypadku konieczna jest również zamiana wierszy w wektorze X
Wykonując poniższe przekształcenie otrzymuje sie wektor X (3) .
(2)
.
[ ][ ] [ ]
1
(3)
(2)
0
X =P3,4 X =
0
0
0
1
0
0
0 0
0 0
0 1
1 0
x2
x2
x1 = x1 .
x3
x4
x4
x3
Teraz można przystąpić do przekształceń trzeciego kroku algorytmu eliminacji
Gaussa, w wyniku którego otrzymamy macierz A(3) oraz wektor A(3)
o
0
postaciach:
[
1,0
(3)
0,0
A =
0,0
0,0
0,45918
1,00000
0,00000
0,00000
] [ ]
0,58163 −0,04082
−0,05452
0,57896
,
1,00000
0,11315
0,00000
0,00393
5,08571
(3)
−2,91305
A0 =
.
3,82843
−0,00939
Metody skończone rozwiązywania układów równań liniowych (5.2)
Metoda Eliminacji Gaussa (5.2.2)
Algorytm z pełnym wyborem elementu podstawowego
W kroku 4 (ostatnim) postępowania prostego należy jedynie sprowadzić do 1,0
(3)
współczynnik A(3)
macierzy
. Ostatecznie po zakończeniu postępowania
A
4,4
(4)
A
prostego otrzymujemy układ równań A(4) X (4)= A(4)
z
macierzą
główną
0
(4)
(3)
trójkątną górną i wektorem X = X .
[
1,0
0,0
0,0
0,0
0,45918
1,00000
0,00000
0,00000
0,58163
−0,05452
1,00000
0,00000
−0,04082
0,57896
0,11315
1,00000
][ ] [ ]
x2
5,08571
x1
−2,91305
=
.
3,82843
x4
−2,38931
x3
Teraz można rozwiązać powyższy układ równań - rozpocząć etap postępowania odwrotnego algorytmu eliminacji Gaussa. Ostatecznie otrzymuje się wektor
X (4), którego elementy należy odpowiednio przepisać do wektora X (0).
[][ ]
x2
3,20402
X (4)= x 1 = −1,30627 ,
4,09878
x4
−2,38931
x3
[][ ]
x1
−1,30627
X (0)= x 2 = 3,20402 .
−2,38931
x3
4,09878
x4