You are on page 1of 9

Metody numeryczne

Instytut Sterowania i Systemw Informatycznych


Wydzia Elektrotechniki, Informatyki i Telekomunikacji
Uniwersytet Zielonogrski
Elektrotechnika stacjonarne-dzienne pierwszego stopnia z tyt. inyniera
Informatyka stacjonarne-dzienne drugiego stopnia z tyt. magistra inyniera

Wstp do Matlaba
Laboratorium, prowadzcy: mgr in. Baej Cichy
Rok akademicki 2010/2011

Materia omawiany na laboratorium


Materia laboratorium obejmuje nastpujce zagadnienia:
1. Wstp, plan zaj na laboratorium
podstawowe informacje o Matlabie.
2. Obliczenia, operacje elementarne na
macierzach.
3. Grafika 2D i 3D w Matlabie.
4. Programowanie w Matlabie, m-pliki,
m-funkcje.

5. Bdy zwizane z obliczeniami numerycznymi, konwersje liczb.


6. Rozwizywanie rwna nieliniowych.
7. Zagadnienia algebry liniowej.
8. Zagadnienia interpolacji.
9. Zagadnienia aproksymacji.
10. Cakowanie numeryczne.

Jednak wszystkie informacje o Matlabie mona odszuka w samym programie. Posiada


on bardzo dobr dokumentacj z ktrej trzeba korzysta!

Kilka uwag o programie Matlab


Ponisze uwagi maj charakter informacyjny nie wyczerpuj dokadnie caoci
zagadnie. Dlatego zachcam do dokadnego przeczytania dokumentacji oraz
eksperymentowania1 .

Program Matlab to jeden z lepszych pakietw zorientowanych przede wszystkim na


obliczenia numeryczne. Obecnie dostpna jest ju sidma wersja tego pakietu. Zalet Matlaba jest moliwo interaktywnej pracy z konsoli, gdzie mona wydawa pojedyncze
polecenia. Istnieje te moliwo tworzenie skryptw oraz dodawanie nowych funkcji. Zalet Matlaba jest take duy pakiet gotowych do wykorzystania funkcji np.: do tworzenia
sieci neuronowych, czy pakiet Simulink. Tego rodzaju pakiety nazywa si te toolboxami.
Wanym aspektem jest take wydajno numeryczna. Wczeniejsze wersje Matlaba nie
oferoway pod tym wzgldem duych moliwoci. Jednak od wersji 6.5 Matlab dziki bibliotekom Atlas2 moe zaoferowa wysok wydajno.
1

Cho przy funkcjach obsugi systemw plikw np.: delete oraz rmdir zalecana jest daleko idca
powcigliwo.
2
Pakiet Atlas co jest bardzo ciekawe to darmowy zestaw procedur numerycznych napisanych w
C dostpnych pod adresem: http://math-atlas.sourceforge.net/. Nie jest to jedyna darmowa biblioteka z

Wstp do Matlaba

Rysunek 1: Gwne okno pomocy programu Matlab

2.1

Pomoc programu Matlab

