Pakiety matematyczne Matematyka Stosowana dr inż. Krzysztof Burnecki 20.02.2013
Podstawowe informacje Krzysztof Burnecki C-11, pok. 5.14 Krzysztof.Burnecki@pwr.wroc.pl Konsultacje: poniedziałek 11-13, środa 9-11 (proszę o wcześniejszego emaila) Materiały do wykładu na mojej stronie: http://www.im.pwr.wroc.pl/~burnecki Slajdy powstały na podstawie prezentacji Informatyka otrzymanej od dr hab. Małgorzaty Kotulskiej
Plan wykładu 1. Matlab: Wprowadzenie do środowiska. Podstawowe typy danych. Ogólne zasady programowania. Wybrane funkcje własne. 2. Matlab: Instrukcje. Skrypty i funkcje. Operacje na plikach. 3. Matlab: Grafika. Graficzny interfejs użytkownika (GUI). Programowanie obiektowe. 4. MATHEMATICA: Obliczenia. Wykresy. Całkowanie, rózniczkowanie oraz równania liniowe. 5. Test zaliczeniowy
Literatura 1. J. Brzózka, L. Dorobczyński. MATLAB środowisko obliczeń naukowo-technicznych. PWN 2008. 2. B. Mrozek, Z. Mrozek. MATLAB i Simulink. Poradnik użytkownika. Wydanie III. Helion 2010. 3. R. Pratap. MATLAB 7 dla naukowców i inżynierów. PWN 2010. 4. MATLAB Documentation Center http://www.mathworks.com/help/matlab/ 5. R. Grzymkowski, H. Gliński, A. Kapusta, D. Słota. Mathematica 8. Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego 2012.
Wykład 1 Historia i własności języka Matlab Ogólne zasady programowania w Matlabie Operacje macierzowe, wektorowe
MATLAB http://www.mathworks.com
CZYM JEST MATLAB? Matlab to pakiet przeznaczony do wykonywania obliczeń numerycznych oraz graficznej prezentacji wyników. Dostępny jest na różnych platformach sprzętowych oraz systemowych (np. Windows, Macintosh, Linux). Podstawową strukturą danych w Matlabie jest macierz.
Jak powstawał Matlab 1980 - Cleve Moler, MATrix LABoratory (za pomocą Fortranu), wspomaganie zajęć z algebry 1984 Matlab 1.0, edycja na bazie C, Math Works Inc., 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 (Version 7.14). Nowy interfejs
Zalety Matlaba 1. Interaktywny język wysokiego poziomu. Przejrzysty kod. 2. System do obliczeń numerycznych operuje na tablicach (macierzach) danych. 3. Duża liczba dodatkowych toolboksów (np. statystyczny, finansowy, symboliczny, do przetwarzanie obrazów oraz sygnałów) 4. Język skryptowy. Bogate (darmowe) biblioteki otwarty kod, dowolny system operacyjny. 5. Możliwość łączenia z funkcjami w C/C++, klasy Javy.
Zalety. Własne programy można zaopatrzyć w interaktywny interfejs graficzny
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.
Okno poleceń. Funkcje obsługujące okno poleceń Lit clc powtórzenie ostatniego polecenia lub ostatniego polecenia zaczynającego się od lit wyczyszczenie okna poleceń i umieszczenie kursora w jego lewym górnym rogu; exit, quit zamyka Matlaba; Ctrl+C przerwanie obliczeń
POMOC SYSTEMOWA Uzyskanie informacji o funkcjach Matlaba: 1. >> help nazwa_funkcji 2. Help Desk podręcznik opracowany w postaci stron HTML.
Help
LICZBY Stałoprzecinkowa - z opcjonalnym użyciem znaku + lub oraz kropki dziesiętnej; Zmiennoprzecinkowa - 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)
Typy danych Wszelkie wprowadzane i deklarowane dane (liczby, tekst) Matlab traktuje jako macierz - pojedyncza liczba jest traktowana jako macierz o wymiarze 1x1.
Typy danych double - macierz pełna. Liczby są reprezentowane w formacie zmiennoprzecinkowym z podwójną precyzją. char - typ tekstowy jakim jest dowolny napis. sparse - macierz rzadka. Elementy zerowe macierzy nie są zapamiętywane w pamięci komputera.
Typy danych struct - struktura. Struktura jest typem danych zawierającym w swoich polach dane różnych typów. cell - macierz komórkowa (blokowa) - pojedynczymi elementami takiej macierzy mogą być nie tylko liczby ale i dowolne dane z powyższych typów. uint8-8-bitowy typ całkowity (zakres 0-255) przeznaczony do zapisywania w pamięci obrazów graficznych. Na tym typie danych nie można wykonywać żadnych operacji arytmetycznych.
Zmienne Charakterystyczne dla języka programowania Matlaba jest automatyczne rozpoznawanie typów zmiennych. Nie występuje deklaracja typu (przykładowo w języku C przed użyciem zmiennej abc konieczna jest linia - "double abc;"). Matlab rozpoznaje typ zmiennej przy jej pierwszym użyciu, należy tylko odpowiednio ją wywołać.
Pakiet Matlab nie wymaga deklarowania zmiennych ani określenia ich rozmiaru. Kiedy tworzymy zmienną Matlab alokuje pamięć. Kiedy zmieniamy typ czy np. zwiększamy rozmiar macierzy Matlab realokuje pamięć. Zmienne Typ Wywołanie double char sparse struct cell a=1 (a=[1]) a='napis' a=sparse(1) a.składnik=1 a={1}
Zmienne Nazwa zmiennej musi rozpoczynać się literą i może składać się z dowolnej liczby liter, cyfr i znaków podkreślenia. 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; Ś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. >> A = [1 3 4;3 4 5]; B = [1,2;7,8];
DEFINIOWANIE MACIERZY (WEKTORA) >> A = [1 3 4;3 4 5] A = 1 3 4 3 4 5
DEFINIOWANIE MACIERZY (WEKTORA) >> B = [1,2;7,8]; B = 1 2 7 8
DEFINIOWANIE MACIERZY (WEKTORA) >> C = [3:7]; C = 3 4 5 6 7
DEFINIOWANIE MACIERZY (WEKTORA) >> D = [2:0.1:2.5]; D = 2.0000 2.1000 2.2000 2.3000 2.4000 2.5000
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
ODWOŁANIA DO FRAGMENTÓW MACIERZY 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]; >> A>3 ans = 0 0 1 1 1 1
Przeszukiwanie macierzy >> A = [17,0,-9;30,-2,38] ; >> find (A>1) ans = 1 2 6
Przeszukiwanie macierzy >> A=[17,0,-9;30,-2,38] ; >> A(find(A>1)) % równoważnie >> A(A>1) ans = 17 30 38
WYŚWIETLANIE MACIERZY I ICH ROZMIARÓW size(a)- rozmiar dwuwymiarowej macierzy A (liczbę wierszy i kolumn) w postaci dwuelementowego wektora wierszowego; [n m]=size(a)-przypisuje zmiennej n liczbę wierszy, a zmiennej m liczbę kolumn;
WYŚWIETLANIE MACIERZY I ICH ROZMIARÓW 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.