Wyklad_WektoryMacierze_11-11-08.nb 1
PRZED ZAJCIAMI PROSZ DOKAADNIE PRZESTUDIOWAĆ
WYKAAD ORAZ TEORI UMIESZCZON NA STRONIE.
<< LinearAlgebra`MatrixManipulation`
H" wczytanie pakietu zawierającego dodatkowe funkcje działań na macierzach,
cudzysłow użyty w nazwie to znak z klawiatury stojący pod tyldą
H<"L. Należy nazwę pakietu skompilować przed użyciem funkcji należacej
do pakietu. W przypadku skompilowania zadania bez uprzedniego
skompilowania HwczytaniaL pakietu należy wyczyścić jądro programu
HKernel->Quit Kernel->QuitL i następnie rozpocząć od wczytania pakietu "L
n = Random@Integer, 83, 10
A = Table@Random@Integer, 8-5, 5MatrixForm@AD
5 1 -2 5
i y
j z
j z
j z
0 5 -1 0
j z
j z
j z
j z
j -3 2 -5 3
z
j z
j z
j z
-1 -2 5 0
k {
Wyklad_WektoryMacierze_11-11-08.nb 2
Take@A, 81, 2<, 81, nH" wypisanie elementów stojących w wierszach od pierwszego
do drugiego i w kolumnach od 1 do n-tej "L
5 1 -2 5
J N
0 5 -1 0
H" to samo możemy uzyskać korzystając z funkcji
występującej we wczytanym pakiecie: TakeRows - pobierz wiersze "L
TakeRows@A, 2DęęMatrixForm H" wypisanie dwóch pierwszych wierszy macierzy A"L
5 1 -2 5
J N
0 5 -1 0
Wyklad_WektoryMacierze_11-11-08.nb 3
H" proszę zwrócić uwagę na sposoby zapisu przez program zadanych
wyrażeń: wypisanie tylko drugiego wiersza macierzy A - kilka sposobów "L
A@@2DD
Table@A@@2, jDD, 8j, 1, nTake@A, 82Take@A, 82<, 81, nTake@A, 82<, 81, nTakeRows@A, 82TakeRows@A, 8280, 5, -1, 0<
80, 5, -1, 0<
880, 5, -1, 0<<
880, 5, -1, 0<<
H 0 5 -1 0 L
880, 5, -1, 0<<
H 0 5 -1 0 L
Wyklad_WektoryMacierze_11-11-08.nb 4
Take@A, All, 2DęęMatrixForm
Take@A, 81, n<, 2DęęMatrixForm
H" wypisanie elementów stojących w wierszach od pierwszego do n-
tego i w kolumnie 2 "L
5 1
i y
j z
j z
j z
0 5
j z
j z
j z
j z
j -3 2
z
j z
j z
j z
-1 -2
k {
5 1
i y
j z
j z
j z
0 5
j z
j z
j z
j z
j -3 2
z
j z
j z
j z
-1 -2
k {
H" to samo możemy uzyskać korzystając z funkcji występującej
we wczytanym pakiecie: TakeColumns - pobierz kolumny "L
TakeColumns@A, 2DęęMatrixForm H" wypisanie dwóch pierwszych kolumn macierzy A"L
5 1
i y
j z
j z
j z
0 5
j z
j z
j z
j z
j -3 2
z
j z
j z
j z
-1 -2
k {
Wyklad_WektoryMacierze_11-11-08.nb 5
A@@All, 2DD
A@@All, 2DD ęę MatrixForm
Table@A@@i, 2DD, 8i, 1, nTable@A@@i, 2DD, 8i, 1, nTake@A, All, 82Take@A, 81, n<, 82Take@A, 81, n<, 82TakeColumns@A, 82TakeColumns@A, 8281, 5, 2, -2<
1
i y
j z
j z
j z
5
j z
j z
j z
j z
j z
2
j z
j z
j z
-2
k {
81, 5, 2, -2<
1
i y
j z
j z
j z
5
j z
j z
j z
j z
j z
2
j z
j z
j z
-2
k {
881<, 85<, 82<, 8-2<<
881<, 85<, 82<, 8-2<<
Wyklad_WektoryMacierze_11-11-08.nb 6
1
i y
j z
j z
j z
5
j z
j z
j z
j z
j z
2
j z
j z
j z
-2
k {
881<, 85<, 82<, 8-2<<
1
i y
j z
j z
j z
5
j z
j z
j z
j z
j z
2
j z
j z
j z
-2
k {
H" wypisanie podmacierzy macierzy A "L
Take@A, 81, 3<, 81, 4H" wypisanie elementów stojących w wierszach od 1 do 3 i w kolumnach od 1 do 4 "L
5 1 -2 5
i y
j z
j z
j z
0 5 -1 0
j z
j z
j z
-3 2 -5 3
k {
Wyklad_WektoryMacierze_11-11-08.nb 7
H" to samo możemy uzyskać korzystając z funkcji
występującej we wczytanym pakiecie: TakeMatrix - pobierz macierz "L
TakeMatrix@A, 81, 1<, 83, 4H" wypisanie podmacierzy zaczynającej się od elementu stojącego na pozycji H1,1L
w A i kończącej się na elemencie stojącym na pozycji H3,4L w macierzy A "L
5 1 -2 5
i y
j z
j z
j z
0 5 -1 0
j z
j z
j z
-3 2 -5 3
k {
H" to samo możemy uzyskać korzystając z funkcji
występującej we wczytanym pakiecie: TakeMatrix - pobierz macierz "L
SubMatrix@A, 81, 1<, 83, 4H" wypisanie podmacierzy zaczynającej się od elementu stojącego na
pozycji H1,1L w A o wymiarze: 3 x4 Htrzy wiersze, cztery kolumnyL "L
5 1 -2 5
i y
j z
j z
j z
0 5 -1 0
j z
j z
j z
-3 2 -5 3
k {
Wyklad_WektoryMacierze_11-11-08.nb 8
TakeMatrix@A, 82, 2<, 83, 4SubMatrix@A, 82, 2<, 82, 35 -1 0
J N
2 -5 3
5 -1 0
J N
2 -5 3
Wyklad_WektoryMacierze_11-11-08.nb 1
Zadanie 1. Z macierzy kwadratowej A dowolnego wymiaru n utworzy nową macierz
Bzłożoną z czterech podmacierzy A o wymiarach Hn - 1L x Hn - 1L. Następnie w
nowej macierzy B elementy stojące w pierwszym wierszu, ostatnim wierszu,
pierwszej kolumnie i ostatniej kolumnie zamieni na zera. Np. dla macierzy A =
8 2 2 5 0 0 0 0
i y i y
j z j z
8 2 5
j z j
i y
j z j z
j z
6 10 10 4
j z, ostatecznie dostajemy macierz j 0 10 10 0 z
z.
j z
j z j z
j z
6 10 4 macierz B = j z j z
j z
j z j z
j z
j z j z j z
6 10 10 4 0 10 10 0
j z j z
j z j z
3 4 8 j z j z
k {
3 4 4 8 0 0 0 0
k { k {
<< LinearAlgebra`MatrixManipulation`
Wyklad_WektoryMacierze_11-11-08.nb 2
Clear@AD;
n = Random@Integer, 83, 6A = Partition@Table@Random@Integer, 81, 10Print@"Macierz wyjściowa: ", MatrixForm@ADD;
a =
BlockMatrix@88TakeMatrix@A, 81, 1<, 8n - 1, n - 18TakeMatrix@A, 82, 1<, 8n, n - 1H" funkcja BlockMatrix tworzy macierz blokową łącząc w jedną mcierz
podane podmacierze, wymiaru podmacierzy muszą być zgodne -
przećwiczyć różne możliwości łączenia podmacierzy "L
Print@"Macierz blokowa: ", MatrixForm@aDD;
H" zerowanie elementów macierzy blokowej "L
Table@a@@1, iDD = 0H"wyzeruj element z pierwszego wiersza i i-tej kolumny"L;
a@@i, 1DD = 0H"wyzeruj element z i-tego wiersza i 1 kolumny"L;
a@@Length@aD, iDD = 0;
a@@i, Length@aDDD = 0,
8i, 1, Length@aDPrint@"Macierz wynikowa: ", MatrixForm@aDD
8 2 5
i y
j z
j z
j z
Macierz wyjściowa: 6 10 4
j z
j z
j z
3 4 8
k {
Wyklad_WektoryMacierze_11-11-08.nb 3
8 2 2 5
i y
j z
j z
j z
6 10 10 4
j z
j z
Macierz blokowa: j z
j z
j z
6 10 10 4
j z
j z
j z
3 4 4 8
k {
0 0 0 0
i y
j z
j z
j z
0 10 10 0
j z
j z
Macierz wynikowa: j z
j z
j z
0 10 10 0
j z
j z
j z
0 0 0 0
k {
MatrixForm@BlockMatrix@8H"nawias zewnętrzny nowej macierzy"L
8 H"nawias wiersza nowej macierzy"L 881, 2<, 82, 3<<, 881, 2<, 82, 3<< <,
8 H"nawias wiersza nowej macierzy"L 881, 2<, 82, 3<< , 881, 2<, 82, 3<<< < DD
1 2 1 2
i y
j z
j z
j z
2 3 2 3
j z
j z
j z
j z
j z
1 2 1 2
j z
j z
j z
2 3 2 3
k {
Wyklad_WektoryMacierze_11-11-08.nb 1
Zadanie 2. Zdefiniować pure function,
która dla macierzy kwadratowej A dowolnego wymiaru nxn Hpodanego przez sprawdzającegoL
będzie zwracać wyznacznik nowej macierzy B wymiaru 2 x2,
której elementy są wyznacznikami podmacierzy Hn - 1L x Hn - 1L macierzy A. Np. A =
9 8 5 9
i y
j z
j z
j z
5 4 8 9
j z, B = J 390 558 N wynikiem jest wyznaczik macierzy B równy 81452<.
j z
j z
j z
j z
6 3 3 5 198 418
j z
j z
j z
8 6 5 7
k {
<< LinearAlgebra`MatrixManipulation`
Wyklad_WektoryMacierze_11-11-08.nb 2
Clear@AD;
n = 4;
pom = Table@Random@Integer, 81, 10B = Partition@pom, nD;
MatrixForm@BD
fun = Function@A,
U = 8Det@TakeMatrix@A, 81, 1<, 8n - 1, n - 1Det@TakeMatrix@A, 82, 1<, 8n, n - 1Det@Partition@U, 2DDD;
MatrixForm@Partition@U, 2DD
fun@BD
9 8 5 9
i y
j z
j z
j z
5 4 8 9
j z
j z
j z
j z
j z
6 3 3 5
j z
j z
j z
8 6 5 7
k {
390 558
J N
198 418
81452<
Wyklad_WektoryMacierze_11-11-08.nb 1
Zadanie 3. Z macierzy kwadratowej dowolnego wymiaru stworzy macierz
symetryczną odpowiednio przekształcając elementy nad przekątną,
6 13 9y 6 8 6y
i i
j z j z
j j z.
j z j z
np. dla macierzy 8 9 7z otrzymamy 8 9 15
j z j z
j z j z
j z j z
6 15 17 6 15 17
k { k {
<< LinearAlgebra`MatrixManipulation`
n = Random@Integer, 83, 5A = Table@Random@Integer, 81, 20A ęę MatrixForm
6 13 9
i y
j z
j
j z
8 9 7z
j z
j z
j z
6 15 17
k {
H" przypisanie do funkcji dwóch zmiennych wartości
macierzy stojącej na pozycjach wskazanych przez zmienne funkcji "L
f@i_, j_D := A@@i, jDD;
g@i_, j_D := A@@j, iDD;
H" wyniki otrzymane poniżej wygodnie
jest rozpisać dla zrozumienia na kartce papieru "L
Wyklad_WektoryMacierze_11-11-08.nb 2
U = UpperDiagonalMatrix@g, Length@ADD; H" wykorzystujemy funkcję g@i,jD,
która pobierze wartości z macierzy A zamieniając kolumny z wierszami "L
Print@"Macierz trójkątna górna: ", MatrixForm@UDD
L = LowerDiagonalMatrix@f, Length@ADD;
H" wykorzystujemy funkcję f@i,jD,
która pobierze wartości z macierzy A nie zmieniając ich miejsc "L
Print@"Macierz trójkątna dolna: ", MatrixForm@LDD
list = Table@A@@i, iDD, 8i, 1, Length@ADH" lista elementów stojących na głównej przekątnej macierzy A "L
S = DiagonalMatrix@listD;
Print@"Macierz diagonalna utworzona z macierzy wyjściowej: ", MatrixForm@SDD
Print@"Macierz wynikowa symetryczna: ", L + U - S ęę MatrixFormD
6 8 6
i y
j z
j z
j z
Macierz trójkątna górna: 0 9 15
j z
j z
j z
0 0 17
k {
6 0 0
i y
j z
j
j z
Macierz trójkątna dolna: 8 9 0z
j z
j z
j z
6 15 17
k {
6 0 0
i y
j z
j
j z
Macierz diagonalna utworzona z macierzy wyjściowej: 0 9 0z
j z
j z
j z
0 0 17
k {
Wyklad_WektoryMacierze_11-11-08.nb 3
6 8 6
i y
j z
j z
j z
Macierz wynikowa symetryczna: 8 9 15
j z
j z
j z
6 15 17
k {
Wyklad_WektoryMacierze_11-11-08.nb 1
Zadanie 4. Dla macierzy o wymiarze nxm Hnimsą losowo wybrane z przedziału H2, 8LL
wykonać następujące czynności : jeśli n = m,
to wyliczyć wyznacznik macierzy; jeśli n > m Hwięcej wierszy niż kolumnL,
to utworzyć dwuwierszową macierz złożoną z pierwszego i ostatniego wiersza,
8 -6
i y
j z
j
j z
-7 1z
j z
j z
j z
j
j -5 0z 8 -6
z
j z
j z
np. dla dostaniemy J N; jeśli n < m,
j z
j z
j 9 5 z 5 -4
j z
j z
j
j z
-3 0z
j z
j z
j z
5 -4
k {
to utworzyć dwukolumnową macierz złożoną z pierwszej i ostatniej kolumny,
-8 -5 -7 3 -4 2 8y -8 8y
i i
j z j z
j z j z.
j z j z
np. dla -6 10 -10 1 -2 -8 10 dostaniemy -6 10
j z j z
j z j z
j z j z
-4 -4 -3 -10 2 0 3 -4 3{
k { k
<< LinearAlgebra`MatrixManipulation`
Wyklad_WektoryMacierze_11-11-08.nb 2
n = Random@Integer, 82, 8m = Random@Integer, 82, 8mac = Table@Random@Integer, 8-10, 10MatrixForm@macD
If@SquareMatrixQ@macDH" funkcja sprawdza czy macierz mac jest kwadratowa "L,
Det@macD H" wyliczenie wyznacznika "L,
If@n > m H" więcej wierszy niż kolumn "L,
AppendColumns@TakeRows@mac, 81H" wez wiersz ostatni "LDH" połącz kolumnami - mając wiersze tworzymy
macierz przez połaczenie elementów kolumnowo "L ęę MatrixForm,
AppendRows@TakeColumns@mac, 81TakeColumns@mac, 8mH" połącz wierszami - mając kolumny tworzymy macierz przez
połaczenie elementów wierszowo "L ęę MatrixForm
D
D
-8 -5 -7 3 -4 2 8
i y
j z
j z
j z
-6 10 -10 1 -2 -8 10
j z
j z
j z
-4 -4 -3 -10 2 0 3
k {
-8 8
i y
j z
j z
j z
-6 10
j z
j z
j z
-4 3{
k
Wyklad_WektoryMacierze_11-11-08.nb 3
n = Random@Integer, 82, 8m = Random@Integer, 82, 8mac = Table@Random@Integer, 8-10, 10MatrixForm@macD
If@SquareMatrixQ@macD,
Det@macD ,
If@n > m,
AppendColumns@TakeRows@mac, 81AppendRows@TakeColumns@mac, 81D
D
2 -8
i y
j z
j z
j z
1 3
j z
j z
j z
j z
j z
0 -10
j z
j z
j z
j z
j -10 5 z
j z
j z
j z
j z
3 10
j z
j z
j z
7 -1
k {
2 -8
J N
7 -1
Wyszukiwarka
Podobne podstrony:
Wyklad WektoryMacierze 11 08
Wyklad AnalizaMat 11 08
2010 11 08 WIL Wyklad 08id 175
wyklad 7 zap i, 11 2013
Wyklad ElementyProg 12 08
socjo wykład z 26 11
5 Analiza systemowa wykłady PDF 11 z numeracją
TI 00 11 08 T B M pl(1)
wyklad 8 zap i, 11 2013
Techniki negocjacji i mediacji w administracji wykłady 05 11 2013
Wyklad LiczbyZmienne 10 08
11 08
Wyklad OperacjeNaListach 10 08
Analiza Wykład 8 (25 11 10)
KPC Wykład (7) 13 11 2012
więcej podobnych podstron