Program Matlab posiada bardzo bogat dokumentacj z licznymi przykadami. Z pomocy moemy korzysta na dwa sposoby: za pomoc konsoli i polecenia help, bd z
interfejsu graficznego programu. Dokumentacja zostaa zgromadzone w opcji Help/Full
Product Family Help i jest to gwny zbir gdzie znajduj si informacje o toolboxach
i funkcjach w nich zgromadzonych. Po wybraniu tej opcji pokae si okno podobne do
okna z rysunku 1. Korzystanie z tej formy pomocy jest charakterystyczne dla aplikacji
okienkowych. Caa struktura pakietu Matlab jak wida na rysunku 1 zostaa przedstawiona w formie drzewa. Upraszcza to dostp do informacji o poszczeglnych toolboxach.
Podczas wyszukiwania informacji przydaj si zakadki Index zostay tam zgromadzone wszystkie sowa kluczowe. Wpisujc sowa system zawa list sw rozpoczynajcych
si od podanej przez nas frazy. Okno pomocy posiada te zakadk Favorites moemy
w niej umieszcza odniesienia do najbardziej interesujcych nas zagadnie. Wystarczy w
drzewie Contents wybra nam potrzebne zagadnienia i poprzez menu kontekstowe (prawy
przycisk myszy) wybra opcj Add to Favorites.
System pomocy Matlaba pozwala take na przeszukiwanie dokumentacji elektronicznej. Suy do tego zakadka Search w oknie pomocy. Moemy przeszukiwa dokumentacj
na kilka sposobw:
opcja Full Text przeszukuje tre dostpnych dokumentw pomocy
opcja Document Titles umoliwia przeszukiwanie wrd tytuw zgromadzonych
dokumentw
opcja Function Name szuka podanej frazy w bazie nazw funkcji dostpnych w
Matlabie
opcja Online Knownledge Base przeszukiwanie zasobw sieciowych
Oprcz wygodnego graficznego systemu pomocy Matlab oferuje take specjalne polecenie help. Wszelkie informacje jakie uzyskamy s wywietlane bezporednio w konsoli
jakiej korzysta Matlab innym jest zbir metod numerycznych napisanych w Fortranie o nazwie LAPACK
czy BLAS.

Wstp do Matlaba

programu. Uzyskanie informacji nt. jakiego polecenia jest nastpujce np.:


>> help det
Po wydaniu tego polecenie otrzymamy na ekranie konsoli informacje na temat podanej
funkcji. Gdy pomoc dla danego polecenia nie bdzie dostpna to Matlab wywietli stosowny komunikat jak w poniszym przykadzie:
>> help fid2
No help comments found in fid2.m.
Jednak gdy dana funkcja rzeczywicie nie istnieje to otrzymamy inny komunikat:
>> help fff
fff.m not found.
Polecenie help jest w rzeczywistoci funkcj ktr naley utosamia np.: z pojciem funkcji w jzyku Pascal. Przyjmuje ona argumenty i zawraca warto np.: msg=help(sin);
oznacza, e funkcja help znajdzie informacje na temat sin a tekst pomocy zapisze do
zmiennej msg.
Wersja 7.0 posiada dodatkowe polecenie o nazwie doc zwizane z systemem pomocy.
Sposb uycia tego polecenia jest podobny do help np.: doc vpa spowoduje wywietlenie
informacji za porednictwem okna Help, czyli z gwnego systemu pomocy.
Wiele cennych informacji znajduje si take na stronie producenta programu Matlab3 .
Natomiast podstawowym forum wymiany informacji o tym programie jest strona MatLabCentral4 . Znajduje si tam wiele odsyaczy do innych miejsc w sieci oraz wiele przykadw
stosowania rnych toolboxw.

2.2

cieki przeszukiwa

Istotn czynnoci jak warto wykona przed rozpoczciem pracy jest utworzenie nowego katalogu. W katalogu tym powinny znajdowa si pliki z jakimi bdziemy pracowa.
Aby zwikszy wygod pracy warto doczy wspomniany katalog do cieki przeszukiwa.
T czynno wykonujemy w oknie Set Path (Rysunek 2). Aby to zrobi naley wybra
opcj Set Path z menu File a nastpnie doda potrzebn ciek za pomoc przycisku Add
Folder... po czym zapisa zmiany przyciskiem Save. Pozwoli to korzysta z utworzonych
przez nas m-plikw identycznie jak z pozostaych funkcji programu Matlab.
ciek mona take doda poprzez polecenie addpath. Wystarczy np.: wyda nastpujce polecenie: addpath c:\mojepliki aby uzupeni ciek przeszukiwa o nowe
katalog. W Matlabie wiele rzeczy mona zrobi na rne sposoby. Now ciek mona dopisa take w nastpujcy sposb: path(path,c:\\mojepliki). Czasami przydaje si
informacja o tym w jakim katalogu zosta zainstalowany Matlab. T informacj uzyskamy
za pomoc polecenia: matlabroot.
3
4

http://www.mathworks.com/
http://www.mathworks.com/matlabcentral/

Wstp do Matlaba

Rysunek 2: cieki przeszukiwa, czyli


okno Set Path

2.3

