Studiuj dzięki licznym zasobom udostępnionym na Docsity
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Przygotuj się do egzaminów
Studiuj dzięki licznym zasobom udostępnionym na Docsity
Otrzymaj punkty, aby pobrać
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Społeczność
Odkryj najlepsze uniwersytety w twoim kraju, według użytkowników Docsity
Bezpłatne poradniki
Pobierz bezpłatnie nasze przewodniki na temat technik studiowania, metod panowania nad stresem, wskazówki do przygotowania do prac magisterskich opracowane przez wykładowców Docsity
Zadania różne do wykonania na zajęcia
Typologia: Ćwiczenia
1 / 6
Wszystko proszę zapisywać komendą diary do pliku o nazwie: imie nazwisko_
1. Definiowanie macierzy i odwoływanie się do elementów:
Definicji macierzy można dokonać na kilka sposobów: − przez wymienienie elementów, − przez wygenerowanie elementów, − przez zbudowanie z innych macierzy, − poprzez zastosowanie dwóch lub więcej wyżej wymienionych technik razem. Elementy w wierszu macierzy muszą być oddzielane spacją lub przecinkami. Średnik lub znak nowego wiersza kończy wiersz macierzy i powoduje przejście do następnego. Zaleca się wcześniejsze generowanie macierzy przez rezerwowanie pamięci, gdy jej rozmiar jest znany. W tym celu można stosować instrukcje: Tab.
eye(n) macierz jednostkowa nxn;
eye(n, m) z jedynkami na głównej przekątnej
ones(n) macierz jedynek nxn;
ones(n,m) macierz jedynek nxm;
zeros(n) macierz zerowa nxn;
pascal(n) tworzenie macierzy trójkąta Pascala (trójkąt arabski)
magic(n) macierz o równej sumie wierszy i kolumn o elementach od 1 do
n^
rand(n) macierz nxn liczb pseudolosowych z przedziału <0,1> o rozkładzie jednostajnym;
randn(n) macierz nxn liczb pseudolosowych o rozkładzie normalnym ze średnią 0 i wariancją 1
tril(A) tworzy z macierzy A macierz dolnie trójkatną.
triu(A) tworzy z macierzy A macierz górnie trójkatną.
Odwołanie do elementów macierzy:
Tab 2. A(i,:) i-ty wiersz macierzy A
A(:,j) j-ta kolumna macierzy A
A(:) Cała macierz w postaci wektora kolumnowego
A(:,:) Cała macierz (dwuwymiarowa)
A(i,j:k) Elementy i-tego wiersza macierzy A o numerach od j do k (kolumny od j do k)
A(i:j,k:l) Elementy od i-tego do j-tego wiersza oraz od k-tej do l-tej kolumny
A(X,i:j) Wszystkie elementy w kolumnach od i do j i wierszach macierzy A o numerach określonych przez elementy wektora X
2. Operacje na macierzach: długość, przekątna, maksimum, minimum, dodawanie, mnożenie, iloczyn skalarny, potęgowanie macierzy, operacje tablicowe.
Tab3. cumprod (^) wyznacza nowy wektor zgodnie ze wzorem:
dla wejściowego wektora. (macierz jest czytana kolumnami) cumsum (^) analogicznie, wyznacza sumy elementów zgodnie
ze wzorem [n m]=size(A) przypisuje zmiennej n liczbę wierszy, a zmiennej m liczbę kolumn; n=size(A,1) przypisuje zmiennej n liczbę wierszy macierzy A;
m=size(A,2) przypisuje zmiennej m liczbę kolumn macierzy A; length(x) zwraca długość wektora x lub dłuższy z wymiarów macierzy. diag(A) zwraca wektor z elementów na przekątnej macierzy
max(A) element maksymalny w kolumnie min(A) element minimalny w kolumnie mean(A) średnia elementów z kolumny median(A) mediana std odchylenie standardowe, sum suma prod iloczyn, j.w. linspace(x1,x2) wektor równomiernych liczb generuje wektor wierszy składających się ze
linspace(x1,x2,n) 100 punktów z równym odstępem miedzy x1 a x
b) Operacje tablicowe^1 – wykonywane na każdym z elementów macierzy. Symbol zwykłej operacji poprzedzony jest kropką.
wyznacznik macierzy: det(A), macierz odwrotna: inv(A), macierz transponowana: A' suma elementów: sum(A) lub sum(A,1)– wynikiem jest wektor składający się z sum kolumn macierzy A.
natomiast aproksymować nieznaną funkcję będziemy inną funkcją postaci np.
gdzie wartości i są nieznane. Wyznaczyć je możemy metodą najmniejszych kwadratów, która to minimalizuje sumę kwadratów błędów przy rozwiązywaniu każdego z równań.
Rozwiązanie problemu w Matlabie: Zdefiniowanie danych: t=[0 .3 .8 1.1 1.6 2.3]'; y=[.82 .72 .63 .60 .55 .50]';
Wyznaczenie wartości współczynników i :
E=[ ones(size(t)) exp(-t) ]; c=E\y
Otrzymujemy przybliżenie
które następnie możemy wizualizować na wykresie:
T=(0:0.1:2.5)' Y=[ones(size(T)) exp(-T)]*c plot(T,Y,'-',t,y,'o')
4.3 Układ nieoznaczony
W tym przypadku mamy do czynienia z większą liczbą zmiennych niż równań w układzie. Jest to zagadnienie programowania liniowego. Przy znajdywaniu rozwiązań parametrycznych wykorzystywany jest rozkład QR.
Przykładowo dane są macierze zdefiniowane losowo:
R=fix(10rand(2,4)); b=fix(10rand(2,1));
zamieniamy format wyświetlania danych na ułamkowy:
format rat
a następnie wyznaczamy
p=R\b Z=null(R,'r')
wtedy mnożenie da macierz zerową, lub bliską zerowej. Następnie każdy wektor w postaci:
dla dowolnego wektora q, spełnia równanie , a więc jest rozwiązaniem równania wejściowego.
Ćwiczenia
Zad.1. a) Wykonaj następujące operacje zwykłe na macierzach:
b) Wykonaj powyższe operacje korzystając z operacji tablicowych. Zobacz jaka jest różnica.
c) Zapisz stworzoną przez Ciebie macierz i oblicz jej drugą potęgę dla obu rodzajów operatorów potęgowania.
a)
b)
c)
Zad.2.
Powyższa macierz jest macierzą Durera – magicznym kwadratem. Jeśli dodasz do siebie wszystkie liczby z dowolnego wiersza lub kolumny, czy też z jednej z dwóch głównych przekątnych, otrzymasz zawsze ten sam wynik. Sprawdź, korzystając z funkcji sum i transpozycji, to w MATLAB-ie.
Zad.3. Z podanej macierzy 4x4 wypisz po 3 macierze 3x oraz 2x2.
Zad.4. Dla 100 elementowego wektora A oblicz: a) sumę elementów b)średnią elementów c) medianę d)odchylenie standardowe e)liczbę elementów
Zad.5. Dla macierzy A o wymiarach 5x5 oblicz sumę wszystkich elementów.
Zad.6. Stwórz wektor 9 liczb z przedziału od 5 do 15, które są posortowane i ułożone równomiernie.
Zad.7. W wektorze Kwoty =[30, 25, 20, 34, 32] są umieszczone sumy pieniężne dla poszczególnych dni tygodnia. Wyznacz skumulowany wektor sum, w którym są przechowywane sumy wartości kwot z poprzednich dni.