Quit[]

Macierze

Macierze i wyznaczniki

Clear[M,U,V,v,a]

Macierze (składnia)

Wprowadzam macierz

M=(({{1, 2, 3}, {2, 4, 6}, {3, 6, 9}}))

M
M//MatrixForm

Uwaga: niedozwolona operacja:

M1=M//MatrixForm

V={{a},{b},{c}}

M.V

M1.V

Mnożenie macierzy

(({{1, 2, 0}, {2, 2, 2}, {0, 2, 1}})).(({{1, 2, 3}, {2, 4, 6}, {3, 6, 9}})) //MatrixForm

Mnożenie macierzy  jest oczywiście nieprzemienne

(({{1, 2, 3}, {2, 4, 6}, {3, 6, 9}})).(({{1, 2, 0}, {2, 2, 2}, {0, 2, 1}}))//MatrixForm

M1=(({{1, 2, 3}, {2, 4, 6}, {3, 6, 9}}));
M2=(({{1, 2, -3}, {2, 2, 2}, {0, 2, 1}}));

M1.M2//MatrixForm
M2.M1//MatrixForm

MatrixPower[M2,3]//MatrixForm

Wyznacznik i ślad (Det, Tr)

Det[M2]

Tr[M2]

Macierz odwrotna (Inverse)

Inverse[M2]//MatrixForm

Inverse[M2].M2//MatrixForm

Macierz transponowana (Transpose)

Transpose[M2]//MatrixForm

Wymiar, rząd (Dimensions, ArrayDepth)

M3=(({{2, 1, 0}, {4, 2, 0}, {1, 2, 1}}))

Rozmiar macierzy 3 x 3

Dimensions[M3]

Rząd tensorowy macierzy 3 x 3 (ilość wskaźników tensora, walencja)

TensorRank[M3]
ArrayDepth[M3]

Przykład tensora  wyższego rzędu

M=Array[f,{3,2,4,7,5,3}];
ArrayDepth[M]

Macierz takiego tensora jest "kostką" w przestrzeni 6 wymiarowej. Rozmiary tej kostki to 3 x 2 x 4 x 7 x 5 x 3.

Rząd macierzy

Det[M3]
MatrixRank[M3]

Diagonalizacja

Diagonalizacja (Eigensystem)

M=(({{1a, 2, 0}, {2, 2a, 2}, {0, 2, 1a}})) ;

Det[M]

Eigenvalues[M]//Simplify

Nieunormowany układ wektorów własnych:

uklad=Eigensystem[M];
%//MatrixForm

Prawostronne i lewostronne wektory własne

Prawostronne i lewostronne wektory własne macierzy symetrycznej są identyczne (wzajemnie transponowane)

Rachunek przy użyciu list

M.{-1,0,1}==a {-1,0,1}
{-1,0,1}.M==a {-1,0,1}

Rachunek przy użyciu wektorów

M.{{-1},{0},{1}}==a {{-1},{0},{1}}

(({{a, 2, 0}, {2, 2 a, 2}, {0, 2, a}})) .(({{-1}, {0}, {1}}))==a (({{-1}, {0}, {1}}))

{{-1,0,1}}.M==a {{-1,0,1}}

(({{-1, 0, 1}})).(({{a, 2, 0}, {2, 2 a, 2}, {0, 2, a}})) ==a (({{-1, 0, 1}}))

Macierz diagonalizująca

uklad[[2]]

Macierz wektorów własnych ustawionych kolumnami

U=Transpose[uklad[[2]]];
%//MatrixForm

Inverse[U].M.U//FullSimplify//MatrixForm

Unormowane wektory własne

Unorm=FullSimplify[Transpose[Normalize/@uklad[[2]]],a∈Reals];
%//MatrixForm

Taka macierz jest macierzą ortogonalną

Transpose[Unorm].Unorm;
%//Simplify//MatrixForm

Transpose[Unorm].M.Unorm;
%//FullSimplify//MatrixForm

Inne operacje na macierzach

Manipulacje na wierszach i kolumnach

M=(({{2, 3, 4}, {3, 4, 5}, {4, 5, 6}}))

Position[M,6]

Take[M,2]//MatrixForm

Inne (dowolne) operacje

M1//MatrixForm

1/(#1+K)&[M]//MatrixForm

Niektóre macierze specjalne

RotationMatrix[θ]//MatrixForm

RotationMatrix[θ,{1,1,1}]//MatrixForm

r=RotationTransform[θ,{0,0,1}]

r[{x,y,z}]

Zadania

Zadanie 1.

Sprawdzić następujące twierdzenie:
( Andrzej Herdegen,  WYKŁADY Z ALGEBRY LINIOWEJ I GEOMETRII,  §9)

Twierdzenie 4. Rząd macierzy nie ulega zmianie przy następujących operacjach na macierzy:
(i) przestawieniu kolumn lub wierszy;
(ii) pomnożeniu dowolnej kolumny lub wiersza przez liczbę różną od zera;
(iii) dodaniu do dowolnej kolumny lub wiersza macierzy dowolnej kombinacji liniowej pozostałych kolumn lub wierszy odpowiednio.

Zadanie 2.

( Henryk Arodź, Krzysztof Rościszewski,  ALGEBRA I GEOMETRIA ANALITYCZNA W ZADANIACH,  Rozdz. 6, przykład)

Znaleźć wartości własne λ, wektory własne X  i macierz diagonalizującą U macierzy symetrycznej A

A=(({{0, 2, -1}, {2, 0, -1}, {-1, -1, 3}}))

Powtórzyć zadanie dla macierzy

A=(({{-4, 2, 3}, {2, -1, 6}, {3, 6, 4}}))

Zadanie wykonać korzystając z odpowiednich poleceń języka Mathematica przeznaczonych do diagonalizacji macierzy.

źródło notatnika

Algebra Komputerowa  (http://mth.drac.oa.uj.edu.pl/public.php?pubcase=lecture)
Wersja programu: Mathematica 7

Andrzej Woszczyna
Wydział Fizyki, Astronomii i Informatyki Stosowanej
Uniwersytet Jagielloński