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.