Matrisövningar

Vi börjar med att skapa lite data som kommer att användas i beräkningarna. Vi återanvänder a och b från föregående övning.Jag har använt diverse kommandon för att bilda matriserna. Toeplitz, Hankel och Hessenberg kommer vi inte att se mer på denna kurs. Den magiska matrisen är ingalunda viktig i numerisk analys, men det är en bra testmatris eftersom varje tal i matrisen förekommer bara en gång (det är lätt att se var elementen hamnar om man flyttar på delar av matrisen).

Några matriser att räkna med:
Uttryck Kommentar
n = 5; A = magic(n) Det finns många speciella matriser som har fått namn. 
B = toeplitz(1:n, -(1:n)) Här är en ytterligare en. Hankel och Hessenberg är två till som är döpta efter personer; det finns fler och dessutom många som har namn efter matrisens struktur (t.ex. diagonalmatris).
R = rand(n, 2) Det finns randn också.
C = ones(n, 2) zeros-funktionen är bra att känna till också.
a = (1:5)'; b = [1 4 3 2 6]' Vi behöver två vektor också. Du kan vektorerna från vektorövningen, t.ex.

Nu till lite matrisräkning:
Uttryck Kommentar
A + B  
A + 2 Så här får man göra i Matlab, men inte i "matematiken"
A + C, size(A), size(C)  
A * B  
A .* B Notera skillnaden.
A * C  
A * C'  
C * A  
C' * A  
R - [R(:, 1), R(:, 2)]  Så? Vad betyder kolon här?
A * R - [A * R(:, 1), A * R(:, 2)] Slutsats
S = A + A'  
S - S' S är exempel på en sådan matris. Vad kallas den?
(A * B)' - B' * A' Sats
D = diag(n:-1:1) Vad kallas en sådan matris?
A * D Slutsats
D * A Slutsats
D * A * D  
I = eye(n) Vad heter denna matris?
e2 = I(:, 2)  
e5 = I(:, 5)  
e2' * A, A(2, :) Slutsats
A * e5, A(:, 5) Slutsats
e2' * A * e5, A(2, 5)  
e2' * a, a' * e5  
I + a * a' Använd ovanstående för att beräkna elementen i matrisen.
W = (I - a * a' / (a' * a)), W * a
Vad är W?
W - W * W, W - W'  
A(:, [5 1 2 4 3]) Slutsats
p = [5 1 2 4 3]  
A(:, p) Slutsats
A([5 1 2 4 3], :) - A(p, :) Slutsats
A(p, p) Vad är detta?
P = eye(n); P = P(:, p); P för permutation
A(:, p) - A * P Slutsats
A(p, :) - P' * A Slutsats
A(p, p) - P' * A * P Slutsats
IA = inv(A), A * IA, IA * A Slutsats
det(A)  
inv(C) Så att?
inv(inv(A)) - A Sats
inv(A * B) - inv(B) * inv(A) Sats
inv(A') - inv(A)' Sats
S = magic(6)  
inv(S), det(S) Sats
z = [2 2 -1 -2 -2 1]', S * z Sats
rank(S) Sats
x = [3 -2]', R * x - (R(:, 1) * x(1) + R(:, 2) * x(2)) Slutsats
Q = orth(randn(n)) help orth
Q' * Q, Q * Q' Vad kallas en sådan matris?
inv(Q) - Q' Sats
Q = orth(randn(n, 2))  
Q' * Q, Q * Q' Slutsats

 

Det finns många andra matnyttiga kommandon. Testa gärna:

max(A)  
max(A, [], 2) [] är en tom matris (till skillnad från en nollmatris).
sort(A)  
sort(A, 2)  
[m, p] = max(A)  
[X, L] = eig(A)  
[l, p] = sort(diag(L)) Vad blir diag(L)?
X = X(:, p);  
A * X - X * diag(l) Vad blir diag(l)? Vad borde uttrycket bli? 
sum(A, 2)  
sum(A)  
sum(diag(A))  
sum(diag(A(:, end:-1:1))) Vad är A(:, end:-1:1)? Vad betyder end här?
A(end, :), A(:, end), A(end, end)  
max(max(A))  
max(A(:))  
A(:)  
sum(abs(sort(A(:)) - (1:length(A)^2)'))  
[A, a; a', 2]  
A(2:4, 3:4)  

 

Back