Z pogranicza

Wstęp do macierzy

  • 7 komentarzy
  • 2216 odsłon
  • Oceń ten tekst jako pierwszy

Macierz to nic innego jak wielowymiarowa tablica. Co to tablica? - każdy programista powinien wiedzieć. Macierzą może być również tablica jednowymiarowa - nie szkodzi. Jak widzimy, są to podobne pojęcia. I tutaj ważna rzecz: tablica to pojęcie stosowane w informatyce, natomiast "macierz" to pojęcie matematyczne. Bynajmniej nie są to te same obiekty, ale podobne do siebie. Można zatem udawać macierz poprzez tablicę.
Macierze oznaczamy dużymi literami, np. A,B,C... Przedstawiamy je za pomocą tabeli. Elementy poziome to wiersze macierzy, a pionowe: kolumny. Na przykład:

A:ARRAY[1..3] OF ARRAY[1..2] OF INTEGER;

Powyższa dwuwymiarowa tablica jest przedstawieniem macierzy złożonej z trzech kolumn oraz dwóch wierszy - macierz taka ma sześć elementów. Mówi się, że jest ona wymiaru 2x3.

Poszczególne wartości np. a[1,2], a[3,2] ... to wyrazy macierzy lub współczynniki macierzy. I tutaj istotna uwaga: w macierzach oznaczenia wymiarów są odwrotne niż w tablicach!!! Przykład:
- w tablicy element trzeci w pierwszym wymiarze to c[3,1]; - w macierzy natomiast jest to: c[1,3];
Zatem jak widać nie trudno o pomyłkę.

Jeżeli ilość wierszy macierzy jest równa ilości kolumn, macierz taką nazywamy kwadratową stopnia n, gdzie n jest ilością wierszy / kolumn.

Na macierzach możemy wykonywać najrozmaitsze działania (dodawanie, mnożenie itd). Nie będę ich tutaj jednak opisywał ze względu na skomplikowaną postać matematyczną. Podpowiem tylko, że dodawanie dwóch macierzy jest możliwe tylko wtedy, gdy oba macierze są tych samych wymiarów. Jeżeli taki warunek jest spełniony, to wykonujemy dodawanie dodając współczynniki na odpowiadających sobie miejscach.

Następne działanie to mnożenie macierzy przez skalar. Jako skalar rozumiemy dowolną liczbę rzeczywistą bądź zespoloną. Takie działanie wykonuje się bardzo prosto: mnoży się kolejne wyrazy macierzy przez ten skalar.

Gorzej ma się sprawa jeżeli chodzi o mnożenie macierzy. Nie jest to działanie przemienne! Zatem nie jest obojętnie, czy mnożymy np. A*B, czy też B*A (w tym wypadku wyniki są różne). Działanie jest możliwe, jeżeli ilość wierszy / kolumn jednej macierzy równa się odpowiednio: ilości kolumn / wierszy drugiej macierzy. Ale jak już wspomniał, nie będziemy tutaj mnożyć macierzy - jeżeli tego nie umiesz, znaczy, że wiedza ta nie jest ci potrzebna.

Macierz kwadratowa stopnia n nazywamy macierzą diagonalną, jeżeli wszystkie liczby oprócz głównej przekątnej macierzy są równe zeru. Główna przekątna macierzy to linia od "lewego górnego rogu" do "dolnego prawego rogu". Mnożenie macierzy diagonalnych jest przemienne.

Jeżeli natomiast mamy macierz diagonalną, a wszystkie elementy na głównej jej przekątnej są równe "1", to macierz tę nazywamy macierzą jednostkową i oznaczamy dużą literą "I". Mówimy o niej, że jest obiektem "neutralnym" dla mnożenia, ponieważ dla każdej macierzy A zachodzi: A*I=A.

Jeżeli w dowolnej macierzy przestawimy wiersze i kolumny, tak aby kolumny stały się wierszami, a wiersze kolumnami to otrzymamy tzw. macierz transponowaną. Jeżeli macierz ma wymiar n*k, to macierz do niej transponowana ma wymiar k*n. Jeżeli macierz transponowaną, transponujemy, wrócimy do macierzy pierwotnej.

Kolejnym bardzo ważnym pojęciem jest wyznacznik macierzy. Jest to najogólniej mówiąc funkcja, która każdej macierzy przyporządkowuje liczbę zespoloną (lub rzeczywistą). Liczenie wyznacznika macierzy dla macierzy wielowymiarowych jest bardzo skomplikowane, są jednak metody na ich obliczanie.

