ZA
A
JĘCI
2
2
2
WPROWADZENIE DO INFORMATYKI II
MATLAB OPERACJE MACIERZ
Z
OWE
M
M
A
A
T
T
L
L
A
A
B
B
O
O
P
P
E
E
R
R
A
A
C
C
J
J
E
E
M
M
A
A
C
C
I
I
E
E
R
R
ZO
O
W
W
E
E
ZADANIA DO WYKONANIA 1
1. Proszę zapoznać się z przedstawionymi zagadnieniami i samodzielnie wykonać
obliczenia.
% Określenie macierzy A i B o wymiarze 3x3
»A=[1 2 3; 4 5 6; 7 8 9];
» B=[11 12 13; 21 22 23; 31 32 33];
%Suma
» A+B
»% Różnica
» A-B
» %Iloczyn macierzy
» A*B
• ROZWIĄZANIE LINIOWEGO UKŁADU RÓWNAŃ [A] [X] = [B] METODĄ
REDUKCJI GAUSSA
» % LEWE DZIELENIE
» % Rozwiązanie układu równań A*x=b metodą redukcji Gaussa
» % Przedefiniowanie macierzy A
» A=B
»% Definicja wektora kolumnowego prawej strony równania
» b=[10; 20; 30]
»% Rozwiązanie układu równań A*x=b
» x=A\b
» % Sprawdzenie
» bb=A*x
• ROZWIĄZANIE LINIOWEGO UKŁADU RÓWNAŃ [X] [A] = [B]
»% PRAWE DZIELENIE - rozwiązanie układu równań x*A=b
»A=[11 21 31;12 22 32; 13 23 33]
»% Definicja wektora wierszowego prawej strony równania
» b= [11 1 2 1 3 ]
»% Rozwiązanie
» x=b/A
» % Sprawdzenie
» bb=x*A
• POTĘGOWANIE MACIERZY JEST DOKONYWANE ZGODNIE Z RELACJĄ
»A^ ; % P - dowolna liczba rzeczywista
W przypadku, gdy p jest potęgą całkowitą, podniesienie macierzy do potęgi jest równo-
ważne wzajemnemu krotnemu pomnożeniu przez siebie, np.:
A^3 = A*A*A.
Poniżej przedstawiono przykład sesji przy potęgowaniu macierzy kwadratowej (3x3)
» A=[1 4 5; 6 2 7; 893]
»% podniesienie macierzy A do kwadratu
» B=A^2
»% PODNIESIENIE MACIERZY A do potęgi 1.5
» A^1.5
• DZIAŁANIEM ODWROTNYM DO POTĘGOWANIA MACIERZY JEST JEJ
ROZKŁAD NA ILOCZYN DWÓCH MACIERZY. JEDEN Z CZYNNIKÓW
ROZKŁADU WYZNACZA FUNKCJA:
» C=sqrtm(B)
W efekcie macierz C spełnia zależność: B = C*C
Macierz C różni się od wyżej zdefiniowanej macierzy A, która podniesiona do
drugiej potęgi daje macierz B. Wynika to z faktu, że istnieje więcej niż jedno rozwiąza-
nie zagadnienia rozkładu macierzy na dwa takie same czynniki. Można jednak spraw-
dzić, że macierz C
2
jest równa macierzy B.
1
» BB=C^2
OPERACJE TABLICOWE
• PRZYKŁADEM KORESPONDUJĄCYM Z PODNIESIENIEM DO K
TU MACIERZY A JEST PODNIESIENIE DO KWADRATU JEJ ELEMEN-
TÓW – OPERACJA .^2 .
WADRA-
O-
rze-
A =
1 4 5
6 2
7
8 9
3
» AA=A.^2
• WYZNACZENIE PIERWIASTKA KWADRATOWEGO Z ELEMENTÓW
MACIERZY JEST DZIAŁANIEM
odwrotnym.
» AAA=sqrt (AA)
Działaniem równoważnym jest
» AAA=AA.^0.5.
• ELEMENTY MACIERZY MOGĄ BYĆ PODNOSZONE DO DOWOLNEJ P
TĘGI RZECZYWISTEJ I ZESPOLONEJ ZGODNIE Z FORMUŁĄ:
»A.^p ; % P - dowolna liczba rzeczywista lub zespolona,
Przy obliczaniu odwrotności elementów macierzy lub wektora należy postępować
według reguły
»1.0./x % należy wstawić pełną liczbę 1.0 , a nie skróconą 1
Przykłady innych operacji na elementach macierzy przedstawione są poniżej
»% MNOŻENIE I DZIELENIE
» x=[2 4 6]; y=[3 5 7]; % Dwa wektory wierszowe
» x.*y
» x./y
» z=x.^y
»% EKSPONENTA exp(B) - działanie na elementach macierzy
» B=[O 1 2; 2 3 4; O 1 3];
» exp(B)
BUDOWANIE MACIERZY
Przy budowaniu macierzy pomocne są tzw. macierze specjalne, dzięki którym można
tworzyć charakterystyczne struktury pośrednie. Do tego celu również służą funkcje p
twarzania postaci macierzy.
2
Macierze specjalne
zeros (m, n) - macierz zerowa o wymiarach mxn (m - liczba wierszy, n - liczba kolumn),
ones (m, n) - macierz jedynek o wymiarach mxn,
eye (m, n) - macierz jednostkowa o wymiarach mxn,
rand(m,n) - macierz losowa o wymiarach mxn i wartościach rzeczywistych z przedziału
O do 1;
randn - o rozkładzie normalnym,
magic(n) - kwadrat magiczny (macierz kwadratowa o wymiarze n),
hilb (n) - macierz Hilberta
toeplitz(c, r) - macierz pasmowa Toeplitza, gdzie c - pierwsza kolumna macierzy (
tor), r - pierwszy wiersz macierzy (wektor),
wek-
olum-
linspace - generowanie wektora o liniowo rozłożonych wartościach i o zadanej liczbie
punktów; y=linspace(x1,x2,n)
logspace - działa podobnie jak linspace,
Funkcje przekształcania macierzy
diag (A) - wyznaczanie diagonalnej macierzy A i zapisanie w postaci wektora k
nowego;
X=diag (v, k) - utworzenie macierzy kwadratowej X rzędu n +abs(k) , której elementy
niezerowe leżą na k-tej diagonalnej i są przeniesione na tę diagonalną z n-elementowego
wektora v; dla k=O jest to diagonalna główna, dla k <O jest to k-ta diagonalna poniżej
głównej, natomiast dla k>Ojest to k-ta diagonalna powyżej głównej; X=diag (v) = diag
(v, O);
v=diag (A, k) - wyznaczenie k-tej diagonalnej macierzy A,
triu (A) - podmacierz trójkątna, górna macierzy A,
rot90 (A) - obrócenie macierzy o 90
o
przeciwnie do wskazówek zegara,
fliplr (A) - symetryczne przekształcenie macierzy A względem pionowej osi symetrii
(wzajemna zamiana lewej strony na prawą),
flipud (A) - symetryczne przekształcenie macierzy A względem poziomej osi symetrii
(wzajemna zamiana strony górnej na dolną),
reshape (A, m, n) - zmiana kształtu macierzy A na macierz o m wierszach i n kolumnach
(liczba elementów macierzy A musi być równa m-n).
PRZYKŁADY BUDOWANIA I PRZEKSZTAŁCANIA MACIERZY
»% MACIERZ ZEROWA
»A=zeros(3,2)
»% MACIERZ JEDYNKOWA
»B=ones(3,2) !
» % MACIERZ JEDNOSTKOWA
» C=eye(3,2)
» D=eye(2,3)
» E=eye(3,3)
3
• DLA DANEJ, PEWNEJ MACIERZY A MOŻNA WYGENEROWAĆ MA-
CIERZ ZEROWĄ ZEROS (SIZE (A) ) O WYMIARACH MACIERZY A. PO-
DOBNIE JEST Z FUNKCJAMI ONES (SIZE (A)) I EYE(SIZE(A)).
»% NOWA macierz A
»A=[10 3 5; 2 4 6; 7 8 9]
»% DIAGONALNA MACIERZY
» diag (A)
» % WYZNACZNIK MACIERZY
» det (A)
» % PODMACIERZ TRÓJKĄTNA GÓRNA
» triu (A)
» % PODMACIERZ TRÓJKĄTNA DOLNA
» tril(A)
»% OBRÓT MACIERZY A o 90 stopni, przeciwnie do wskazówek
»% zegara
» rot90(A)
»% WZAJEMNE PRZEKSZTAŁCENIE SYMETR. mac. A: LEWY-PRAWY
» fliplr(A)
»% WZAJEMNE PRZEKSZTAŁCENIE SYMETR. mac. A: GÓRA-DÓŁ
» flipud(A)
»% GENEROWANIE MACIERZY LOSOWEJ )
» rand(3,2)
» % KWADRAT MAGICZNY ..,'i:Ji;/i,,~;~~,c'.'~q} .-:'
» magic(3)
» % BUDOWANIE MACIERZY ZŁOŻONYCH
» A= [1 2 3; 4 5 6; 7 8 9];
» B=[A A.^2 ; zeros(size(A)) A"]
• Z DWÓCH WEKTORÓW WIERSZOWYCH X I Y MOŻNA STWORZYĆ JE-
DEN. TRAKTUJĄC JE JAKO ELEMENTY
MACIERZY. WÓWCZAS:
» x = [2 4 6] ; Y = [3 5 7];
» z = [x y]
z jest wektorem wierszowym sześcioelementowym
»% ZMIANA KSZTAŁTU MACIERZY
A =
1
2
3
4
5
6
7
8
9
» B=reshape(A, 1, 9)
»% AUTOMATYCZNE WYGENEROWANIE MACIERZY
»% Stan początkowy - macierz A nie istnieje
»% Podajemy wartość pewnego elementu macierzy A
»A(3,4) = 5
4
ZADANIA DO WYKONANIA 2
1.
2.
Wygeneruj macierz dwuwierszową o wyrazach od 1 do 10 w pierwszym wier-
szu i o wyrazach od 2 do 20 (co 2) w wierszu drugim.
Utwórz macierz D budując ją ze zdefiniowanych macierzy A, B i C.
A=[1 4 1; 2 0 1];
B=[3 1; 4 1];
C=[1 2 2 0 1; 2 4 7 1 0];
D=[A B; C]
3.
4.
5.
6.
7.
Utwórz kwadratową. macierz jednostkową. A o wymiarze 3x3.
Utwórz macierz A o wymiarze 2x3 wypełnioną jedynkami.
Znajdź największy i najmniejszy element w wygenerowanej macierzy.
Oblicz wartość średnią wektora.
A= 1 2 0
0 9 8
1 1 0
Zapisz:- odwolanie do elementu w wierszu 2 i kolumnie 3 i odwolanie do
elementu w wierszu 3 2 kolumnie.
8. Zdefiniuj macierz A 3x6 i - utwórz macierz B poprzez pobranie z macierzy A
kolumn: 1-3 oraz 5 oraz utwórz macierz B z elementów macierzy A leżących
na
przecięciu wierszy 1 i 3 z kolumnami 1, 3 i 5
9. A=[1 2 3 4, 4 5 6 7] - zapisz usuwanie drugiego wiersza z macierzy, a następ-
nie
dwóch pierwszych kolumn.
10. Zdefiniuj dwie macierze A i B, a następnie oblicz ich sumę, różnicę oraz dodaj
do elementów macierzy A liczbę 2.definium macierze A i B, oblicz ich iloczyn ,
a następnie pomnóż elementy otrzymanej macierzy C przez 3.
11. Zdefiniuj macierz A, a następnie wyznacz macierz odwrotną do niej i dokonaj
transpozycji.
5
12. Zdefiniuj dwie macierze A i B, a następnie wykonaj działania mnożenia,
dzielenia i potęgowania tablicowego.
13. Zdefiniuj macierz A o wymiarze 4x4, a następnie wyznacz jej wyznacznik,
wartości własne, współczynniki wielomianu charakterystycznego oraz zbadaj
rząd macierzy.
14. Rozwiąż układ równań liniowych:
x+2y-z=3
3x-4y + 2z = -5
5x-2y + 3z = 2
15. Obróć macierz A o 90 stopni, przeciwnie do wskazówek zegara.
6
7