Pakiety Matematyczne
Transkrypt
Pakiety Matematyczne
Pakiety matematyczne Matematyka Stosowana dr inż. Krzysztof Burnecki 20.02.2013 Podstawowe informacje Krzysztof Burnecki C-11, pok. 5.14 [email protected] 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ć. Zmienne Wywołanie Typ double a=1 (a=[1]) char a='napis' sparse a=sparse(1) struct a.składnik=1 cell a={1} 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 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 3 4 4 5 DEFINIOWANIE MACIERZY (WEKTORA) >> B = [1,2;7,8]; B= 1 7 2 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 1 0 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.