Rysunek 3: Okno preferencji

Uruchamianie i wyczanie Matlaba

Proces uruchamiania Matlaba sprowadza si do kliknicie na odpowiedni ikon na


pulpicie, bd wybrania z menu Start, jeli Matlab zosta zainstalowany w rodowisku
Windows, stosownej opcji. Matlab mona take uruchomi za pomoc pliku bat. Znajduje si on w katalogu c:\matlab\bin, jeli naturalnie program zosta zainstalowany w
katalogu c:\matlab.
Podczas pierwszego uruchomienia Matlaba po instalacji dokonywana jest indeksacja
toolboxw. Operacj t warto powtrzy jeli instalowany byy nowe toolboxy. Wykonujemy j np.: wydajc polecenie rehash z odpowiednim parametrem:
>> rehash toolboxcache
Oczywicie operacj uaktualnienia wykona z poziomu menu. Naley z menu File wybra
opcj Preferences.... Ukae si okno podobne do okna z rysunku 3 a nastpnie w sekcji
General przyciskiem Update Toolbox Path Cache rozpoczyna operacj uaktualnienia.
Zakoczenie pracy z Matlabem mona wykona na dwa sposoby. Wybierajc z menu
File opcj Exit, bd klikajc na oknie przycisk zamknicia okna lub kombinacj klawiszy
ALT-F4. Oprcz tych podstawowych moliwoci zakoczenie pracy mona wymusi poleceniem quit. Przyjmuje ono dwa argumenty: quit cancel odwouje proces zamknicia
natomiast quit force definitywnie zamknie program. Ot polecenie quit domylnie szuka m-pliku o nazwie finish.m. Jeli ten plik zostanie odszukany to wykonywana jest jego
tre. W owym pliku mona nakaza odwoanie operacji zamknicia podan opcj cancel.
Doskonaym przykadem moe by poniszy kod ktry umieszczony w pliku finish.m w
momencie zamykania programu zada pytanie czy istotnie chce zamkn program Matlab:
button = questdlg(Zakoczy dziaanie programu?, Pytanie, ...
Tak,Nie,Nie);
switch button
case Tak,
disp(Zamykanie programu);
save
case Nie,
quit cancel;
end

Wstp do Matlaba

W powyszym skrypcie wystpuje jedno bardzo istotne polecenie: save. Za jego pomoc
mona zapisa ca przestrze robocz do pliku. Polecenie to przyjmuje cay szereg parametrw np.: save roboczy.mat zapisze workspace do pliku roboczy o rozszerzeniu mat.
Za wczytanie zapisanych danych jest odpowiedzialne polecenie load.
Podczas pracy z Matlabem nader czsto przydaje si historia wszystkich polece jakie s wydawane z poziomu konsoli. Sam Matlab w oknie History przechowuje historie wydanych polece. Mona te nakaza programowi umieszczanie wszystkich danych
wywietlanych na konsoli (nie tylko histori wydanych polece ale take ich wynikw)
poleceniem diary. Polecenie to przyjmuje za argument nazw pliku. Wydanie polecenia
diary moja_sesja.txt spowoduje, e w pliku moja sesja.txt bd zapisywane wszystkie
informacje jakie ukazuj si na ekranie konsoli. Wyczenie zapisu nastpuje po wydaniu
polecenia: diary off.

2.4

Zmienne oraz funkcje specjalne

Jeli wynik dziaania jakiejkolwiek operacji nie zostanie umieszczony w zmiennej to


