Informatyka Małgorzata Kotulska D1 pok. 115 malgorzata.kotulska@pwr.wroc.pl Konsultacje: wtorek 9-11, piątek 9-11 (proszę o wcześniejszego emaila) MATLAB http://www.mathworks.com Materiały do wykładu na mojej stronie: http://www.ibp.pwr.wroc.pl/kotulskalab/ Zakładka: For_Students Plan tematów 1. Wprowadzenie do środowiska Matlab. Podstawowe typy danych. Ogólne zasady programowania w Matlabie. Wybrane funkcje własne Matlaba. 2. Instrukcje. Skrypty i funkcje. Operacje na plikach. 3. Grafika w Matlabie. Graficzny interfejs użytkownika (GUI). 4. Dopasowanie krzywej. Złożone typy danych. Łańcuchy. 5. Podstawy analizy sygnałów. Proste problemy algebry liniowej i obliczenia numeryczne. 6. Rachunek różniczkowy i całkowy w Matlabie 7. Programowanie obiektowe w Matlabie oraz Test-termin 1 8. Programowanie obiektowe w Matlabie oraz Test-termin 2 Zasady zaliczenia Wykład Wykład kończy się godzinnym testem. Należy uzyskać powyżej 50% Progi punktowe oceny końcowej: >50% - 3,0 >60% - 3,5 >70% - 4,0 >80% - 4,5 >90% - 5,0 Test ma tylko 1 termin poprawkowy. Do 10% punktów można dodatkowo uzyskać za 2 losowo sprawdzone obecności Literatura 1. B. Mrozek, Z. Mrozek. MATLAB i Simulink. Poradnik użytkownika. Wydanie III. Helion 2010. 2. J. Brzózka, L. Dorobczyński, Programowanie w Matlabie, Mikom, Warszawa 1998. 3. R. Pratap. MATLAB 7 dla naukowców i inżynierów. PWN 2010 4. MATLAB Documentation Center http://www.mathworks.com/help/matlab/ Wykład 1 45 min. Historia i własności języka Matlab Ogólne zasady programowania w Matlabie Operacje macierzowe, wektorowe 5. A. Zalewski, R. Cegieła, Obliczenia numeryczne i ich zastosowania, Nakom 1997. 1
CZYM JEST MATLAB? 1. Matlab to pakiet przeznaczony do wykonywania obliczeń numerycznych oraz graficznej prezentacji wyników. 2. Interpreter skryptowy (możliwość kompilacji) 3. Dostępny jest na różnych platformach sprzętowych oraz systemowych (np.. Windows, Macintosh). 4. Podstawową strukturą danych w Matlabie jest macierz. Jak powstawał Matlab Lata 70 Univ. New Mexico (USA) biblioteki numeryczne w Fortranie LINPACK, EISPACK,... 1980 Cleve Moler, MATrix LABoratory (za pomocą Fortranu), wspomaganie zajęć z algebry 1984 nowa edycja (na bazie C), Math Works Inc., Matlab 3.0, ulepszony interpreter, grafika 1992 Matlab 4.0, system pod Windows, animacje, GUI, macierze rzadkie 1997 Matlab 5.0, programowanie obiektowe, macierze wielowymiarowe, hipertekstowy HELP, nowe narzędzia ODE 2000 Matlab 6.0, interfejs oparty na Javie, współpraca z Javą, PDE 2013 Najnowsza wersja: R2012B Kiedy Matlab? Grafika 1. Interaktywny język wysokiego poziomu. Przejrzysty kod. 2. System do obliczeń numerycznych operuje na tablicach (macierzach) danych 3. Optymalizacja czasochłonnych operacji tablicowych 4. Język skryptowy interpretowany (możliwość kompilacji). Bogate (darmowe) biblioteki otwarty kod, dowolny system operacyjny). 5. Możliwość łączenia z funkcjami w C/C++, klasy Javy Własne programy łatwo zaopatrzyć w interaktywny interfejs graficzny Simulink (alternatywa do LabView) 2
Najważniejsze zastosowania Matlaba wybrane toolboxy Matlab w modelowaniu biomedycznym Potencjał czynnościowy serca BIOINFORMATICS SIMBIO STATISTICS SIGNAL PROCESSING IMAGE PROCESSING NEURAL NETWORK FILTER DESIGN OPTIMIZATION PARTIAL DIFFERENTIAL EQUATION Darmowe zamienniki MATLABa (licencja GPL) Scilab http://www.scilab.org/ FreeMat http://freemat.sourceforge.net GNU Octave http://www.gnu.org/software/octave/ R http://www.r-project.org/ podobny do Matlaba pakiet statystyczny Matlab cena: $2450 (lic. komercyjna) / ok. $90 (student) PRACA Z PAKIETEM MATLAB W trybie bezpośrednim typowy tryb roboczy, umożliwiający prowadzenie dialogu pomiędzy użytkownikiem a pakietem na zasadzie: pytanieodpowiedź. Użytkownik wpisuje polecenia bezpośrednio do okna poleceń W trybie pośrednim umożliwiającym szybkie i efektywne wykonanie obliczeń i prezentację wyników za pomocą uruchomienia programu napisanego w języku pakietu Matlab, czyli tzw. Skryptu (zwanego również m-plikiem, np. moj_skrypt.m). >> moj_skrypt <ENTER> (możliwe też wywołanie skryptu/funkcji poza Matlabem) Środowisko pracy okno poleceń POLECENIA Po wydaniu polecenia i naciśnięciu klawisza Enter Matlab natychmiast wyświetla jego wynik. Umieszczenie po poleceniu średnika spowoduje wykonanie obliczeń, ale bez zwracania wyniku. Polecenie powinno się mieścić w jednym wierszu (lub ). Kilka poleceń w jednym wierszu oddzielamy od siebie przecinkami lub średnikami. 3
POMOC SYSTEMOWA Help Uzyskanie informacji o funkcjach Matlaba: 1. >>help nazwa_funkcji 2. Help Desk-podręcznik opracowany w postaci stron HTML. LICZBY Stałopozycyjne-z opcjonalnym użyciem znaku + lub oraz kropki dziesiętnej; Zmiennopozycyjnej - z użyciem znaku e lub E poprzedzającego wykładnik potęgi 10, np. 1e2=100; Do zapisu części urojonej liczb zespolonych używa się stałej i lub j. Zmiana precyzji wyświetlania: format long/short/rat(ułamki) UWAGA: Domyślnie Matlab traktuje wszystkie liczby jako zespolone (ostrożnie z pierwiastkowaniem) ZMIENNE Nazwa zmiennej musi rozpoczynać się literą i może składać się z dowolnej liczby liter, cyfr i znaków podkreślenia. Pakiet Matlab nie wymaga deklarowania zmiennych ani określenia ich rozmiaru (można rezerwować pamięć w uzasadnionych wypadkach np. bardzo duże macierze). Aby sprawdzić wartość istniejącej już zmiennej, należy w wierszu poleceń wpisać jej nazwę. Np. >>A Matlab rozróżnia duże i małe litery. Standardowe polecenia pakietu pisane są zawsze małymi literami. DEFINIOWANIE MACIERZY (WEKTORA) Elementy w wierszu macierzy muszą być oddzielane spacją lub przecinkami; A=[1 3 4;3 4 5]; B=[1,2;7,8]; C=[3:7]; D=[2:0.1:15]; Średnik lub znak nowego wiersza kończy wiersz macierzy i powoduje przejście do następnego; Cała lista elementów musi być ujęta w nawiasy kwadratowe. ARYTMETYKA MACIERZOWA I TABLICOWA o A+B o A-B o A*B, B*A o C1=B/A, C2=A\B o A^2=A*A o A o A+B o A-B o A.*B=B.*A o B./A=A.\B o A.^2 o A 4
ODWOŁANIA DO FRAGMENTÓW MACIERZY x(j:k) elementy wektora wierszowego x o numerach od j do k A(i,:) wszystkie elementy w wierszu i macierzy A A(i,j:l)- wszystkie elementy w wierszu i macierzy A o numerach od j do l A(i:k, j:l)-wszystkie elementy w kolumnach od j do l wierszy od i do l A(x,j:l)-wszystkie elementy w kolumnach od j do l w wierszach macierzy A o numerach określonych przez elementy wektora x A(:,:) cała dwuwymiarowa macierz A A(:)-cała macierz A w postaci wektora kolumnowego. Przeszukiwanie macierzy >> A=[1 3 5; 4 6 7]; 1. find (A>3) A=[17,0,-9;30,-2,38] A(A>1) ans = 17 30 38 2. A>3 WYŚWIETLANIE MACIERZY I ICH ROZMIARÓW disp(a)-wyświetla zawartość macierzy A w oknie poleceń; size(a)- rozmiar dwuwymiarowej macierzy A (liczbę wierszy i kolumn) w postaci dwuelementowego wektora wierszowego; size(a,1)- liczba wierszy macierzy A; size(a,2)- liczba kolumn macierzy A; length(x)- długość wektora x lub dłuższy z wymiarów macierzy. [n m]=size(a)-przypisuje zmiennej n liczbę wierszy, a zmiennej m liczbę kolumn; 5
FUNKCJE MATLABA Wbudowane-część jądra pakietu, do których użytkownicy nie mają dostępu (np.sqrt); UWAGA: Matlab to język numeryczny! Implementowane w m-plikach - przechowywane w ogólnie dostępnych plikach np. peaks, takie m-pliki użytkownicy mogą tworzyć sami; Sinus? PODSTAWOWE FUNKCJE I STAŁE MATEMATYCZNE Funkcja sin(z), cos(z), tan(z), cot(z) asin(z), acos(z), atan(z), acot(z) sinh(z), cosh(z), tanh(z), coth(z) sqrt(z) opis Sinus, cosinus, tangens, cotangens; argument funkcji w radianach; Funkcje cyklometryczne; wynik w radianach; Funkcje hiperboliczne; argument w radianach; Pierwiastek z ; z<0 wynik zespolony; exp(z) log(z) log2(z) abs(z) angle(z) real(z), imag(z) conj(z) z e e z ln(z); z<0 wynik zespolony; log 2 z; z<0 j.w. wartość bezwzględna lub moduł liczby zespolonej; argument liczby zespolonej; część rzeczywista i urojona liczby z liczba zespolona sprzężona; complex(x,y) ceil(z) floor(z) fix(z) round(z) utworzenie liczby zespolonej; zaokrąglenie liczby w górę; zaokrąglenie liczby w dół; zaokrąglenie liczby dodatniej w dół, ujemnej w górę; zaokrąglenie do najbliższej liczby całkowitej; rem(x,y); mod(x,y) reszta z dzielenia x przez y; sign(x) funkcja signum; FUNKCJE OPERUJĄCE NA WEKTORACH max(x) największy element wektora x; min(x) najmniejszy element wektora x; sum(x) sumę elementów wektora x; prod(x) iloczyn elementów wektora x; mean(x) length(x) średnia arytmetyczna elementów wektora x; długość wektora 6
stałe pi eps STAŁE MATEMATYCZNE przybliżenie wartości opis względna dokładność zmiennoprzecinkowa; i lub j pierwiastek z liczby 1; Inf lub inf NaN lub nan π nieskończoność (ang. Infinity); jest rezultatem operacji, która przekracza zakres arytmetyki komputera, np.dzielenie przez 0; nie liczba; jest wynikiem matematycznie niezdefiniowanych operacji; ŚRODOWISKO MATLABA Okno poleceń. Funkcje obsługujące okno poleceń. lit clc home Powtórzenie ostatniego polecenia lub ostatniego polecenia zaczynającego się od lit wyczyszczenie okna poleceń i umieszczenie kursora w jego lewym górnym rogu; umieszczenie wiersza poleceń i kursora w lewym górnym rogu okna poleceń; Ctrl+C przerwanie obliczeń echo on/echo off more on/more off diary plik diary off/on loose/compact włącza/wyłącza wysyłanie na ekran treści wykonywanych poleceń; włącza/wyłącza stronicowanie tekstów wysyłanych na ekran; polecenia i teksty (bez grafiki) wysyłane na ekran będą zapisywane w pliku o podanej nazwie; przełącznik funkcji diary zmiana interlinii w wyświetlanym tekście 7