Pakiety
Matematyczne
Dr inż. Małgorzata
Kotulska
A5 – pok. 208, tel. 320 2897
E-mail: kotulska@pwr.wroc.pl
Konsultacje:
poniedziałek 14-15
30
Środa 11.30-13
M A T L A B
M A T H E M A T IC A
M A P L E
M A T H C A D
IN N E ...
P a k ie ty M a te m a tyc z n e
Programowanie
symboliczne
Programowa
nie
numeryczne
SCILAB
inne
darmowe
Maple
http://www.mathsoft.com/soft
ware/
Mathematica
http://www.wolfram.com
MATLAB (v. 7.0)
http://www.mathworks.co
m
Literatura
1. B. Mrozek, Z. Mrozek, „Matlab 5.x, Simulink
2.x – poradnik użytkownika”, Wyd. PLJ
Warszawa.
2. J. Brzózka, L. Dorobczyński, „Programowanie
w Matlabie”, Mikom, Warszawa 1998.
3. A. Zalewski, R. Cegieła, „Obliczenia
numeryczne i ich zastosowania”, Nakom 1997.
4. D. Hanselman, B. Littliefield, „Mastering
Matlab 6, A
Comprehensive
Tutorial and
Reference, Prentice Hall, 2001.
5. D. J. Higham, N. J. Higham, „Matlab Guide,
SIAM, Philadelphia.
Jak powstawał Matlab
• Lata 70
– Univ. New Mexico (USA),
Cleve Moler,
MAT
rix
LAB
oratory (za pomocą
Fortranu), wspomaganie zajęć z algebry
• 1984 –
nowa edycja (na bazie C)
• 1987
– 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, współpraca z Javą, PDE
CZYM JEST MATLAB?
CZYM JEST MATLAB?
Matlab to pakiet przeznaczony do
wykonywania obliczeń numerycznych
oraz graficznej prezentacji wyników.
Interpreter skryptowy.
Dostępny jest na różnych platformach
sprzętowych oraz systemowych (np..
Windows, Macintosh).
Podstawową strukturą danych w
Matlabie jest macierz.
Kiedy Matlab ?
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 poprzez jęz. C).
Bogate (darmowe) biblioteki –
otwarty kod, dowolny system
operacyjny).
5. Możliwość łączenia z funkcjami
w C/C++, klasy Javy
Najważniejsze
zastosowania Matlaba –
„toolboxy”
• BIOINFORMATICS
• SIMBIO
• STATISTICS
• SIGNAL PROCESSING
• IMAGE PROCESSING
• NEURAL NETWORK
• FILTER DESIGN
• OPTIMIZATION
• PARTIAL DIFFERENTIAL EQUATION
Najważniejsze
zastosowania Matlaba –
„toolboxy”
• CHEMOMETRICS
• COMMUNICATIONS
• CONTROL SYSTEM
• FINANCIAL
• FREQUENCY DOMAIN SYSTEM
IDENTIFICATION
• FUZZY LOGIC
Najważniejsze
zastosowania Matlaba –
„toolboxy”
• HIGHER-ORDER SPECTRAL ANALYSIS
• IMAGE PROCESSING
• LINEAR MATRIX INEQUALITY CONTROL
• MAPPING
• MODEL PREDICTIVE CONTROL
-ANALYSIS and SYNTHESIS
• NAG FOUNDATION
Najważniejsze
zastosowania Matlaba –
„toolboxy”
• SPLINE
• SYMBOLIC MATH, EXTENDED SYMBOLIC
MATH
• SYSTEM IDENTIFICATION
• WAVELET
• QFT CONTROL DESIGN
• REAL-TIME WORKSHOP
• ROBUST CONTROL
Środowisko pracy – okno
poleceń
Simulink
PRACA Z PAKIETEM MATLAB
PRACA Z PAKIETEM MATLAB
•
W
trybie bezpośrednim
– typowy tryb
roboczy, umożliwiający prowadzenie dialogu
pomiędzy użytkownikiem a pakietem na
zasadzie: pytanie-odpowiedź. 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>
POLECENIA
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.
Kilka poleceń w jednym wierszu oddzielamy od
siebie przecinkami lub średnikami.
Matlab (interpreter) jako
kalkulator
Charakterystyka M-plików
Skrypty
• Nie posiadają
argumentów
wejściowych, ani
wyjściowych
• Operują na danych w
przestrzeni roboczej
• Wygodne, kiedy często
należy wykonać
sekwencję tych samych
poleceń
Funkcje
• Mogą posiadać
argumenty wejściowe
i wyjściowe
• Wewnętrzne zmienne
są lokalne dla funkcji
• Wygodne do
rozszerzenia
MATLABA o własne
aplikacje
M-pliki
Edytor Matlaba
Matlab - język
numeryczny
POMOC SYSTEMOWA
POMOC SYSTEMOWA
Uzyskanie informacji o funkcjach
Matlaba:
1. >>help
nazwa_funkcji
2. Help Desk-podręcznik opracowany
w postaci stron HTML.
Help
LICZBY
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.
UWAGA
: Domyślnie Matlab traktuje wszystkie liczby
jako zespolone (ostrożnie z pierwiastkowaniem)
ZMIENNE
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,
w uzasadnionych wypadkach - b. 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.
Deklaracja zmiennych
DEFINIOWANIE MACIERZY
DEFINIOWANIE MACIERZY
(WEKTORA)
(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.
ODWOŁANIA DO FRAGMENTÓW
ODWOŁANIA DO FRAGMENTÓW
MACIERZY
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)
2. A>3
A=[17,0,-9;30,-2,38]
A(A>1)
ans =
17
30
38
WYŚWIETLANIE MACIERZY I ICH
WYŚWIETLANIE MACIERZY I ICH
ROZMIARÓW
ROZMIARÓW
disp(A)-wyświetla zawartość macierzy A w
oknie poleceń;
size(A)-wyświetla 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;
n=size(A,1)-przypisuje zmiennej n
liczbę wierszy macierzy A;
m=size(A,2)-przypisuje zmiennej m
liczbę kolumn macierzy A;
length(x)-zwraca długość wektora x lub
dłuższy z wymiarów macierzy.
ARYTMETYKA MACIERZOWA I
ARYTMETYKA MACIERZOWA I
TABLICOWA
TABLICOWA
A+B
A-B
A*B, B*A
C1=B/A, C2=A\B
A^2=A*A
A’
A+B
A-B
A.*B=B.*A
B./A=A.\B
A.^2
A’
Wektory i macierze - podstawowy typ zmiennych
Matlaba
FUNKCJE GENERUJĄCE I
FUNKCJE GENERUJĄCE I
PRZEKSZTAŁCAJĄCE MACIERZE
PRZEKSZTAŁCAJĄCE MACIERZE
eye(n)-tworzy macierz jednostkową nxn;
ones(n)-tworzy macierz nxn o
elementach równych 1;
zeros(n)-macierz zerowa nxn;
rand(n)-macierz nxn wypełniona
liczbami pseudolosowymi z przedziału
<0,1> o rozkładzie jednostajnym;
randn(n)-macierz nxn wypełniona
liczbami pseudolosowymi o rozkładzie
normalnym ze średnią 0 i wariancją 1.
A=diag(x)-macierz przekątniowa A ze
składnikami wektora x na głównej
przekątnej;
x=diag(A)-utworzenie wektora x z
elementów znajdujących się na głównej
przekątnej macierzy A;
inv(A)-utworzenie macierzy odwrotnej do
A;
repmat(A,n,m)-utworzenie macierzy przez
powielenie podmacierzy A m razy w
poziomie i n razy w pionie;
reshape(A,n,m)-utworzenie macierzy o n
wierszach i m kolumnach z elementów
branych kolejno kolumnami z macierzy A;
rot90(A)-obrócenie macierzy A o 90 stopni
w kierunku przeciwnym do wskazówek
zegara;
tril(A)-utworzenie z macierzy A macierzy
trójkątnej dolnej;
triu(A)- utworzenie z macierzy A macierzy
trójkątnej górnej.
size(A)
ans =
2 2
length(A)
ans =
2
Zmiana kształtu macierzy
C=reshape(A,2,3)
C =
1 2 0
3 4 6
Funkcje logiczne służąc do badania
własności całych macierzy
exist('nazwa')
isempty(X)
issparce(X)
isstr(X)
isglobal(X)
Funkcje logiczne badające własności
elementów macierzy
any(X) –
czy którykolwiek element niezerowy?
all(X)
– czy wszystkie niezerowe
isinf(X)
finite(X)
I=find(X)
MACIERZE WIELOWYMIAROWE
MACIERZE WIELOWYMIAROWE
Matlab dopuszcza definiowanie macierzy
wielowymiarowych. Odwoływanie się do
elementów takich macierzy wymaga liczby
indeksów większej niż 2.
Pierwszy indeks-wiersz macierzy (wymiar
1);
Drugi indeks-kolumna macierzy (wymiar 2);
Trzeci indeks-strona macierzy (wymiar 3)
Czwarty indeks-książka macierzy (wym. 4);
Piąty indeks-tom macierzy (wym.5);
itd.;
METODY TWORZENIA TABLIC
METODY TWORZENIA TABLIC
WIELOWYMIAROWYCH
WIELOWYMIAROWYCH
1) przez indeksowanie;
2) przez zastosowanie funkcji (ones, zeros,
randn, repmat-tworzy tablice
wielowymiarową wypełnioną jednakowymi
wartościami);
3) przez zastosowanie funkcji cat
(konkatenacja, scalanie tablic);
4) cat(dim,A,B) scala dwie macierze A i B
zgodnie z podanym wymiarem dim;
5) cat(2,A,B) oznacza to samo co [A, B];
6) cat(1,A,B) oznacza to samo co [A; B];
7) B=cat(dim,A,B,C,...) scala macierze A, B,C,...
zgodnie z podanym wymiarem dim;
PRZYKŁAD
PRZYKŁAD
• Na rysunku widoczna jest
macierz trójwymiarowa o
rozmiarze 2x3x2 (2
wiersze i 3 kolumny na
każdej stronie, 2 strony);
• >>D(:,:,1)=[1 3 0; 5 7 2]
% str.1;
• >>D(:,:,2)=[4 7 8; 1 0 5]
• % str.2;
str
on
y
wiersze
k
o
lu
m
n
y
TYPY DANYCH
TYPY DANYCH
Matlab dopuszcza użycie sześciu
podstawowych typów danych:
1.
Double-liczby podwójnej precyzji; podstawowy
typ danych dla zmiennych MATLAB-a (wszystkie
obliczenia w Matlabie są prowadzone w trybie
podwójnej precyzji dla zmiennych numerycznych
i łańcuchowych);
DOMYŚLNY
2. Char-znaki i łańcuchy znaków; łańcuch znakowy
definiuje się za pomocą apostrofów i
przechowywany jest w pamięci w postaci
wektora liczb całkowitych reprezentujących kody
ASCII poszczególnych znaków;
3. Sparse - dotyczy dwuwymiarowych macierzy rzadkich
podwójnej precyzji; (macierz rzadka to taka macierz,
w której zapamiętywane są tylko elementy niezerowe;
redukuje to zapotrzebowanie pamięci);
4. Cell-typ komórkowy; elementy tablic komórkowych
mogą zawierać inne tablice;
5. Struct-typ strukturalny; tablice strukturalne odwołują
się do nazw pól, które mogą zawierać inne tablice;
6. Uint8-typ przeznaczony do efektywnego
wykorzystania pamięci, integer ze znakiem lub bez
(uint); możliwe są takie operacje, jak zmiana
wymiarów lub kształtu tablicy, ale niedozwolone są
żadne operacje matematyczne;
Funkcje zamiany
: i = int8(x) i = int16(x) i = int32(x)
i = int64(x) uint8(x) ......
Oprócz wymienionych typów istnieje typ
UserObject
, który jest
typem definiowanym przez użytkownika.
FUNKCJE MATLABA
• Wbudowane-część jądra pakietu,
do których użytkownicy nie mają
dostępu (np.sqrt);
• Implementowane w m-plikach
-przechowywane w ogólnie
dostępnych plikach np. peaks,
takie m-pliki użytkownicy mogą
tworzyć sami;
LISTA ŚCIEŻEK
• Lista ścieżek to lista katalogów, do
których Matlab ma dostęp. Polecenie
„path”
• Jest zdefiniowana w pliku pathdef.m,
znajdującym się w podkatalogu
toolbox\local katalogu z Matlabem.
• Można ją wyświetlać lub zmieniać
poleceniem path.
PODSTAWOWE FUNKCJE I STAŁE
PODSTAWOWE FUNKCJE I STAŁE
MATEMATYCZNE
MATEMATYCZNE
Funkcja
opis
sin(z), cos(z), tan(z), cot(z)
Sinus, cosinus,
tangens, cotangens;
argument funkcji w
radianach;
asin(z), acos(z), atan(z),
acot(z)
Funkcje
cyklometryczne; wynik
w radianach;
sinh(z), cosh(z), tanh(z),
coth(z)
Funkcje hiperboliczne;
argument w radianach;
sqrt(z)
Pierwiastek z ; z<0 –
wynik zespolony;
exp(z)
e
z
log(z)
ln(z); z<0 – wynik
zespolony;
log2(z)
log
2
z; z<0 – j.w.
abs(z)
wartość bezwzględna
lub moduł liczby
zespolonej;
angle(z)
argument liczby
zespolonej;
real(z), imag(z)
część rzeczywista i
urojona liczby z
conj(z)
liczba zespolona
sprzężona;
z
e
complex(x,y)
utworzenie liczby
zespolonej;
ceil(z)
zaokrąglenie liczby w
górę;
floor(z)
zaokrąglenie liczby w
dół;
fix(z)
zaokrąglenie liczby
dodatniej w dół, ujemnej
w górę;
round(z)
zaokrąglenie do
najbliższej liczby
całkowitej;
rem(x,y); mod(x,y)
reszta z dzielenia x
przez y;
sign(x)
funkcja signum;
FUNKCE OPERUJĄCE NA WEKTORACH
FUNKCE OPERUJĄCE NA WEKTORACH
(na MACIERZACH podane wcześniej)
(na MACIERZACH podane wcześniej)
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)
średnia arytmetyczna
elementów wektora x;
length(x)
długość wektora
STAŁE MATEMATYCZNE
STAŁE MATEMATYCZNE
stałe
opis
pi
przybliżenie wartości
eps
względna dokładność
zmiennoprzecinkowa;
i lub j
pierwiastek z liczby –1;
Inf lub
inf
nieskończoność (ang. Infinity); jest
rezultatem operacji, która przekracza
zakres arytmetyki komputera,
np.dzielenie przez 0;
NaN lub
nan
nie liczba; jest wynikiem matematycznie
niezdefiniowanych operacji;
BIOINFORMATYKA
i
„COMPUTATIONAL
BIOLOGY”
1. Sekwencjonowanie i ekspresja DNA
(genomika)
2. Ekspresja i struktura białek
(proteomika)
3. Modelowanie szlaków metabolicznych w
komórce (metabolika)
4. Modelowanie metodami
dynamiki
molekularnej (MD)
Monte Carlo
lub
innymi
– cząstek lub układów
biologicznych
Przykładowe kierunki
Genomika porównawcza - gałąź
„computational biology”
która analizuje genom.
Genomika porównawcza
- gałąź
„computational biology”
która
analizuje
genom.
„Computational biology” - gałąź
biologii która stosuje podejście
informatyczne do
rozwiązywania problemów
biologicznych
„Computational biology”
- gałąź
biologii
która stosuje podejście
informatyczne do
rozwiązywania
problemów
biologicznych
Bioinformatyka - gałąź informatyki
rozwiązująca problemy
biologiczne
Bioinformatyka
-
gałąź
informatyki
rozwiązująca problemy
biologiczne
Genomika porównawcza – stosuje
analizę porównawczą do
ustalenia sekwencji genomu
Genomika porównawcza
– stosuje
analizę porównawczą do
ustalenia sekwencji genomu
„Computational biology” –
umożliwia lepsze zrozumienie
obiektu biologicznego (enzym,
szlak metaboliczny, organellum,
komórka)
„Computational biology”
–
umożliwia lepsze
zrozumienie
obiektu biologicznego (enzym,
szlak metaboliczny, organellum,
komórka)
Bioinformatyka - dostarcza
nowych narzędzi: algorytmy,
struktury baz danych, narzędzia
wizualizacji, itd.
Bioinformatyka
- dostarcza
nowych narzędzi:
algorytmy,
struktury baz danych, narzędzia
wizualizacji, itd.
Ogromny wzrost ilości
danych biologicznych
Współczesna wiedza o
procesach wewnątrz-
komórkowych jest
STATYCZNA
Przykład: znany genom SARS
nic nie wiadomo o cyklu życia
wirusa.
Konieczne zastosowanie
modelowania / technik
komputerowych
STRUKTURA FUNKCJA
Atomy molekuły całe
komórki
Wynik
modelowania/stosowania
technik informatycznych
• Zrozumienie złożonych danych
pochodzących z eksperymentów
biomedycznych
• Identyfikacja głównych cech regulujących
zachowaniem całego systemu
• Badanie procesów dynamicznych (szlaki
metaboliczne, energetyka serca, aktywacja
odpowiedzi immunologicznej, itd.)
• Farmakoterapia celowa
Potencjał czynnościowy
serca
Matlab w modelowaniu
BIO