Matlab samodzielnie tworzy zmienn o nazwie ans. W tej zmiennej umieszczany jest
wynik dziaania.
Matlab posiada te predefiniowane wartoci do oznaczania wartoci specjalnych np.:
nieskoczonoci. Za pomoc litery j oznaczany jest czynnik liczby zespolony. Za pomoc
skrtu NaN (ang. not a number ) oznaczono sytuacj, e dana warto nie jest wartoci
w sensie liczbowym. Podobnie przez Inf oznaczono nieskoczono.
Wartoci NaN, Inf moe stosowa tak jak inne liczby czy cigi znakw i porwnywa
choby przy pomocy instrukcji if. Matlab oferuje take specjalne funkcje sprawdzajce
czy podana zmienna lub wyraenie jest okrelonego typu. Oto kilka przykadw:
isinf sprawdza czy warto jest nieskoczona
isfinite przeciwiestwo poprzedniej funkcji bo sprawdzamy czy warto jest
skoczona
isnan czy warto jest typu NaN
isreal czy warto jest typu rzeczywistego
isfloat czy warto jest typu zmiennoprzecinkowego
isinteger czy warto jest cakowita
Matlab jako pakiet numeryczny definiuje kilkanacie rnych typw. Tabela 1 prezentuje podstawowe typy dostpne w Matlabie. Dokadniejsze informacje o typach mona
uzyska po wydaniu polecenia: help datatypes.
W przypadku rnych typw cakowitych czy zmiennoprzecinkowych wane s wartoci minimalne i maksymalne. W kontekcie metod numerycznych jest to bardzo istotna
informacja. Poznajemy je za pomoc nastpujcych funkcji: intmin, intmax, realmin,
realmax.
Uzupeniajc te informacje jest funkcja eps. Jej wartoci jest dokadno z jak
przeprowadzane s obliczenia a dokadniej rnica pomidzy podan liczb a nastpn
wiksz od niej liczb zmiennoprzecinkow. Poniej kilka przykadw zastosowania funkcji
eps:
double precision
eps(1/2) = 2^(-53)
eps(1) = 2^(-52)
eps(2) = 2^(-51)

Wstp do Matlaba

Typ
logical
char
numeric
integer
int8
uint8
int16
uint16
int32
uint32
int64
uint64
float
single
double
cell
struct
function handle
class name

Krtki opis
Logical array of true and false values
Characters array
Integer or floating-point array
Signed or unsigned integer array
8-bit signed integer array
8-bit unsigned integer array
16-bit signed integer array
16-bit unsigned integer array
32-bit signed integer array
32-bit unsigned integer array
64-bit signed integer array
64-bit unsigned integer array
Single- or double-precision floating-point array
Single-precision floating-point array
Double-precision floating-point array
Cell array
Structure array
Function handle
Custom MATLAB object class or Java class

Tabela 1: Podstawowe typy danych w Matlabie


single precision
eps(single(1/2)) = 2^(-24)
eps(single(1)) = 2^(-23)
eps(single(2)) = 2^(-22)

2.5

Format oraz funkcje wyjcia

Standardowo wyniki obliczenia w Matlabie s wywietlane do piciu miejsc po przecinku. Odpowiada to poleceniu format short. Jest to tzw. format staoprzecinkowy. Zwikszenie dokadnoci do pitnastu miejsc po przecinku wymaga podania opcji long dla
polecenia format. Polecenie to pozwala na wywietlanie liczba w postaci szesnastkowej
(format hex) oraz w postaci uamkw format rat jednak tylko dla maych liczb.
Wiksza dokadno oblicze mona wymusi poprzez polecenie vpa np.:
vpa(pi, 1000) oblicza warto liczby do tysicznego miejsca po przecinku.
Cho po wpisaniu samej nazwy zmiennej Matlab wywietli warto jak jest w niej
przechowywana, w skryptach taki sposb wywietlania wartoci nie jest poprawny. Do
wywietlania wasnych komunikatw mona zastosowa kilka polece np.: disp, sprintf
lub fprintf.
Polecenie disp przyjmuje za argument wyraenie lub zmienn przeznaczon do wywietlenia, np.: disp(a). Dopuszczalnym argumentem jest cig znakw objty apostrofami, np.: disp( jakis tekst ). Gdy istnieje potrzeba wywietlenia kilku zmiennych to
naley stosowa operator konkatencji cigw znakw reprezentowany przez dwa nawiasy
kwadratowe [ oraz ]. Jednak naley w przypadku kadej wykona konwersj z wartoci
liczbowej na tekst za pomoc funkcji num2str (bd int2str):

Wstp do Matlaba

Rysunek 4: Okno edytora m-plikw


