Wprowadzenie do MATLAB.pdf

(178 KB) Pobierz
35632465 UNPDF
Wprowadzenie do MATLAB
Ma“gorzata Strycharz , Magdalena Kwiatkowska
Akademia G ó rniczo-Hutnicza
im. Stanis“awa Staszica w Krakowie
Wydzia“ Elektrotechniki Automatyki Informatyki i Elektroniki
kierunek: Informatyka
rok II B grupa 6
http://student.uci.agh.edu.pl/strychar/mownit.html
http://student.uci.agh.edu.pl/magkwiat/mownit.html
1 Wiadomo–ci wstƒpne
1.1 Kr ó tka charakterystyka
MATLAB stanowi uniwersalne, interakcyjne –rodowisko programowe oraz jednocze–nie wysokiego
poziomu jƒzyk programowania. Przeznaczeniem pakietu s¡ przede wszystkim obliczenia naukowo -
techniczne, in»ynierskie oraz wizualizacje. Program ten pozwala na wykonywanie skomplikowanych
oblicze« numerycznych z ko«cow¡ wizualizacj¡ otrzymanych wynik ó w. S¡ one dostƒpne natychmiast,
a pakiet oferuje mo»liwo–¢ przedstawienia ich w postaci dwu lub trzech wymiarowych wykres ó w.
MATLAB “¡czy analizƒ numeryczna, obliczenia macierzowe, przetwarzanie sygna“ ó w i gra kƒ w “atwe
do u»ycia –rodowisko, w kt ó rym zar ó wno problemy jak i ich rozwi¡zania zapisane s¡ matematycznie
bez uwzglƒdnienia zasad tradycyjnego programowania.
1.2 Trochƒ historii
Nazwa MATLAB pochodzi od MATrix LABoratory i wi¡»e siƒ z pierwotna koncepcja pakietu, pole-
gaj¡c¡ na udostƒpnieniu u»ytkownikowi procedur LINPACK-a i EISPACK-a przy pomocy prostego
interakcyjnego jƒzyka polece«. Pierwsza wersja MATLAB-a zosta“a napisana w Fortranie w 1980.
Jej autorem jest C.Moler. W piec lat p ó „niej rma MathWorks Inc. wprowadzi“a na rynek wersje
komercyjn¡, napisana w jƒzyku C. Wersja ta do dzisiaj zosta“a znacznie rozszerzona i obejmuje
r ó »ne platformy sprzƒtowe pocz¡wszy od PC, a sko«czywszy na superkomputerach. Je–li przet“u-
maczy¢ by pe“n¡ nazwƒ pakietu na jƒzyk polski - Laboratorium Macierzowe oczywistym staje siƒ to,
i» u»ytkownik operuje tylko na jednym typie danych, a mianowicie na macierzach. Poci¡ga to za sob¡
fakt, »e nawet pojedyncze liczby s¡ reprezentowane w formie jednowymiarowej macierzy kwadratowej.
1.3 Dziedziny zastosowa«
Ze wzglƒdu na bardzo szerokie mo»liwo–ci, zakres zastosowa« pakietu obejmuje bardzo r ó »norodne
dziedziny nauki i techniki. Mo»na tu wymieni¢ cho¢by elektronikƒ, telekomunikacjƒ, automatykƒ,
ekonomiƒ, ale r ó wnie» zagadnienia z meteorologii, biologii i medycyny. W dziedzinach algorytm ó w
numerycznych algebry liniowej, analizy matematycznej i numerycznej, czy ca“kowania numerycznego
i oczywi–cie rachunku macierzowego bardzo wa»n¡ role odgrywa dostƒp do ich najnowszych implemen-
tacji, jest to jedna z bardzo znacz¡cych zalet MATLAB’a. Przyjazny u»ytkownikowi interfejs (okienka,
przyciski, menu) znacznie u“atwiaj¡ pracƒ z pakietem. Natomiast rozszerzalno–¢ pakietu przez impor-
towanie w“asnych aplikacji napisanych w jƒzyku C lub Fortranie stanowi wa»ny i po»yteczny model
pracy z pakietem.
2 Podstawowe zasady programowania
Praca w –rodowisku MATLAB-a przypomina pracƒ w typowym systemie operacyjnym. Polega
na wydawaniu polece«, kt ó re po zatwierdzeniu s¡ wykonywane przez interpreter.
obowi¡zuje zasada indeksowania macierzy pocz¡wszy od 1
inicjalizacja zmiennych odbywa siƒ automatycznie, wtedy, gdy po raz pierwszy przypisuje siƒ im
warto–¢
sta“e tekstowe zapisuje siƒ w apostrofach
wyr ó »niona jest prede niowana zmienna ans - przyjmuj¡ca wynik ostatniej operacji, dla kt ó rej
nie okre–lono zmiennej wynikowej
w ka»dej chwili mo»na zobaczy¢ listƒ zmiennych zde niowanych przez u»ytkownika przy u»yciu
komendy who
usuniecie zmiennej o podanej nazwie nastƒpuje po wywo“aniu komendy clear nazwa-zmiennej,
gdy nie podano nazwy zmiennej to usuwane s¡ wszystkie do tej pory zde niowane zmienne
nazwy zmiennych powinny zaczyna¢ siƒ od dowolnej litery, po niej mog¡ nast¡pi¢ litery, cyfry
lub podkreslenia w dowolnej ilo–ci, ale rozr ó »niane jest tylko pierwsze 19 znak ó w
du»e i ma“e litery s¡ rozr ó »niane
funkcja przestaje by¢ dostepna, je–li utworzymy zmienn¡ o nazwie identycznej jak nazwa
tej funkcji, jest dostƒpna spowrotem przy ponownym uruchomieniu programu
zawarto–¢ aktualnego katalogu uzyskujemy poleceniem dir –cie»ka-i-znaki-masek
do zmiany aktualnego katalogu s“u»y polecenie chdir nowy-katalog
wszystkie zmienne mo»na zapisa¢ na dysku poleceniem save nazwa-pliku
odczytanie zapisanych danych umo»liwia polecenie: load nazwa-pliku
je»eli po poleceniu wystepuje –rednik, to warto–¢ bƒd¡ca wynikiem jego wykonania nie bƒdzie
wy–wietlona na ekranie
3 Macierze i operacje na macierzach
3.1 Spos ó b przechowywania w pamiƒci
Macierze s¡ podstawowym typem danych wykorzystywanym w MATLAB-ie. Dopuszcza on dwa sposoby
przechowywania macierzy w pamiƒci:
gƒsty - przydzielana jest pamiƒ¢ dla tablicy n£m liczb rzeczywistych
rzadki - pamietane s¡ tylko elementy niezerowe wraz z ich po“o»eniem
3.2 De niowanie macierzy
Najprostsz¡ macierz tworzymy wymieniaj¡c jej elementy w nawiasach kwadratowych.
Przyk“ad:
>>M=[1 2 .3 5 ; 5.1 3 2 1/3]
W efekcie otrzymamy macierz nastƒpuj¡cej postaci:
M=
1.0000 2.0000 0.3000 5.0000
5.1000 3.0000 2.0000 0.3333
Macierze mo»na tworzy¢ tak»e za pomoc¡ funkcji bibliotecznych np.
eye(n) - daje w efekcie macierz jednostkow¡ n-wymiarow¡
rand(m,n) - utworzy macierz maj¡c¡ m wierszy i n kolumn oraz wype“ni j¡ liczbami losowymi z
przedzia“u <0,1>
ones(m,n) - utworzy macierz o podanych wymiarach i zainicjalizuje j¡ jedynkami
zeros(m,n) - utworzy macierz o podanych wymiarach i zainicjalizuje j¡ zerami
3.3 Dostƒp do element ó w macierzy
Do elementu macierzy mo»emy siƒ odnie–¢ podaj¡c nazwƒ macierzy oraz w nawiasach numery wiersza
i kolumny.
Przyk“ad:
>>M(1,1)=1;
Je»eli wykroczymy poza wymiary macierzy, to automatycznie zostanie jej nadany odpowiedni wymiar,
a brakuj¡ce pola zostan¡ zainicjalizowane zerami.
Przyk“ad:
>>M(2,5)=3
M =
1.0000 2.0000 0.3000 5.0000 3.0000
5.1000 3.0000 2.0000 0.3333
0
3.4 G“ ó wne operatory macierzowe
Na macierzach mo»na dokonywa¢ nastƒpuj¡cych dzia“a« przy pomocy operator ó w:
dodawanie dw ó ch macierzy lub dodanie skalaru do macierzy
Przyk“ad:
>>A+1;
>>A+B;
odejmowanie macierzy lub odjƒcie skalaru od macierzy
mno»enie macierzy lub skalar ó w (przy mo»eniu macierzy A*B liczba kolumn macierzy A musi by¢
r ó wna liczbie wierszy macierzy B, w przeciwnym razie generowany jest komunikat o b“ƒdzie)
Przyk“ad:
>> A=[1 1;2 2;3 3]\\
A=
1.0000 1.0000
2.0000 2.0000
>> B=[1;2]
B=
1.0000
2.0000
>>A*B
ans =
3.0000
6.0000
9.0000
potƒgowanie macierzy
Przyk“ad:
>>B^2;
3.5 Inne operacje na macierzach
Opr ó cz podstawowych operacji arytmetycznych, na macierzach mo»na dokonywa¢ szeregu innych
dzia“a«.
Przyk“ady:
mno»enie tablicowe macierzy o tych samych wymiarach - czyli mno»enie odpowiadaj¡cych sobie
element ó w dw ó ch macierzy
>>A.*B
potƒgowanie tablicowe - podniesienie ka»dego elementu macierzy do podanej potƒgi
>>A.^3
u»ycie dwukropka
A(:) - przestawia wszystkie elementy macierzy w wektor kolumnowy
A(:,i) A(i,:) - wypisuje odpowiednio i-t¡ kolumnƒ lub i-ty wiersz macierzy A
A(i:n) - wypisuje elementy macierzy od i-tego do n-tego
A(:,i:n) - wypisuje kolumny pocz¡wszy od i-tej do n-tej
A(i:n,:) - wypisuje elementy od i-tego do n-tego wiersza
3.6 Funkcje przekszta“caj¡ce macierze
Obok operator ó w tablicowych MATLAB zawiera tak»e funkcje tablicowe, kt ó re przekszta“caj¡ ka»dy
z element ó w macierzy z osobna.
Przyk“ad:
>>A=[1 2 4; 2 16 64];sqrt(A)
ans=
1.0000 1.4142 2.0000
1.4142 4.0000 8.0000
Elementami macierzy wynikowej s¡ pierwiastki stopnia drugiego element ó w macierzy A. Funkcje tabli-
cowe mo»na podzieli¢ na cztery grupy:
trygonometryczne, hiperboliczne i odwrotne do nich np sin(A) - sinus, atan(A) - arcus tangens,
cosh(A) - cosinus hiperboliczny, asinh(A) - arcus sinus hiperboliczny
funkcje logarytmiczne, wyk“adnicze i potƒgowe np. exp(A) - funkcja wyk“adnicza pow2(A) -
oblicza warto–ci potƒgi liczby 2 dla wyk“adnik ó w bƒd¡cych elementami macierzy A, log(A) -
logarytm naturalny element ó w macierzy A
funkcje zwi¡zane z obliczeniami w dziedzinie liczb zespolonych np. abs(A) - macierz modu“ ó w
element ó w macierzy A, real(A) - macierz czƒ–ci rzeczywistych element ó w macierzy A, imag(A)
- macierz czƒ–ci urojonych element ó w macierzy A
funkcje zaokr¡gle« i reszty z dzielenia ceil(A) - zaokr¡gla elementy macierzy A w g ó rƒ, oor(A)
- zaokr¡gla elementy macierzy A w d ó “, round(A) - zaokr¡gla elementy macierzy do najbli»szej
liczby ca“kowitej, rem(A,B) - oblicza resztƒ z dzielenia odpowiadaj¡cych sobie element ó w macierzy
A i B
Zgłoś jeśli naruszono regulamin