MatlabDlaOdpornych.pdf

(289 KB) Pobierz
4758649 UNPDF
Maciej Krawiecki
Matlab dla o(d)pornych
(wersja robocza)
Przedmowa
Wył¡cznym celem przy±wiecaj¡cym autorowi było zebranie w mo»liwie
krótkim tek±cie opisów i przykładów zastosowania najniezb¦dniejszych pole-
ce« programu Matlab w takim zakresie, w jakim jest to niezb¦dne studen-
tom odrabiaj¡cym Laboratorium Metod Numerycznych w Zakładzie Teorii
Sterowania Instytutu Automatyki Politechniki Łódzkiej. Dlatego w poni»-
szym opracowaniu omówiono niewielki podzbiór polece« pakietu Matlab,
a studenci zainteresowani pełnymi mo»liwo±ciami programu lub jego rozsze-
rze«, powinni skorzysta¢ z podanej literatury. Rozmy±lnie pomini¦to opis
wszelkich najnowszych rozszerze« j¦zyka o nowe typy danych czy o elementy
programowania obiektowego. Nie omawiano te» pakietów rozszerze« (toolbo-
xów), w szczególno±ci Simulink’a. W rezultacie, z bardzo niewielkimi wyj¡t-
kami, wszystkie poruszone zagadnienia odnosz¡ si¦ zarówno do wersji 4.2b,
jak i 5.X. Zasygnalizowano tak»e niektóre zmiany, wprowadzone w wersji 6.0.
Niniejszy tekst jest we wczesnej fazie rozwojowej, dlatego autor prosi czy-
telników o wyrozumiało±¢ i sygnalizowanie wszelkich zauwa»onych pomyłek.
1
1. Historia i współczesno±¢ Matlab ’a
Pierwsz¡ wersj¦ programu Matlab napisał ok. 1980 r. w FORTRAN’ie
prof. Clive Moler, aby ułatwi¢ sobie obliczenia z dziedziny algebry liniowej.
St¡d wywodzi si¦ nazwa programu „Matlab”, b¦d¡ca akronimem słów Ma-
trix Laboratory. Ta pierwsza wersja była interpreterem j¦zyka polece« po-
zwalaj¡cego zapisywa¢ obliczenia na wektorach i macierzach w formie zbli»o-
nej do notacji matematycznej i daj¡cym dost¦p do procedur numerycznych
z bibliotek LINPACK oraz EISPACK. Zainteresowanie i pozytywna reakcja
w±ród znajomych (prof. Moler rozdał kilkaset ta±m z kodem ¹ródłowym) oraz
rozpowszechnienie komputerów osobistych (PC) skłoniły autora Matlab’a
do komercjalizacji projektu: wraz z Johnem Little zało»yli firm¦ MathWorks
Inc. i stworzyli PC–Matlab przepisuj¡c kod programu w j¦zyku C oraz
wzbogacaj¡c o funkcje graficzne. Ten krok (przeniesienie Matlab’a na plat-
form¦ PC) był przypuszczalnie najwa»niejsz¡ decyzj¡ strategiczn¡, która dała
Matlab’owi pierwsze miejsce w±ród pakietów do oblicze« naukowo-tech-
nicznych. A» do wersji 3.5 Matlab był programem pracuj¡cym pod kon-
trol¡ MS–DOS lub PC–DOS. Werja 3.5 przeniesiona została do ±rodowiska
Windows i na Macintosh’a. Wersja 4.0 wprowadziła macierze rzadkie (ang.
„sparse”), znaczne rozszerzenia funkcji graficznych (tzw. Handle Graphics)
oraz wersje na platformy unixowe. Obok rozpowszechnienia spowodowanego
dost¦pno±ci¡ na platformy PC i Macintosh do sukcesu Matlab’a przyczyniła
si¦ polityka licencyjna polegaj¡ca na udzielaniu znacznych zni»ek wy»szym
uczelniom. Pozwoliło to wygra¢ z innymi podobnymi pakietami jak CTRL–C
czy Matrix–X. Wersja 5.0 przyniosła dalsze udoskonalenie funkcji graficznych
i bardzo znaczne zmiany j¦zyka polegaj¡ce na wprowadzeniu nowych typów
danych i programowania obiektowego z mo»liwo±ci¡ przeci¡»ania operatorów
wł¡cznie. Przez lata liczba rozszerze« Matlab’a w postaci pakietów funkcji,
tzw. toolboxów stała si¦ tak wielka, a zakres ich zastosowa« tak szeroki, »e
nie jest mo»liwe omówienie ich wszystkich w jednej, cho¢by bardzo grubej,
ksi¡»ce. Oferowane przez firm¦ MathWorks oraz niezale»nych producentów
toolboxy obejmuj¡ specyficzne zagadnienia teorii sterowania (kilkana±cie pa-
kietów), sieci neuronowe, statystyk¦, obróbk¦ obrazów, rozwi¡zywanie rów-
na« ró»niczkowych cz¡stkowych, obliczenia chemiczne, obliczenia finansowe
a nawet obliczenia symboliczne. W wersji 6.0 zmieniono te» procedury obli-
czeniowe na pochodz¡ce z najwi¦kszej (zreszt¡ darmowej) biblioteki procedur
z dziedziny algebry liniowej LAPACK, a dyskretne przekształcenie Fourie-
ra realizowane jest przez bibliotek¦ FFTW (tak»e dost¦pn¡ nieodpłatnie) –
w rezultacie Matlab staje si¦ głównie j¦zykiem programowania, a w za-
kresie algorytmów korzysta z najnowszych, sprawdzonych rozwi¡za« u»ywa-
nych szeroko w ±rodowisku naukowym. Matlab jest przy tym dost¦pny na
2
platformy od Windows, Linux (niestety – jak na wszystkie inne platformy
– komercyjnie) poprzez wszelkie warianty UNIX’a jak HP–UX, IRIX, AIX,
Solaris i.t.p. a» po du»e maszyny (mainframe) jak Cray (rozwój wersji do
Macintosha wstrzymano na numerze 5.2).
Istniej¡ do±¢ liczne programy na±laduj¡ce Matlab’a, nale»¡ce do katego-
rii freeware, na ogół nieco ró»ni¡ce si¦ szczegółami składni 1 oraz pozbawione
wi¦kszo±ci funkcji graficznych. Przykłady to Scilab, Octave, RLab, Euler.
1
W konsekwencji nie mog¡ korzysta¢ z toolboxów — nawet tych darmowych
2. Filozofia korzystania z Matlab ’a
Matlab, przynajmniej pierwotnie, przeznaczony był do pracy interak-
tywnej nad zadaniami numerycznej algebry liniowej. Z tego wzgl¦du pod-
stawowym elementem obsługi programu jest konsola tekstowa zwana zwykle
oknem polece« (ang. „command window”). Praca z programem polega na wy-
pisywaniu polece« zako«czonych znakiem powrotu karetki („Enter”), które
s¡ niezwłocznie interpretowane przez program, a wyniki oblicze« wy±wietla-
ne w tym samym oknie. Polecenia mog¡ dotyczy¢ tak»e otwarcia nowych
okien do prezentacji graficznej wyników, a nawet okien wyposa»onych w zna-
ny z Windows graficzny interfejs u»ytkownika, jednak konwersacja w trybie
tekstowym pozostaje podstawow¡ form¡ oblicze«. Najprostszym wariantem
takiej konwersacji jest u»ycie Matlab’a jako pot¦»nego kalkulatora – obok
znaku zach¦ty >> wpisujemy wyra»enie, ko«cz¡c je znakiem nowej linii („En-
ter”):
>> 2+sin(5*pi/7)-exp(3)
ans =
-17.3037
>>
Sposób prezentacji wyników mo»na zmieni¢ poleceniem format . Na przy-
kład nast¦puj¡ca sekwencja likwiduje dodatkowe puste linie w odpowiedzi
programu, oraz zwi¦ksza ilo±¢ wy±wietlanych cyfr ułamkowych:
>> format compact
>> format long
>> 2+sin(5*pi/7)-exp(3)
ans =
-17.30370544071964
Wyniki mo»na zapami¦ta¢ w zmiennej o nazwie zło»onej z maksymalnie 32
liter i cyfr (do wersji 4.2 wł¡cznie do 20), zaczynaj¡cej si¦ od litery
>> dluganazwa10=2+sin(5*pi/7)-exp(3);y=5,dluganazwa10+y^2
y=
5
ans =
7.69629455928036
4
Zgłoś jeśli naruszono regulamin