1E, Napisać program do numerycznego obliczania wyznacznika dowolnej macierzy kwadratowej przy pomocy pierwszej metody opisanj w 7.4.1. W programie wykorzystać podany na wykładzie kod eliminacji Gaussa-Jordana bez wyboru elementu głównego (39), który pozwala przekształcić macierz do postaci diagonalnej (należy pominąć ostatni krok w pętli po j ). Testy przeprowadzić na użyciu macierzy stopnia n ≥2 postaci
$$X_{n} = \begin{bmatrix}
x & - a & - a & \cdots & - a & - a \\
a & x & - a & \cdots & - a & - a \\
a & a & x & \cdots & - a & - a \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots \\
a & a & a & \cdots & x & - a \\
a & a & a & \cdots & a & x \\
\end{bmatrix}$$
dla wielu różnych n oraz różnych wartości a, x∈R ∖ {0} takich, że a ≠x. Zbadać dokładność metody, obliczając błąd bezwględny i względny przy użyciu poniższego wzoru na wartość dokładną wyznacznika
$$\text{det\ X}_{n} = \frac{1}{2}{\lbrack(x + a)}^{n} + \left( x - a \right)^{n}\rbrack$$
W tabelce niżej przedstawione są a i b dla których zwiększamy macierz kwadratową n.
a<1 | b<1 | a<1 | b<10 | a<1 | b<10 | a<1 | b<10 |
---|---|---|---|---|---|---|---|
0,1 | 0,3 | 0,1 | 1 | 0,3 | 8,2 | 0,7 | 6,4 |
0,1 | 0,5 | 0,1 | 1,9 | 0,3 | 9,1 | 0,7 | 7,3 |
0,1 | 0,7 | 0,1 | 2,8 | 0,5 | 1 | 0,7 | 8,2 |
0,1 | 0,9 | 0,1 | 3,7 | 0,5 | 1,9 | 0,7 | 9,1 |
0,3 | 0,1 | 0,1 | 4,6 | 0,5 | 2,8 | 0,9 | 1 |
0,3 | 0,5 | 0,1 | 5,5 | 0,5 | 3,7 | 0,9 | 1,9 |
0,3 | 0,7 | 0,1 | 6,4 | 0,5 | 4,6 | 0,9 | 2,8 |
0,3 | 0,9 | 0,1 | 7,3 | 0,5 | 5,5 | 0,9 | 3,7 |
0,5 | 0,1 | 0,1 | 8,2 | 0,5 | 6,4 | 0,9 | 4,6 |
0,5 | 0,3 | 0,1 | 9,1 | 0,5 | 7,3 | 0,9 | 5,5 |
0,5 | 0,7 | 0,3 | 1 | 0,5 | 8,2 | 0,9 | 6,4 |
0,5 | 0,9 | 0,3 | 1,9 | 0,5 | 9,1 | 0,9 | 7,3 |
0,7 | 0,1 | 0,3 | 2,8 | 0,7 | 1 | 0,9 | 8,2 |
0,7 | 0,3 | 0,3 | 3,7 | 0,7 | 1,9 | 0,9 | 9,1 |
0,7 | 0,5 | 0,3 | 4,6 | 0,7 | 2,8 | ||
0,7 | 0,9 | 0,3 | 5,5 | 0,7 | 3,7 | ||
0,9 | 0,1 | 0,3 | 6,4 | 0,7 | 4,6 | ||
0,9 | 0,3 | 0,3 | 7,3 | 0,7 | 5,5 | ||
0,9 | 0,5 | ||||||
0,9 | 0,7 |
Błąd bez względny dla (a, b) <1
Błąd bezwzględny dla (a,b)<1 oraz dla rosnącej macierzy w sposób pokazany na wykresie zachowuje się cyklicznie. Widać, że dla stałej wielkości macierzy błąd wykonuje pewien cykl który w miarę zwiększania się wielkości macierzy rośnie (staje się coraz większy i coraz mniejszy).
błąd względny dla (a,b)<1
Z powyższego wykresu widać że błąd względny zachowuje w sposób cykliczny podobnie jak błąd bezwzględny, wartości jakie przyjmuje błąd względny są bardzo małe przykładowo dla n=55 a=0,1 b=0,5 błąd względny jest równy 0,0000000000000123704.
błąd bezwzględny dla a<1 i b<10.
Błąd bezwzględny dla a<1 i b< 10 rośnie cyklicznie, gdy zwiększa się rozmiar macierzy, wielkość błędu jest dość duża, nawet postaci 8,70257E+291.
błąd względny dla a<1 i b<10.
Błąd względny dla a<1 i b<10. Na podstawie wykresu widać, że błąd zachowuje się cyklicznie, rośnie dla coraz to większej macierzy ale osiąga też wartości zbliżone do 0.
Błąd względny całościowy dla wszystkich przeprowadzonych badań.
Na podstawie przeprowadzonych badań można uznać, że błąd względny jest coraz większy dla coraz to większej macierzy. Im większe liczby znajdujące się w macierzy tym błąd jest większy.
Wnioski
Z przeprowadzonych badań wynika że wielkość macierzy kwadratowej znacznie pogarsza dokładność metody Gaussa-Jordana. Wyniki dokładne dla małej macierzy, nie są odwzorowaniem w dużej tzn. im większa macierz tym błąd jest większy. Dla a<1 i b<1 wyniki są znacznie dokładniejsze nawet gdy macierz jest duża, natomiast dla a<1 i b<10 wyniki testów są mało dokładne.
Cykliczność metody spowodowana jest tym, że macierz jest równomiernie zwiększana.
Badając dokładność metody Gaussa - Jordana oczywiście na pierwszy rzut oka można stwierdzić, że nie jest ona 100%. Przyglądając się dokładnie błędowi względnemu całościowemu oraz stosując wzór na Błąd względny procentowy: δ% = δ • 100% można zauważyć, że ten błąd nie jest tak duży i nie ma większego wpływu na uzyskany wynik.