Ważniejsze własności wyznaczników:

- jeżeli chociaż jeden wiersz macierzy ma wszystkie elementy równe zero, wyznacznik tej macierzy równa się zero.
- wyznacznik zmieni znak, jeżeli przestawimy w macierzy dwa wiersze lub dwie kolumny.
- jeżeli każdy element pewnego wiersza lub kolumny pomnożymy przez dowolną liczbę "C", to wyznacznik macierzy będzie również pomnożony przez liczbę "C".

I to tyle jeżeli chodzi o wiadomości wstępne. Macierze mają różnorakie zastosowania, głównie w fizyce bądź matematyce (między innymi do rozwiązywania układów równań z dużą ilością niewiadomych). Właściwie, to sam ten dział wiedzy jest dość obszerny i wychodzi poza zakres "standardowej" matematyki.

7 komentarzy

Mathie 2003-05-09 23:40

Cześć!
Jestem tu nowy, ale bardzo mnie cieszy, że wreszcie odnalazłem ten serwis... bo JEST NAPRAWDĘ COOL!!! :))

jeśli chodzi o program do operacji na macierzach to napisałem takowy w Delphi...
Mnożył, dodawał, odejmował i transponował...
Liczenie wyznaczników mnie troche dobiło ( wiem, że należy zastosować rekurencję ale jakoś nie chciało mi to wyjść - błędu znaleźć nie mogłem). Jak kogoś to interesuje to mogę wysłać kody źródłowe najważniejszych funkcji.



Deti 2003-07-13 15:07

Też miałem próby programu obliczającego wyznacznik macierzy, ale niestyty - zbyt skomplikowana rekurencja mnie powaliła na kolana... :(

Deti 2003-01-04 11:55

Jeżeli ten program wylicza też wyznacznik macierzy i macierz odwrotną to ja byłbym chętny !

lofix 2003-01-04 01:22

Kiedyś zrobiliśmy z kolega program do obliczania macierzy..jeżeli znajde źródła to moge podeslac chętnym

Dryobates 2003-01-02 22:12

"Tak Dryo masz racje, ale "naturalne" jest, że pierwszy zapis ARRAY w tablicy odnosi się do pierwszego wymiaru, zatem mam rację (mam nadzieję :))"
Pierwszego wymiaru :) Cóż, zawsze byłem dziwny. Dla mnie pierwsza wartość zawsze wskazuje nr wiersza, druga nr kolumny. Czy to tablicza czy macierz:
a11 a12 a13
a21 a22 a23
a31 a32 a33
:)

Deti 2003-01-02 20:42


DETOX napisał:
" I tutaj istotna uwaga: w macierzach oznaczenia wymiarów są odwrotne niż w tablicach!!! Przykład:
- w tablicy element trzeci w pierwszym wymiarze to c[3,1]; - w macierzy natomiast jest to: c[1,3];
Zatem jak widać nie trudno o pomyłkę. "
Nie zgodzę się z tym. To jakie współrzędne przyjmiemy w tablicach zależy tylko od programisty. c[1,3] może być elementem w 1 wierszu i 3 kolumnie lub 3 wierszy i 1 kolumnie.



Tak Dryo masz racje, ale "naturalne" jest, że pierwszy zapis ARRAY w tablicy odnosi się do pierwszego wymiaru, zatem mam rację (mam nadzieję :))

Dryobates 2003-01-02 16:29

DETOX napisał:
" I tutaj istotna uwaga: w macierzach oznaczenia wymiarów są odwrotne niż w tablicach!!! Przykład:
- w tablicy element trzeci w pierwszym wymiarze to c[3,1]; - w macierzy natomiast jest to: c[1,3];
Zatem jak widać nie trudno o pomyłkę. "
Nie zgodzę się z tym. To jakie współrzędne przyjmiemy w tablicach zależy tylko od programisty. c[1,3] może być elementem w 1 wierszu i 3 kolumnie lub 3 wierszy i 1 kolumnie.

"Nie będę ich tutaj jednak opisywał ze względu na skomplikowaną postać matematyczną."
To po co pisać ten artykuł? Niewiele on wprowadza i żeby czekokolwiek się dowiedzieć trzeba dalej szukać. O tym, że istnieje coś takiego jak macierze to można wszędzie usłyszeć.
Cieszę się, że piszesz artykuły, ale postaraj się, by wnosiły one trochę więcej wiedzy.