Wprowadzenie do MATLABA − Laboratorium.pdf

(270 KB) Pobierz
Wprowadzenie do Matlaba - Laboratorium
Akademia Morska w Gdyni
Katedra Automatyki Okrętowej
Teoria sterowania
Wprowadzenie do M ATLABA
Laboratorium
Mirosław Tomera
M ATLAB ( Mat rix Lab oratory) jest interaktywnym oprogramowaniem wysokiego poziomu wydajnie
wspierającym pracę przy projektowaniu i analizie układów sterowania. Podstawową jednostką
obliczeniową jest macierz. Wektory i skalary mogą być tutaj rozpatrywane jako specjalne typy
macierzy. Typowe wyrażenie macierzowe zawarte jest w nawiasach prostokątnych
1. PODSTAWOWE OPERACJE NA MACIERZACH
1.1. WPROWADZENIE DANYCH DO MACIERZY
Przy wprowadzaniu danych w oknie komend M ATLABA , linia rozpoczyna się znakiem >> który
informuje o tym, że w tym miejscu zaczyna się wprowadzana linia z danymi, komendami lub
funkcjami.
W przypadku wpisywania danych do macierzy najpierw podawana jest jej nazwa ( A ), a
następnie znak równości (=). Cała wpisywana macierz zawiera się w nawiasie klamrowym([...]).
Wprowadzana macierz może składać się z kilku wierszy i kolumn. Macierze mogą być wprowadzane
w jednej lub w wielu liniach. Wiersze mogą być oddzielone od siebie średnikiem (;) lub naciśnięciem
klawisza Enter. Wciskanie klawisza Enter spowoduje, że wprowadzanie macierzy będzie odbywać się
w wielu liniach. Taka praktyka jest najbardziej użyteczna przy wprowadzaniu bardzo dużych
macierzy. Elementy w wierszu mogą być oddzielone od siebie znakiem spacji lub przecinkiem.
Przy wprowadzaniu macierzy nie trzeba wcześniej deklarować ich rozmiaru; pamięć dla nich
przydzielana jest automatycznie. W przypadku wpisywania nowych wartości do tej samej macierzy
jest ona automatycznie redefiniowana, dostrojony zostanie jej rozmiar. Elementy macierzy mogą
zawierać podstawowe funkcje matematyczne, funkcje trygonometryczne, jak również liczby
zespolone.
Poniższy przykład ilustruje sposób w jakim dane wprowadzane są w oknie komend M ATLABA
do macierzy.
Przykład 1
Przypuśćmy, że należy zapisać w M ATLABIE następującą macierz A
3
j
4
2
( )
( )
( )
A
ln
1
sin
/
4
cos
/
3
(1.1)
arc
sin
( )
0
.
arc
( )
0
.
e
0
Wprowadzanie macierzy A odbędzie się w oknie komend M ATLABA .
Ostatnia aktualizacja: 2007-02-21
M. Tomera
[ ] ⋅ . Elementy w
kolumnach odseparowane są od siebie spacjami lub przecinkami, wiersze natomiast średnikami lub
wciśnięciem klawisza Enter.
cos
433578009.006.png
Teoria sterowania
Wprowadzenie do M ATLABA - Laboratorium
W pierwszej linii wpisane zostały dwa pierwsze wierze macierzy A , pierwszy wiersz został
zakończony średnikiem natomiast jego elementy zostały oddzielone od siebie przecinkami,
drugi wiersz macierzy zakończony został wciśnięciem przycisku Enter, a jego elementy
oddzielone zostały od siebie spacjami. W trzecim wierszu macierzy A poszczególne elementy
zostały rozdzielone zarówno przecinkiem jak i spacją.
>> A=[3,-4*j,sqrt(2); log(-1) sin(pi/4) cos(pi/3)
asin(0.5),acos(0.8) exp(0.8)]
Po nawiasie kończącym wpisywanie macierzy ( ] ) nie został wpisany średnik co stanowi
informacje dla M ATLABA , że należy wypisać na ekran całą zawartość wpisywanej macierzy A .
A=
3.0000 0 - 4.0000i 1.4142
0 + 3.1416i 0.7071
0.5000
0.5236
0.6435
2.2255
Podsumowując należy stwierdzić, że do oddzielania od siebie poszczególnych elementów (kolumn) w
macierzy można zastosować zarówno przecinki jaki i spacje, a wiersze można zakończyć średnikiem
lub wciśnięciem przycisku Enter. Inny przykład
1.2. OPERACJE MATEMATYCZNE NA MACIERZACH
Ważnymi podstawowymi operacjami na macierzach są dodawanie, odejmowanie, mnożenie,
transpozycja, potęgowanie i tak zwane operacje na macierzach, które dotyczą manipulacji na
elementach macierzy. Operacje matematyczne mające zastosowanie do macierzy, zebrane zostały
w tabeli 1.
Tabela 1. Operacje matematyczne
+ Dodawanie
Odejmowanie
*M żenie
/
^ tęgowanie
Operacje na macierzach wymagają aby ich rozmiary były kompatybilne.
1.2.1. Dodawanie i odejmowanie macierzy
Operacje dodawania i odejmowania wymagają aby macierze były tych samych rozmiarów. Jeśli Jeśli
macierz A ma rozmiar
n
m
, a macierz B rozmiar
p
r
to działanie A
B to zostanie wykonane w
M ATLABIE tylko wówczas gdy n = p oraz m = r .
1.2.2. Mnożenie macierzy
Mnożenie tych macierzy A * B będzie możliwe jeśli m = p . Mnożenie macierzy przez wektor jest
specjalnym przypadkiem mnożenia macierzy. Przypuśćmy, że b jest wektorem o długości p .
Mnożenie macierzy A o rozmiarze
n
m
n .
Przykład 2
Przykład ten ilustruje podstawowe trzy operacje matematyczne wykonywane na macierzach:
Ostatnia aktualizacja: 2007-02-21
M. Tomera
2
Dzielenie
przez wektor b będzie możliwe tylko wówczas jeśli m = p .
W wyniku tego mnożenia y = A * b uzyskany zostanie wektor o rozmiarze 1
433578009.007.png 433578009.008.png
Teoria sterowania
Wprowadzenie do M ATLABA - Laboratorium
dodawanie, odejmowanie i mnożenie. Najpierw należy wprowadzić macierze na których
następnie wykonywane będą te operacje.
>> A=[1 3; 5 9]; B=[4 -7; 10 0];
Dodawanie wprowadzonych macierzy
>> A+B
ans =
5 -4
15 9
Odejmowanie
>> A-B
ans =
-3 10
-5 9
Mnożenie
>> A*B
ans =
34 -7
110 -35
1.2.3. Transpozycja macierzy
Transpozycja macierzy realizowana jest przez użyciu apostrofu ( ' ). W celu utworzenia skalara z
dwóch wektorów, należy najpierw dokonać operacji transpozycji macierzy, a następnie mnożenia.
Przypuśćmy, że x oraz y są wektorami o rozmiarach 1
n uzyska się macierz
o rozmiarach
n
n
rzędu 1.
Przykład 3
Przykład ilustrujący operacje związane z transponowaniem macierzy. Najpierw wprowadzenie
macierzy na których wykonane zostaną operacje transponowania
>> A=[1 2; 4 5]; x=[5;pi;sin(pi/2)]; y=[exp(-0.5);-13;pi^2];
Transpozycja macierzy
>> A'
ans =
1 4
2 5
Utworzenie skalara z dwóch wektorów
>> C=x'*y
C=
-27.9384
Ostatnia aktualizacja: 2007-02-21
M. Tomera
3
n , wówczas przez zastosowanie
operacji x' * y uzyska się skalar. Macierz zostanie uzyskana po wykonaniu mnożenia dwóch wektorów
poprzez następującą operację x * y' . Dla dwóch wektorów o rozmiarach 1
433578009.009.png 433578009.001.png
Teoria sterowania
Wprowadzenie do M ATLABA - Laboratorium
Utworzenie macierzy z dwóch wektorów
>> D=x*y'
D=
3.0327 -65.0000 49.3480
1.9055 -40.8407 31.0063
0.6065 -13.0000 9.8696
Sprawdzenie rzędu utworzonej macierzy D
>> rank(D)
ans =
1
1.3. MATEMATYCZNE OPERATORY MACIERZOWE
Poza poznanymi już podstawowymi operacjami matematycznymi zebranymi w tabeli 1 są jeszcze
operacje mnożenia macierzowego, dzielenia i potęgowania, które wymagają dodania kropki jak to
zostało pokazane w tabeli 2.
Tabela 2. Matematyczne operatory macierzowe
.* Mnożenie
./ Dzielenie
.^ Potęgowanie
W przypadku gdy dane są dwie macierze o rozmiarach
2
2
A
a
11
a
12
,
B
b
11
b
(1)
a
a
b
b
21
22
21
22
Użycie operatora macierzowego mnożenia spowoduje utworzenie nowej macierzy, której elementy
będą następujące:
A.
*
B
a
11
b
11
a
12
b
12
(2)
a
b
a
b
21
21
22
22
Poniższy przykład ilustruje różnice w stosowaniu wybranych operatorów matematycznych
i macierzowych.
Przykład 4
Przed wykonaniem operacji najpierw wprowadzone zostaną dane:
>> A=[1 2; 3 4]; B=[5 pi^2; 6 sin(pi/2)];
Wykonanie operacji mnożenia matematycznego (*) na tych macierzach
>> A*B
ans =
17.0000 11.8696
39.0000 33.6088
Ostatnia aktualizacja: 2007-02-21
M. Tomera
4
12
433578009.002.png 433578009.003.png
Teoria sterowania
Wprowadzenie do M ATLABA - Laboratorium
Wykonanie mnożenia przy użyciu operatora macierzowego mnożenia (.*) na tych macierzach
>> A.*B
ans =
5.0000 19.7392
18.0000 4.0000
W wyniku tych operacji uzyskane zostały dwa różne wyniki. Dla przykładu inna operacja
macierzowa, potęgowanie
>> A^2
ans =
7 10
15 22
>> A.^2
ans =
1 4
9 16
2. GENEROWANIE DANYCH I ZAPISYWANIE DO PLIKU
W M ATLABIE istnieje możliwość wygenerowania wektora wierszowego zawierającego pewną liczbę
elementów począwszy od pewnej zadanej wartości początkowej x p , do wartości końcowej x k
z zadanym krokiem zwiększania, dx
x = [ x p : dx : x k ]. (3)
Takie wektory są szczególnie przydatne przy tworzeniu różnego rodzaju wykresów. Wygenerowane
dane mogą być zapisywane do pliku przy użyciu polecenia save . Informacje o tym jak uzywać tej
komendy można uzyskać po wpisaniu w oknie komend M ATLABA polecenia
>> help save
Przykład 5
dla x = 0, 0.1, 0.2,....10.0 i uzyskane wyniki
zapisać w pliku dyskowym. Najpierw należy wygenerować tablicę z danymi x
y
x
sin
x
y . Wykonanie tej
operacji w M ATLABIE
>> x=[0:0.1:10]'; y=x.*sin(x);
>> XY=[xy]
XY =
0 0
0.1000 0.0100
0.2000 0.0397
0.3000 0.0887
0.4000 0.1558
0.5000 0.2397
0.6000 0.3388
0.7000 0.4510
0.8000 0.5739
0.9000 0.7050
........
10.0000 -5.4402
Ostatnia aktualizacja: 2007-02-21
M. Tomera
5
Wygenerować dane do wykresu funkcji
433578009.004.png 433578009.005.png
Zgłoś jeśli naruszono regulamin