x=1; y=2; z=3;
disp([num2str(x) , num2str(y) , num2str(z)])
Wicej moliwoci formatowania reprezentacji liczb daje funkcja przeniesiona z jzyka
C o nazwie sprintf. Jednak przygotowuje ona tylko i wycznie cig znakw zgodnie
z parametrami. Do ostatecznego wywietlenia trzeba stosowa polecenie disp. Przykad
formatowania z wykorzystaniem polecenia sprintf jest nastpujcy:
x=1; y=2; z=3;
disp(sprintf(%d %d %d,x,y,z))
W przypadku ostatniej funkcji fprintf, wystarczy poda argument w postaci acucha
znakw, aby wywietli komunikat bezporednio na ekranie:
a=3; b=4;
fprintf(Mamy nastpujce liczby a=%d, b=%d.\n, a, b);
Wicej informacji help fprintf.

2.6

Tworzenie m-plikw

Matlab jest rodowiskiem interaktywnym tzn. z poziomu konsoli wydajemy polecenia.


Jednak wiele z tych polece to nazwy skryptw, czyli plikw zawierajcych polecenia do
wykonania przez Matlaba. Takie pliki nazywa si m-plikami. Istniej dwa rodzaje tych
plikw tzw. skrypty gdzie instrukcje wykonywane s kolejno linia po linii poczwszy od
pocztku pliku. Drugi rodzaj to m-funkcje. W pliku tworzona jest specjalna funkcja, ktra
przyjmuje argumenty. W ten sposb zostay opracowane niemal wszystkie dodatkowe
pakiety dostpne w systemie.
Tworzenie m-funkcji jest tematem jednego z nastpnych laboratoriw i zostanie tam
dokadniej omwione. Jednake tworzenie skryptw jest bardzo atwe. Z menu File naley
wybra opcj New a z menu jakie si ukae opcj M-File. Ukae si okno podobne do
okna z rysunku 4. Po wpisaniu treci m-pliku, mona go natychmiast uruchomi/wykona
naciskajc klawisz F5, wpierw zapisujc go pod jak nazw (bez spacji) z rozszerzeniem
.m np. zad1.m. Mona go rwnie uruchomi z poziomu konsoli wpisujc jego nazw
bez rozszerzenia, czyli zad1 (katalog zawierajcy ten plik musi by biecym katalogiem
lub musi by wpisany na list cieek przeszukiwa).

Wstp do Matlaba

Octave darmowy odpowiednik

Program Octave5 to darmowy odpowiednik programu Matlab. Cho nie jest on tak
bardzo rozbudowany jak Matlab to ma pewne zalety. Po pierwsze jest programem znacznie
mniejszym przez co nie wymaga duej iloci pamici RAM czy szybkiego procesora. Pracuje bardzo sprawnie na starszych komputerach. Posiada peny kod rdowy co pozwala
na pena modyfikacj tego pakietu i dopasowanie go do wasnych potrzeb.
Octave nie oferuje po instalacji tak duego zbioru funkcji jak Matlab ale z punktu
widzenia metod numerycznych obydwa pakiety oferuj podobne moliwoci. Przy czym w
rzeczywistoci spoeczno uytkownikw tego programu opracowaa wiele dodatkowych
toolboxw. Niestety dodatkowe funkcje wymagaj wicej wysiku w ich instalacje.
Pakiet Octave najlepiej funkcjonuje w systemie Unix w tym oczywicie take pod Linuxem. W nim te najatwiej instalowa dodatkowe pakiety. Wydajno pakietu wbrew
pozorom nie jest nisza ni Matlaba to z tego wzgldu, e wykorzystywane s te same
zbiory metod numerycznych zgromadzone w pakietach LAPACK, BLAS oraz Atlas. Co
wicej mog one dziaa nawet sprawniej poniewa Octave jest pozbawiony wielu dodatkw co niewtpliwie wpywa bardzo dobrze na jego szeroko pojt wydajno.
Sposb pracy z Octave jest identyczny jak z Matlabem. Dostpny jest tryb interaktywny, mona te tworzy m-pliki. Na stronie domowej tego projektu dostpna jest obszerna
dokumentacja.

