Podstawy MATLAB’a dla I–go roku WPiE
PODSTAWOWY WYMÓG ––
Uwagi podstawowe
1. Matlab
działa w trybie konwersacyjnym jak kalkulator inżynierski:
działanie; ENTER; wynik
2. Matlab
rozróżnia duże i małe litery „A” to co innego niż „a”
3.
Wszystkie funkcje Matlaba wpisujemy małymi literami a ich argumenty w
nawiasach okrągłych oddzielone przecinkami
4. Aby
dowiedzieć się jak dzieła dokładnie jakaś funkcja wpisujemy:
help nazwa_funkcji, lub lookfor nazwa_funkcji by znaleźć inne
pokrewne funkcje
5. Aby
zapoznać się z możliwościami Matlab’a wpisujemy demo
Wprowadzanie wektorów (przykłady)
a = -3:10 - tworzy wektor z liczb całkowitych od -3 do 10
b = -10:3:10 – tworzy wektor z liczb od -10 do 10 z krokiem 3
c = linspace(-3, 2, 8) – tworzy wektor złożony z liczb od –3 do 2 o ośmiu
elementach (w „odstępach” linowych)
d = logspace(-3, 2, 8) – tworzy wektor złożony z liczb od 10
-3
do 10
2
o ośmiu
elementach (w „odstępach” logarytmicznych)
max(a) – wybiera wartość maksymalną ze współrzędnych wektora
min(a) – wybiera wartość minimalną ze współrzędnych wektora
sum(a) – suma elementów wektora
prod(a) – iloczyn elementów wektora
length(a) – długosc wektora
Macierze
a = [1 2 3] – macierz (wektor wierszowy) o wymiarze 1 wiersz 3 kolumny
b= [ 1 2 3; 2 3 5; 3 4 5] – macierz o wymiarze 3 wiersze 3 kolumny (zamiast
; można nacisnąć ENTER)
macierze możemy „umieszczeć” jedna w drugiej np. c = [b b] - macierz o
wymiarze 3 wiersze 6 kolumn
macierze możemy dodawać, mnożyć (uwaga zgodność wymiarów)
potegowanie macierzy – b^2, b^3;
c=sqrtm(b) – c*c=b;
podstawowe operacje arytmetyczne + , - , * , /
kiedy zastosujemy operator kropki . przed operacją * to operacja będzie działać
na każdy z elementów z osobna – porównać b*b i b.*b;
zeros (3, 4) - polecenie tworzy macierz „zer” o zadanym wymiarze 3x4
ones (2, 3) - polecenie tworzy macierz „jedynek” o zadanym wymiarze 2x3
eye (2,3) - polecenie tworzy macierz jednostkową o zadanym wymiarze 2x3
rand(2,3) – wartości losowe od 0-1
diag([1 2 4]) - macierz diagonalna (na przekątnej znajdują się wartości 1, 2, 3)
diag(a) – tworzy wektor z przekątnej
det(b) – wyznacznik macierzy
inv(b) – macierz odwrotna
[x,y]=size(b) – rozmiar macierzy
eig( b) - oblicza wartości własne macierzy
inv (b) - odwraca macierz
b’ - tworzy macierz transponowaną
a=[ ] – zerowanie macierzy
Przykład „składania” macierzy z podmacierzy
a=[1 2 3 ;4 5 6;7 8 9];
b=[a a.^2; zeros(size(a)) a’]
Przykład wybierania podmacierzy
a=[1 2 3 4; 5 6 7 8;9 10 11 12;13 14 15 16];
a(2:4,1:3)
b=[1 2 3;4 5 6;7 8 9];
b (1, 2) = 2 - element macierzy będący na pozycji 1 wiersz 2 kolumna
b(1:2,1) =[1 4]’- elementy macierzy znajdujące się od 1-szego do 2-go rzędu w
pierwszej kolumnie
b([1 3], [2 3]) =[2 3 ;8 9]- elementy macierzy znajdujące się w 1-szym i 2-gim
rzędzie w 2-giej i 3-ciej kolumnie
b(1:5) - wypisuje 5 pierwszych elementów macierzy b biorąc kolejne wiersze
b( : ,2) - wypisuje całą drugą kolumnę macierzy b
Wielomiany (przykład)
Wielomian: 5x
4
-7x
3
+8x+30 zapisany w Matlab’ie wygląda następująco:
p=[5 –7 0 8 –30]
roots (p) – pierwiastki wielomianu
conv(a,b) – mnożenie wielomianów
a= [1 2 3 4];
b= [4 3 2 1 ];
conv(a,b) = 4 11 20 30 20 11 4
deconv(a,b) dzielenie wielomianów
[r,p,k]=residue (a,b) – rozkład na ułamki proste
a(x)/b(x)= r
1
/(x-p
1
)+ r
2
/(x-p
2
)+.....+ r
n
/(x-p
n
) + k(x)
polyfit – aproksymacja wielomianem stopnia n w sensie najmniejszych
kwadratów
ZNAJOMOŚĆ ALGEBRY MACIERZY
Funkcje elementarne
abs – wartośc bezwzględna lub moduł liczby zespolonej
round – zaokrąglenie do najbliższej całkowitej
sign – znak funkcji
funkcje tryg – sin, cos, tan, asin, acos, sinh ..........
rem – reszta z dzielenia dwóch liczb
gcd – największy wspólny podzielnik
log, log10 – logarytmu
Wykresy 2D
plot (a) – rysuje wykres z oś x domyślnie 1, 2, ... ilość elementów, oś y wartości
wektora a
plot (a, b) - rysuje wykres z oś x wartości wektora a, oś y wartości wektora b (
wektory a i b tej samej długości)
plot (a, b, ‘typ linii’) tak jak powyżej ale można podać typ linii np. – ciągła, - -
kreskowa, : punktowa, itp.
plot (a, b, ‘typ linii’,c ,d, ‘typ linii’, ...) kilka wykresów na jednym rysunku
spróbować
grid – siatka na wykresie
hold on – nowy wykres dorysowywany jest na starym
fplot (‘sin(x*x)/x’,[0 4*pi]) – wykres funkcji ciągłej
loglog – skala logarytmiczna obu osi,
semilogx - skala logarytmiczna osi x
semilogy – skala logarytmiczna osi y
figure(n) – tworzy nowe okno wykresu (n –te)
clf – czyści obecny wykres
zoom – powiększenie wykresu
Wykresy 3D
[x,y]=meshgrid(1:5;1:5) – tworzy siatkę punktów x,y wykorzystywaną do
rysowania wykresów 3D
surf, meshc, meshz, waterfall, pcolor – różne typy wykresów 3D
shading flat, shading interp, shading faceted – różne typy cieniowania
Polecenia systemu operacyjnego:
patch – wyświetla ścieżki dostępu do katalogów Matlab’a
dir – wyświetla zawartość katalogu roboczego
pwd – wyświetla ścieżkę bieżącego katalogu
type – zawartość pliku
delete – usuwa określony plik
cd – zmienia katalog
! – po wykrzykniku możemy wpisywać każde polecenie systemu operacyjnego
Zapisanie przestrzeni roboczej
Diary – zapisuje w ASCII sesje
Save filename –ASCII
Save filname zmienna1 zmienna2 – ASCII
Ottwarzanie przestrzeni roboczej
Load filname
who –podaje wykaz zmiennych
what – podaje informacje o –m plikach na dysku
wlear – czyści przestrzeń roboczą
clear zmienna1 zmienna2 – czyści zmienne
Liczby zespolone
zapisujemy podobnie jak w zwykłym zapisie matematycznym np. 5+10i
abs ( 2+1i) - oblicza moduł liczby zespolonej
angle (2+1i) - oblicza argument liczby (kąt)
conj (2+1i) - tworzy liczbę sprzężoną
real (2+1i) - podaje część rzeczywistą liczby
imag (2+1i) - podaje część urojoną liczby
Przetwarzanie sygnałów
Y=fft(x,n) szybka dyskretna transformata fouriera
X=ifft(y,n) odwrotna
fft2, ifft2, - dwuwymiarowe;
Nieliczbowe wyniki obliczeń
inf - symbol nieskończoności
NaN – (Not a Number) symbol o nieokreślonej wartości
Podstawowe operatory relacji
<, <=,==,~=