Lab 3 – wprowadzenie. Szkic M. Głowacki, L-10, PK
1
Laboratorium komputerowe 3 – wprowadzenie
1. Wybrane funkcje dla wektorów i macierzy.
max(), min(), mean()
dla wektorów: funkcja zwraca odpowiednio największy, najmniejszy, średni element;
dla macierzy: funkcja zwraca odpowiednio największy, najmniejszy, średni element w każdej kolumnie macierzy (w wyniku otrzymujemy wektor wartości największych, najmniejszych, średnich)
sort()
analogicznie jak powyżej, funkcja sortuje wektor lub każdą kolumnę macierzy sortrows()
funkcja sortuje macierz względem podanej kolumny Przykład
𝑎 = [−4 5 1 −3 7 1]
min(a)
wynik: -4 max(a)
wynik: 7 mean(a)
wynik: 1.1667
sort(a) %lub: sort(a, ’ascend’) wynik: [-4 -3 1 1 5 7]
sort(a, ’descend’)
wynik: [7 5 1 1 -3 -4]
𝐴 = [
3 1 3 −3 3
−1 6 3 −7 2
2 1 5 1 5
0 −5 2 1 2
7 2 1 4 1]
min(A)
wynik: [-1 -5 1 -7 1]
max(A)
wynik: [7 6 5 4 5]
Lab 3 – wprowadzenie. Szkic M. Głowacki, L-10, PK
2 mean(A)
wynik: [2.2 1.0 2.8 -0.8 2.6]
sort(A) %lub: sort(A, 1) wynik:
[
−1 −5 1 −7 1
0 1 2 −3 2
2 1 3 1 2
3 2 3 1 3
7 6 5 4 5]
sort(A, 2) %sortowanie każdego wiersza macierzy wynik:
[
−3 1 3 3 3
−7 −1 2 3 6
1 1 2 5 5
−5 0 1 2 2
1 1 2 4 7]
%alternatywnie sortowanie każdego wiersza możemy uzyskać:
sort(A’)’
sortrows(A, 1) %sortowanie wierszy względem pierwszej
%kolumny wynik:
[
−1 6 3 −7 2
0 −5 2 1 2
2 1 5 1 5
3 1 3 −3 3
7 2 1 4 1]
sortrows(A, 3) %sortowanie wierszy względem trzeciej
%kolumny wynik:
[
7 2 1 4 1
0 −5 2 1 2
3 1 3 −3 3
−1 6 3 −7 2
2 1 5 1 5]
2. Wybrane funkcje generujące szczególne typy macierzy.
ones(n,m)
funkcja tworzy macierz o rozmiarach n x m wypełnioną jedynkami (w przypadku podania jednego argumentu zostanie utworzona macierz kwadratowa)
zeros(n,m)
funkcja tworzy macierz wypełnioną zerami
Lab 3 – wprowadzenie. Szkic M. Głowacki, L-10, PK
3 eye(n)
funkcja tworzy macierz jednostkową diag([2 1 3 -1 4])
funkcja tworzy macierz diagonalną – na przekątnej zostaną wstawione po kolei elementy z wektora podanego jako argument funkcji
rand(n,m)
funkcja tworzy macierz wypełnioną liczbami pseudolosowymi z przedziału (0, 1)
3. Rozwiązywanie układów równań.
Przykład
{
2𝑥 − 3𝑦 + 4𝑧 = −1 2𝑧 = 𝑥 + 2 𝑦 − 𝑧 = 3𝑥
Porządkujemy układ równań (nie jest to konieczne, ale pomaga uniknąć błędu przy definiowaniu macierzy współczynników układu i wektora prawej strony).
{
2𝑥 − 3𝑦 + 4𝑧 = −1
−𝑥 + 2𝑧 = 2 3𝑥 − 𝑦 + 𝑧 = 0
Zapisujemy układ równań w postaci macierzowej 𝐀 𝐱 = 𝐛 :
[
2 −3 4
−1 0 2
3 −1 1
] [ 𝑥 𝑦 𝑧
] = [
−1 2 0
]
Definiujemy:
A = [2 -3 4; -1 0 2; 3 -1 1];
b = [-1; 2; 0];
Sprawdzamy, czy układ równań ma rozwiązanie (czy wyznacznik macierzy współczynników układu równań jest niezerowy):
det(A) Otrzymujemy:
ans = -13
Rozwiązujemy układ równań:
x = A\b
Lab 3 – wprowadzenie. Szkic M. Głowacki, L-10, PK
4 Otrzymujemy:
x=
0.30769 2.07692 1.15385
4. Wyznaczenie macierzy odwrotnej.
Dla macierzy zdefiniowanej w poprzednim punkcie:
inv(A) wynik:
[
−0.1538 0.0769 0.4615
−0.5385 0.7692 0.6154
−0.0769 0.5385 0.2308 ]
Sprawdzamy:
inv(A)*A %lub A*inv(A) wynik:
[
1.0000 −0.0000 0.0000
−0.0000 1.0000 −0.0000
−0.0000 0.0000 1.0000 ]
Uwaga: uzyskujemy w przybliżeniu macierz jednostkową (macierz odwrotna również zostaje wyznaczona w przybliżeniu). Zapis -0.0000 nie oznacza żadnego specjalnego symbolu matematycznego - jest to po prostu mała liczba ujemna, której co najmniej pierwsze cztery cyfry po przecinku są równe zero.
Uwaga: układy równań możemy również rozwiązywać za pomocą macierzy odwrotnej:
x = inv(A)*b
Jednak lepiej jest stosować operator \ .