Zadania

1. Odszuka informacje o funkcji det za pomoc graficznego interfejsu (poszuka za


pomoc zakadek Index oraz Search). Co wyznacza funkcja det?
2. Poszuka informacji o funkcji fsolve za pomoc okna Help.
3. Sprbowa wykona przykady zwizane z funkcj fsolve.
4. Wyszuka informacje o funkcji plot za pomoc Search we wszystkich czterech kategoriach.
5. Jakie informacje otrzymujemy po wydaniu polecenia help.
6. Przeczyta informacje uzyskane z polecenia: help help.
7. Uzyska informacje o poleceniach: lookfor, what, which, more, who. Poda przykady ich zastosowa.
8. Polecenie help (jak i kilka innych) wystpuje w dwch formach. Jakie s to formy i
jakie maj przeznaczenie.
9. Sprawdzi jak dziaaj klawisze kursora w konsoli programu Matlab.
10. Odszuka informacje na temat polece systemu plikw: dir, cd, ls, pwd, copyfile,
delete, fileattrib, movefile, mkdir, rmdir, exist.
11. Jakie jest przeznaczenie polece: clear, clc, home
12. Sprawdzi dziaanie funkcji demo.
13. Wykona nastpujce polecenia w Matlabie:
[x,y] = meshgrid(-3:1:3);
z = peaks(x,y);
surf(x,y,z)
Zapozna si z funkcjami okna wykresw jakie si pojawio.
5

Program mona odszuka pod adresem http://www.octave.org. Jest on te dostpny w wielu dystrybucjach Linuxa np.: Fedora, Ubuntu, Debian.

Wstp do Matlaba

14. Utworzy plik finish.m z treci podan w poprzednich punktach i sprawdzi czy
istotnie blokuje on proces wyczanie programu?
15. Sprawdzi jak dziaaj polecenia save, load oraz diary.?
16. Polecenie save posiada moliwo zapisu wybranych zmiennych poda przykad jego
zastosowania.
17. Sprawdzi na czym polegaj rnice pomidzy poleceniami path oraz addpath.
18. Po co stosujemy polecenie rehash? Jakie inne argumenty mona zastosowa?
19. Napisa krtki skrypt (m-plik) ktry pokae wartoci minimalne i maksymalne dla
wszystkich podstawowych typw liczbowych.
20. Funkcje num2str oraz int2str wykonuj t sam operacj dokonuj konwersji liczby
na cig znakw. Rni si jednak istotnym detalem. Jakim?

Literatura
[1] Bjarck Ake i Dahlquist Germund. Metody numeryczne. PWN, Warszawa, 1987.
[2] Jerzy Brzzka i Lech Dorobczyski. Programowanie w MATLAB. Warszawa,
Wydanie I, 1998.
[3] Zenon Fortuna, Bohdan Macukow i Janusz Wsowski. Metody numeryczne. WNT,
Warszawa, 1995.
[4] Jerzy Klamka i in. Metody numeryczne. Politechnika lska, Gliwice, 1998.
[5] David Kincaid i Ward Cheney. Analiza numeryczna. WNT, Warszawa, 2006.
[6] Anna Kamiska i Beata Paczyk. Matlab. wiczenia z . . . , Przykady i zadania.
Warszawa, Wydanie I, 2002.
[7] Wanat Kazimierz. Algorytmy numeryczne. Helion, Gliwice, 1994.
[8] Bogumia Mrozek i Zbigniew Mrozek. MATLAB i Simulink. Poradnik uytkownika.
Wydanie II, 2004.
[9] Jurij Povstenko. Wprowadzenie do metod numerycznych. Akademicka Oficyna
Wydawnicza EXIT, Warszawa, Wydanie drugie poprawione i uzupenione, 2005.
[10] Rudra Pratap. MATLAB 7 dla naukowcw i inynierw. PWN, 2007.
[11] Wiesawa Regel. Wykresy i obiekty graficzne w MATLAB. Warszawa, Wydanie I,
2003.
[12] Marcin Stachurski. Metody numeryczne w programie Matlab. Warszawa, Wydanie I,
2003.

You might also like