Pakiet Matlab - wprowadzenie w środowisko.pdf
(
244 KB
)
Pobierz
QPrint
POLITECHNIKA WARSZAWSKA
Instytut Podstaw Budowy Maszyn
PRACOWNIA WIBROAKUSTYKI
02-524 Warszawa, ul. Narbutta 84
02-524 Warszawa, ul. Narbutta 84, tel. 660 8276
Laboratorium Eksploatacji
Autorzy opracowania:
Jacek Dybaþa, Adam Gaþħzia, Marcin Jasiıski
Jħdrzej MĢczak, Stanisþaw Radkowski
Pakiet Matlab
Wprowadzenie w Ļrodowisko
(do uŇytku wewnħtrznego)
Warszawa 2005
Pakiet MATLAB (od ang. rix oratory) w chwili obecnej jest faktycznym
standardem w obliczeniach naukowo technicznych. Zbudowany jest jako aplikacja mogĢca
pracowaę w Ļrodowisku MS Windows oraz Unix. Jego jĢdro stanowi interpreter jħzyka
programowania umoŇliwiajĢcy wykonywanie obliczeı numerycznych na macierzach (w
oglnoĻci zespolonych) zgodnie z zaprogramowanymi algorytmami obliczeniowymi. Wokþ
jĢdra jest zbudowane interaktywne Ļrodowisko (ekran poleceı do komunikacji z systemem i
ekrany graficzne) przeznaczone do tworzenia algorytmw obliczeniowych, wizualizacji
graficznej wynikw, analizy danych i obliczeı numerycznych.
Podstawowym typem danych Matlaba jest macierz liczb zespolonych. Macierz liczb
rzeczywistych jest traktowana jako szczeglny przypadek liczby zespolonej zgodnie z
reguþami algebry. Liczba caþkowita jest szczeglnym przypadkiem macierzy majĢcej jeden
wiersz i jednĢ kolumnħ (macierz jednoelementowa). Na macierzach moŇna wykonywaę
wszystkie typowe operacje arytmetyczne (suma, iloczyn iloraz, obliczanie wyznacznikw,
odwracanie macierzy itd.) zgodnie z reguþami rachunku macierzowego. Operacje te sĢ
zazwyczaj wykonywane w jednej instrukcji programowej co pozwala na uzyskanie
olbrzymiej szybkoĻci i sprawnoĻci dziaþania a dodatkowo upraszcza zapis operacji. Dla
uŇytkownika dostħpne sĢ wszystkie podstawowe funkcje matematyczne, statystyczne i
inŇynierskie, w tym analiza widmowa (szybka transformata Fouriera - FFT, filtry cyfrowe
itd.). Cechy te stanowiĢ o niezwykþej wartoĻci Matlaba wszħdzie tam, gdzie niezbħdne jest
wykonywanie obliczeı na bardzo duŇych zbiorach danych.
Jħzyk Matlaba jest jħzykiem wysokiego poziomu jak Basic, Fortran czy Pascal i
pozwala na pisanie programw realizujĢcych okreĻlone algorytmy. CechĢ Matlaba sĢ tzw.
toolboxy, tekstowe biblioteki funkcji i procedur, przeznaczone do realizacji konkretnych
zadaı w rŇnych dziedzinach. Wraz z Matlabem moŇna zakupię kilkadziesiĢt rŇnych
bibliotek procedur pokrywajĢcych zakres zastosowaı od analizy sygnaþw, teorii sterowania
(automatyka) i metody elementw skoıczonych, poprzez rachunek statystyczny, analizħ
obrazw aŇ do biotechnologii i genetyki. Matlab umoŇliwia rwnieŇ w ograniczonym
zakresie na sterowanie aparaturĢ pomiarowĢ i pozwala na opracowywanie ukþadw
sterowania automatykĢ przemysþowĢ (opracowywanie algorytmw sterowania kart
procesorw sygnaþowych).
Matlab pozwala na wizualizacjħ graficznĢ wynikw obliczeı. Zawiera wszelkie
procedury graficzne niezbħdne do wizualizacji danych Matlaba. Dotyczy to zarwno
wykresw dwu- jak i trjwymiarowych oraz wizualizacji objħtoĻci. Wszystkie obiekty na
wykresach mogĢ byę interaktywnie edytowane (zmiana ksztaþtu linii, koloru, opisw, skali
itd.) i eksportowane do typowych formatw graficznych. Tworzenie wykresw jest bardzo
proste i intuicyjne.
Udostħpnienie w Ļrodowisku Matlaba niezawodnych implementacji algorytmw
matematyki stosowanej, bogatych funkcji graficznych i licznych moduþw rozszerzeı
zorientowanych na okreĻlone dziedziny zastosowaı oraz otwarta architektura Ļrodowiska
(rozszerzalnoĻę - moŇliwoĻę budowania wþasnych funkcji uŇytkownika, przenoĻnoĻę -
jednakowy m-kod Matlaba dla rŇnych platform sprzħtowych) sprawiþy, Ňe obecnie
MATLAB w znacznym stopniu wyparþ z obliczeı naukowo-technicznych jħzyki uniwersalne
(Fortran, C, C++) ograniczajĢc ich zasadniczĢ rolħ do funkcji oprogramowania
narzħdziowego.
1
Wprowadzenie do pracy w Ļrodowisku Matlaba
przedstawia Ļrodowisko Matlaba
tylko w takim zakresie w jakim jest to niezbħdne dla wykonania ęwiczeı laboratoryjnych.
Osoby zainteresowane szerszym poznaniem moŇliwoĻci Matlaba odsyþa siħ do pomocy
dostħpnych w internecie pod adresem producenta (firmy The Mathworks Inc.) np.
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/learnmatlab.pdf
(w jħzyku
angielskim) a takŇe licznych ksiĢŇek (dostħpnych rwnieŇ w jħzyku polskim) oraz
samouczkw, ktre moŇna w duŇej liczbie znaleŅę w internecie pod hasþem ámatlabÑ.
Po uruchomieniu Matlaba na ekranie widoczne jest okno z migajĢcym kursorem po
znakach >> pozwalajĢcym na wpisanie polecenia. Wykonanie tego polecenia (jego
interpretacja) odbywa siħ po naciĻniħciu klawisza <Enter>.
Z Matlaba moŇna korzystaę w dwojaki sposb:
1. MoŇna traktowaę Matlaba jak zaawansowany kalkulator wykonujĢcy operacje podane
w linii poleceı.
2. MoŇna tworzyę programy (ciĢgi kolejnych poleceı) i nowe funkcje, ktre nastħpnie
bħdĢ uruchamiane przez interpreter jħzyka Matlab. Programy (nazywane skryptami) i
funkcje umieszcza siħ w plikach tekstowych (ASCII) z rozszerzeniami á.mÑ.
Programy i funkcje uruchamia siħ piszĢc ich nazwy w linii poleceı.
Dla potrzeb Laboratorium Eksploatacji wystarczajĢce jest korzystanie z Matlaba w pierwszy
z podanych sposobw, tj. korzystanie jedynie z linii poleceı. Aby wykonaę dziaþanie
matematyczne na liczbach wystarczy napisaę to dziaþanie tak jak na zwykþym kalkulatorze i
nacisnĢę klawisz <Enter>. Poprzednie linie poleceı moŇna wywoþaę naciskajĢc
.
Matlab wyĻwietli wynik umieszczajĢc go w standardowej zmiennej ans (answer -
odpowiedŅ).
i
>>2+2
ans=
4
eee
PoniŇej przedstawiono listħ waŇniejszych uŇywanych w Matlabie (A i B
oznaczajĢ zmienne zawierajĢce macierze):
dodawanie macierzy. A+B (A i B muszĢ mieę te same rozmiary)
odejmowanie macierzy. A-B (A i B muszĢ mieę te same rozmiary)
mnoŇenie macierzy. A*B (liczba kolumn A musi byę rwna liczbie wierszy B)
dzielenie macierzy. X=A/B rozwiĢzuje liniowe dziaþanie A*X=B
mnoŇenie odpowiadajĢcych sobie elementw macierzy przez siebie. A.*B (rozmiary A i B
muszĢ byę takie same)
dzielenie odpowiadajĢcych sobie elementw macierzy przez siebie. A./B (rozmiary A i B
muszĢ byę takie same)
podnoszenie macierzy do potħgi. A^P (P jest skalarem, A musi byę macierzĢ kwadratowĢ)
podnoszenie elementw macierzy do potħgi
(znak apostrofu) transpozycja macierzy. AÓ zamienia kolumny wierszami
2
PoniŇszy opis zostaþ potraktowany bardzo skrtowo
ee
Podstawienie
>>a=5
a=
5
powoduje utworzenie w pamiħci a o wartoĻci rwnej 5. Zmienna ta istnieje aŇ do
momentu celowego jej usuniħcia poleceniem clear a lub poleceniem usuniħcia wszystkich
zmiennych clear. Po zamkniħciu Matlaba zmienne sĢ usuwane z pamiħci.
Zdefiniowane dotychczas zmienne moŇna wyĻwietlię na ekranie korzystajĢc z polecenia whos
>> whos
Name Size Bytes
Class
a
1x1 8
double array
Grand total is 1 element using 8 bytes
eze
Macierze moŇna wprowadzaę do Matlaba na kilka rŇnych sposobw
1. poprzez podanie listy elementw;
2. poprzez wczytanie macierzy z pliku dyskowego (np. dane pomiarowe);
3. poprzez wygenerowanie macierzy za pomocĢ wbudowanych funkcji;
4. poprzez ich utworzenie za pomocĢ procedur (m-plikw) napisanych przez
uŇytkownika.
WprowadzajĢc macierz z klawiatury naleŇy
•
oddzielaę kolejne elementy wiersza spacjami lub przecinkami,
•
koniec wiersza oznaczaę Ļrednikiem;
•
caþĢ lista elementw umieĻcię w nawiasach klamrowych.
>> A=[1 2 3; 4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> whos
Name Size Bytes Class
A 3x3 72 double array
a 1x1 8 double array
Grand total is 10 elements using 80 bytes
3
Macierz moŇe byę wczytana do Ļrodowiska Matlaba z pliku dyskowego. JeŇeli w pliku tym
zostaþa zapisana w formacie znakowym (ASCII) wwczas wczytanie jej odbywa siħ poprzez
napisanie polecenia load nazwa_pliku ÎASCII
W wyniku takiego polecenia utworzona zostanie zmienna o nazwie takiej jak nazwa
>> load matrixA -ASCII
>> matrixA
matrixA =
1 2 3 4
5 6 7 8
9 10 11 12
wczytanego pliku zawierajĢcego macierz (rozszerzenie jest pomijane).
Macierze zdefiniowane w Matlabie moŇna zapisaę na dysku w postaci binarnej (rozszerzenie
á.matÑ poleceniem save nazwa_pliku nazwy_macierzy lub w postaci tekstowej poleceniem
save nazwa_pliku nazwa_macierzy -ASCII
>> save plikA matrixA
>>
Macierz moŇe teŇ byę utworzona poprzez podanie pierwszego elementu, kroku zwiħkszania
wartoĻci kolejnych elementw oraz ostatniego elementu oddzielonych dwukropkami. JeŇeli
parametr kroku jest pominiħty, wwczas domyĻlnie przyjmowany jest za 1.
>> C=1:2:10
C =
1 3 5 7 9
>> D=1:5
D =
1 2 3 4 5
>> E=[1:2:12; 1:6]
E =
1 3 5 7 9 11
1 2 3 4 5 6
Takie rozwiĢzanie jest szczeglnie czħsto wykorzystywane w tych przypadkach, gdy
potrzebujemy macierzy opisujĢcej ze staþym krokiem zmiennĢ niezaleŇnĢ jakiejĻ funkcji
(czas, czħstotliwoĻę, kĢt itp.) np.
>> alfa=0:pi/2:2*pi
alfa =
0 1.5708 3.1416 4.7124 6.2832
>> s= sin(alfa)
s =
0 1.0000 0.0000 -1.0000 0.0000
PowyŇsze polecenia pozwalajĢ na obliczenie funkcji sinus dla kĢtw od 0 do 2
z krokiem
/2 i umieszczenie macierzy wynikowej w zmiennej s.
4
Plik z chomika:
zxcvbnm174
Inne pliki z tego folderu:
Jerzy Brzózka, Lech Dorobczyński - Programowanie w Matlab(2).pdf
(21915 KB)
Podstawy obsługi pakietu MATLAB.pdf
(298 KB)
Matlab - wiadomości wstępne.pdf
(102 KB)
Matlab - grafika 3D.pdf
(1251 KB)
Matlab - M-pliki, skrypty i funkcje.pps
(253 KB)
Inne foldery tego chomika:
MATLAB
Matlab kurs PL
Matlab(1)
matlab-booki
Matlab-kurs PL
Zgłoś jeśli
naruszono regulamin