Pakiety matematyczne INP2708W,L dr inż. Marek Teuerle Katedra Matematyki Stosowanej Centrum im. Hugona Steinhausa Wydział Matematyki PWr Wrocław, 23 lutego 2016 r.
Informacje Marek Teuerle - bud. C-11, pok. 5.10 Marek.Teuerle@pwr.edu.pl prac.im.pwr.edu.pl/~teuerle listy zadań, slajdy, opis kursu, zasady zaliczenia. Konsultacje: wtorek, 14:15-16:15, czwartek, 11:00-13:00. (Proszę o e-mailowa informację o planowanych konsultacjach)
Pakiety Matematyczne (INP2708W,L) Szczegółowy opis kursu: strona WMat» www.wmat.pwr.edu.pl/2879289,231.dhtml Najważniejsze elementy: grupa kursów, wykład: 15 x.75h/sem. laboratorium: (7 x 1.5h +0.75h)/sem. (obecność na laboratorium obowiązkowa => dozwolona 1 nieobecność nieusprawiedliwione). WAŻNE: zwolnienie lekarskie (itp.) trzeba przedstawić na pierwszych zajęciach po nieobecności.
Pakiety Matematyczne (INP2708W,L) System punktacji: Laboratorium (50 pkt): F1: zapowiedziane komputerówki F2: zadania domowe Wykład (50 pkt): F3: projekt (ogłoszenie: 05 kwietnia) (35 pkt) F4: TEST na wykładzie (07 lub 13 czerwca) (15 pkt) Ocena końcowa -> max. 100 pkt i proporcjonalnie: każde 10 pkt mniej, obniża ocenę o 0,5 stopnia
Pakiety Matematyczne (INP2708W,L) Program kursu - zarys: 1. MATLAB: 1. Praca w zintegrowanym środowisku, typy danych, funkcje wbudowane. 2. Reprezentacja zmiennoprzecinkowa liczb rzeczywistych, błędy obliczeń. 3. Operacje na macierzach, przekształcanie macierzy, funkcje logiczne. 4. Pojęcie skryptu i m-funkcji tworzenie własnych funkcji. 5. Grafika 2D, 3D. 6. Rozwiązywanie równań nieliniowych. 7. Całkowanie numeryczne: przegląd metod.
Pakiety Matematyczne (INP2708W,L) 1. MATLAB (cd): 8. Interfejs graficzny (GUI): komunikacja z użytkownikiem, tworzenie i własności obiektów, projekt interfejsu graficznego. 9. M-funkcje o zmiennej liczbie argumentów, interpolacja wielomianowa. 2. MATHEMATICA (obliczenia symboliczne): 1. Definiowanie własnych funkcji. 2. Grafika 2D, 3D. 3. Różniczkowanie i całkowanie numeryczne i symboliczne 3. Test końcowy
Pakiety Matematyczne (INP2708W,L) Literatura: 1. Jerzy Brzózka, Lech Dorobczyński, Programowanie w MATLAB, Wydawnictwo Mikom, ISBN 83-7158-120-3 2. Rudra Pratap, MATLAB 7 dla naukowców i inżynierów, PWN, 2010, ISBN 978-83-01-16057-9 3. Andrzej Zalewski, Rafał Cegieła, MATLAB - obliczenia numeryczne i ich zastosowania wyd. NAKOM, 1998, ISBN 83-85060-85-5 4. MATLAB Documentation Center: www.mathworks.com/help/matlab 5. Radoslaw Grzymkowski, Adam Kapusta i Damian Słota, Mathematica 8, Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego, 2012, ISBN: 9788362652334
Pakiety Matematyczne (INP2708W,L) Literatura, dodatkowe: 1. Ewa Dudek-Dyduch i inni, Metody Numeryczne Wybrane Zagadnienia, Wydawnictwo AGH 2011, ISBN 978-83-7464-452-5 2. Z.Fortuna, B. Macukow, J. Wąsowski, Metody Numeryczne, WNT 2005, ISBN 83-204-3075-5 3. P. Krzyżanowski, Obliczenie inżynierskie i naukowe, PWN 2012, ISBN- 978-83-01-16701-1 Polecane materiały: 1. Strona Doc. Przemysława Kajetanowicza http://www.im.pwr.edu.pl/~kajetano/ 2. http://www.indiana.edu/~statmath/math/matlab/ Zachęcam do własnych poszukiwań!
MATLAB kilka faktów Oprogramowanie komercyjne 1980 - Cleve Moler, MATrix LABoratory zajęcia z Algebry (Fortran) 1984 MATLAB 1.0 (C) 1992 MATLAB 4.0 system pod Windows 2000 - MATLAB 6.0 interfejs oparty na Javie 2015 najnowsza wersja R2015b
Darmowe odpowiedniki MATLABa SciLab (www.scilab.org) GNU Octave (www.gnu.org/software/octave) FreeMat (freemat.sourcefoge.net) R pakiet statystyczny (www.r-project.org)
MATLAB pierwsze uruchomienie
MATLAB pierwsze uruchomienie Bieżący katalog Okno poleceń Przestrzeń robocza - zmienne Pliki w katalogu domowym Historia poleceń
MATLAB praca z pakietem Tryb bezpośredni: praca w oknie poleceń, polega na dialogu pomiędzy użytkownikiem a pakietem (pytanieodpowiedź) >> (2+3+4+5)/4 <enter> Tryb pośredni uruchamianie skryptów będących kolekcją komend >> moj_skrypt <enter>
MATLAB okno poleceń przydatne funkcje
MATLAB pomoc systemowa Szczegółowy opis komend MATLABa: >> help nazwa_funkcji >> doc nazwa_funkcji Help desk po naciśnięciu klawisza F1
Help
Typy danych najważniejsze double - macierz pełna. Liczby są reprezentowane w formacie zmiennoprzecinkowym z podwójną precyzją. Jest to format domyślny dla wartości liczbowych w MATLAB! 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] istnieją również uint16,,uint64 int8 8-bitowy typ całkowity znakowany, zakres [-128-127] również int16,,int64
Typy danych - liczby liczby stałoprzecinkowa - z opcjonalnym użyciem znaku + lub oraz kropki dziesiętnej; liczby zmiennoprzecinkowa - z użyciem znaku e lub E poprzedzającego wykładnik potęgi 10, np. 1e2=100; liczby zespolone:jw. przy czym do zapisu części urojonej liczb zespolonych używa się stałej i lub j.
Typy danych - liczby zmiana precyzji wyświetlania: >> format opcja Dostępne opcje: short 4 cyfry w rozw. dziesiętnym long - 15 cyfr w rozw. dziesiętnym short e notacja naukowa, 4 cyfry w rozw. dziesiętnym long e - notacja naukowa, 15 cyfry w rozw. dziesiętnym rat ułamki zwykłe hex system szesnastkowy
Zmienne MATLAB automatycznie rozpoznaje typy zmiennych jeśli chcemy użyć inne niż domyślny typ zmiennych wtedy deklarujemy typ, np. >> a=uint8(10) Ale uwaga a+246 nie zadziała!
Zmienne - przykłady wywołania double: >> moja_zmienna= 2.3333; char: >> moja_zmianne_char= to jest napis struct: >> moj_struct.pole_liczbowe=4.33+pi; >> moj_struct.pole_tekstowe= liczba pi plus liczba rzeczywista cell: >> moja_zmienna_cell={23.333}
Zmienne ogólne uwagi 1. MATLAB nie wymaga deklarowania zmiennych ani określenia ich rozmiaru. 2. Kiedy podstawiamy do zmiennej wartości MATLAB sam alokuje pamięć. 3. Przy zmianie typ lub rozmiaru macierzy MATLAB sam realokuje pamięć. 4. Nazwa zmiennej musi rozpoczynać się literą i może składać się z dowolnej liczby liter, cyfr i znaków podkreślenia. 5. Aby sprawdzić wartość istniejącej już zmiennej, należy w wierszu poleceń wpisać jej nazwę <enter>. >> moja_zmienna <enter> 6. MATLAB rozróżnia duże i małe litery. 7.Standardowe polecenia pakietu pisane są 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 >> C1 = []; %pusta macierz C1 = []
DEFINIOWANIE MACIERZY (WEKTORA) >> D = [2:0.1:2.5] D = 2.0000 2.1000 2.2000 2.3000 2.4000 2.5000 >> D = linspace(2,2.5,6) D = 2.0000 2.1000 2.2000 2.3000 2.4000 2.5000
DEFINIOWANIE MACIERZY (WEKTORA) Budowanie macierzy z już istniejących macierzy A = [1 2 3 4; 5 6 7 8]; B = [ 9:12]; C = [101, 102, 103] ; >> D = [[A;B] C ]; lub >> D= [[A;B] [101:103] ];
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 [m n]=size(a)- w macierzy wynikowej m to liczba wierszy macierzy A, n-to liczba kolumn macierzy A; length(x)- długość wektora x lub dłuższy z wymiarów macierzy.
Kilka uwag o zmiennoprzecinkowej reprezentacji liczb R Liczby rzeczywiste przedstawione przy użyciu reprezentacji zmiennoprzecinkowej: x=(znak)mn C, M - mantysa liczby: [1/N;1), N - podstawa systemu liczbowego, C cecha liczby
Kilka uwag o zmiennoprzecinkowej reprezentacji liczb R Przykład: 8 bitowa reprezentacja w systemie dwójkowym- (s)mmmm(s)cc, gdzie s: 0-dodatnie, 1-ujemne : x=((1)1110(0)10) 2 liczba ujemna mantysa zapisana jako ułamek M=(1*2^(-1)+1*2^(-2) +1*2^(-3) +0*2^(-4))=-7/8 cecha zapisana jako liczba całkowita (dodatnia) C=+(1*2^(1)+0*2^(0))=2 x=(-7/8*2^2) 10 = (-3.5) 10
Kilka uwag o zmiennoprzecinkowej reprezentacji liczb R Współczesne komputery używają zapisu liczb w bardziej skomplikowany sposób -> reguluje to norma IEEE 754 Liczba bitów przeznaczonych na cechę i mantysę jest ograniczona Zatem nie każdą liczbę można zapisać w danym systemie liczbowym => błędy reprezentacji. Pewne liczby rzeczywiste traktowane jak jedna liczba zmiennoprzecinkowa Epsilon maszynowy - najmniejsza liczba nieujemna, której dodanie do jedności daje wynik nierówny 1: min ε : 1+ ε ~=1