Mamy dany układ n równań liniowych z n niewiadomymi. Zapiszmy go następująco:
a1,1x1 |
+ |
a1,2x2 |
+ |
a1,3x3 |
+ |
... |
+ |
a1,n-1xn-1 |
+ |
a1,nxn |
= |
b1 |
a2,1x1 |
+ |
a2,2x2 |
+ |
a2,3x3 |
+ |
... |
+ |
a2,n-1xn-1 |
+ |
a2,nxn |
= |
b2 |
a3,1x1 |
+ |
a3,2x2 |
+ |
a3,3x3 |
+ |
... |
+ |
a3,n-1xn-1 |
+ |
a3,nxn |
= |
b3 |
... |
+ |
... |
+ |
... |
+ |
... |
+ |
... |
+ |
... |
= |
... |
an-1,1x1 |
+ |
an-1,2x2 |
+ |
an-1,3x3 |
+ |
... |
+ |
an-1,n-1xn-1 |
+ |
an-1,nxn |
= |
bn-1 |
an,1x1 |
+ |
an,2x2 |
+ |
an,3x3 |
+ |
... |
+ |
an,n-1xn-1 |
+ |
an,nxn |
= |
bn |
Następnie utwórzmy macierz A współczynników ai,j tego układu równań oraz wektor kolumnowy B wyrazów bi:
A = |
|
a1,1 |
a1,2 |
a1,3 |
... |
a1,n-1 |
a1,n |
|
B = |
|
b1 |
|
|
|
a2,1 |
a2,2 |
a2,3 |
... |
a2,n-1 |
a2,n |
|
|
|
b2 |
|
|
|
a3,1 |
a3,2 |
a3,3 |
... |
a3,n-1 |
a3,n |
|
|
|
b3 |
|
|
|
... |
... |
... |
... |
... |
... |
|
|
|
... |
|
|
|
an-1,1 |
an-1,2 |
an-1,3 |
... |
an-1,n-1 |
an-1,n |
|
|
|
bn-1 |
|
|
|
an,1 |
an,2 |
an,3 |
... |
an,n-1 |
an,n |
|
|
|
bn |
|
Macierz A jest macierzą kwadratową o wymiarze n x n. Niech W = det A. Jeśli wyznacznik W jest różny od 0 (pamiętajmy o błędach zaokrągleń - sprawdzamy, czy wyznacznik W leży w otoczeniu ε wartości 0), to układ równań posiada rozwiązania. W przeciwnym razie układ równań jest sprzeczny lub liniowo zależny i nie posiada jednoznacznego rozwiązania.
Aby znaleźć wartości kolejnych niewiadomych, postępujemy następująco:
W macierzy A współczynników dla każdej niewiadomej xi , i = 1, 2, ... , n, zastępujemy i-tą kolumnę wektorem kolumnowym B. Następnie wyliczamy wyznacznik Wi tak zmodyfikowanej macierzy. Wartość kolejnych niewiadomych xi , i = 1, 2, ... , n, otrzymamy za pomocą poniższego wzoru:
xi = |
Wi |
|
W |
Metoda ta nosi nazwę wzorów Cramera (ang. Cramer's Rule).
Przykład:
Rozwiążemy przy pomocy podanych powyżej wzorów Cramera układ 3 równań liniowych z trzema niewiadomymi x1, x2 i x3:
3x1 |
+ |
2x2 |
- |
3x3 |
= |
-2 |
4x1 |
- |
3x2 |
+ |
2x3 |
= |
4 |
8x1 |
+ |
2x2 |
+ |
2x3 |
= |
18 |
Najpierw tworzymy macierz A współczynników oraz wektor kolumnowy B:
A = |
|
3 |
2 |
-3 |
|
B = |
|
-2 |
|
|
|
4 |
-3 |
2 |
|
|
|
4 |
|
|
|
8 |
2 |
2 |
|
|
|
18 |
|
Wykorzystując regułę Sarrusa obliczamy wyznacznik główny W:
3 |
2 |
-3 |
3 |
2 |
= 3×(-3)×2 + 2×2×8 + (-3)×4×2 - (-3)×(-3)×8 - 3×2×2 - 2×4×2 = -110 = W |
4 |
-3 |
2 |
4 |
-3 |
|
8 |
2 |
2 |
8 |
2 |
|
Teraz dla niewiadomej x1 w macierzy A zastępujemy kolumnę 1 wektorem B i obliczamy jej wyznacznik W1:
A1 = |
|
-2 |
2 |
-3 |
|
|||||||
|
|
4 |
-3 |
2 |
|
|||||||
|
|
18 |
2 |
2 |
|
|||||||
-2 |
2 |
-3 |
-2 |
2 |
= (-2)×(-3)×2 + 2×2•18 + (-3)×4×2 - (-3)×(-3)×18 - (-2)×2×2 - 2×4×2 = -110 = W1 |
|||||||
4 |
-3 |
2 |
4 |
-3 |
|
|||||||
18 |
2 |
2 |
18 |
2 |
|
Podobnie postępujemy dla pozostałych niewiadomych postępujemy podobnie:
A2 = |
|
3 |
-2 |
-3 |
|
|
|
4 |
4 |
2 |
|
|
|
8 |
18 |
2 |
|
3 |
-2 |
-3 |
3 |
-2 |
= 3×4×2 + (-2)×2×8 + (-3)×4×18 - (-3)×4×8 - 3×2×18 - (-2)×4×2 = -220 = W2 |
4 |
4 |
2 |
4 |
4 |
|
8 |
18 |
2 |
8 |
18 |
|
A3 = |
|
3 |
2 |
-2 |
|
|
|
4 |
-3 |
4 |
|
|
|
8 |
2 |
18 |
|
3 |
2 |
-2 |
3 |
2 |
= 3×(-3)×18 + 2×4×8 + (-2)×4×2 - (-2)×(-3)×8 - 3×4×2 - 2×4×18 = -330 = W3 |
4 |
-3 |
4 |
4 |
-3 |
|
8 |
2 |
18 |
8 |
2 |
|
Podsumujmy otrzymane wyniki:
W |
= -110 |
W1 |
= -110 |
W2 |
= -220 |
W3 |
= -330 |
Zgodnie z wzorami Cramera mamy:
x1 = |
W1 |
= |
-110 |
= 1 |
|
W |
|
-110 |
|
x2 = |
W2 |
= |
-220 |
= 2 |
|
W |
|
-110 |
|
x3 = |
W3 |
= |
-330 |
= 3 |
|
W |
|
-110 |
|
Technicznie macierz A współczynników oraz wektor kolumnowy B będziemy przechowywać w jednej tablicy o n wierszach i n+1 kolumnach. Współczynniki przy niewiadomych umieścimy w kolumnach od 1 do n, natomiast n+1 kolumnę zajmą wyrazy wolne bi. Do funkcji obliczającej wyznacznik będziemy przekazywali wektor kolumnowy, w którym po prostu na i-tej kolumnie wpiszemy n+1, czyli numer kolumny z wektorem B. Będzie to odpowiadało zastąpieniu danej kolumny współczynników wyrazami z kolumny n+1.
AB = |
|
1 |
2 |
3 |
... |
n-1 |
n |
n+1 |
|
|
|
a1,1 |
a1,2 |
a1,3 |
... |
a1,n-1 |
a1,n |
b1 |
|
|
|
a2,1 |
a2,2 |
a2,3 |
... |
a2,n-1 |
a2,n |
b2 |
|
|
|
a3,1 |
a3,2 |
a3,3 |
... |
a3,n-1 |
a3,n |
b3 |
|
|
|
... |
... |
... |
... |
... |
... |
... |
|
|
|
an-1,1 |
an-1,2 |
an-1,3 |
... |
an-1,n-1 |
an-1,n |
bn-1 |
|
|
|
an,1 |
an,2 |
an,3 |
... |
an,n-1 |
an,n |
bn |
|