background image

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

background image

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

background image

Maple

http://www.mathsoft.com/soft

ware/

background image

Mathematica

 

http://www.wolfram.com

background image

MATLAB (v. 7.0) 

http://www.mathworks.co

m

background image

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.

background image
background image

Scilab, Octave, i in. – 

darmowe wersje 

MATLAB’a

www.dspguru.com/sw/opendsp/mathclo
2.htm

background image

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

background image

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.

background image

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

background image

Najważniejsze 

zastosowania Matlaba – 

„toolboxy”

• BIOINFORMATICS
• SIMBIO
• STATISTICS
• SIGNAL PROCESSING
• IMAGE PROCESSING
• NEURAL NETWORK
• FILTER DESIGN
• OPTIMIZATION
• PARTIAL DIFFERENTIAL EQUATION

background image

Najważniejsze 

zastosowania Matlaba – 

„toolboxy”

• CHEMOMETRICS
• COMMUNICATIONS
• CONTROL SYSTEM

• FINANCIAL

• FREQUENCY DOMAIN SYSTEM 

IDENTIFICATION

• FUZZY LOGIC

background image

Najważniejsze 

zastosowania Matlaba – 

„toolboxy” 

• HIGHER-ORDER SPECTRAL ANALYSIS

• IMAGE PROCESSING

• LINEAR MATRIX INEQUALITY CONTROL
• MAPPING
• MODEL PREDICTIVE CONTROL
 -ANALYSIS and SYNTHESIS
• NAG FOUNDATION

background image

Najważniejsze 

zastosowania Matlaba – 

„toolboxy”

• SPLINE
• SYMBOLIC MATH, EXTENDED SYMBOLIC 

MATH

• SYSTEM IDENTIFICATION

• WAVELET

• QFT CONTROL DESIGN
• REAL-TIME WORKSHOP
• ROBUST CONTROL

background image

Środowisko pracy – okno 

poleceń

background image

Simulink 

background image

PRACA Z PAKIETEM MATLAB

PRACA Z PAKIETEM MATLAB

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ń 

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>

background image

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.

background image

Matlab (interpreter) jako 

kalkulator

background image

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 

background image

M-pliki

background image

Edytor Matlaba

background image

Matlab - język 

numeryczny 

background image

POMOC SYSTEMOWA

POMOC SYSTEMOWA

Uzyskanie informacji o funkcjach 

Matlaba:

1. >>help 

nazwa_funkcji

2. Help Desk-podręcznik opracowany 

w postaci stron HTML.

background image

Help

background image

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)

background image

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.

background image

Deklaracja zmiennych

background image

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.

background image
background image

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

background image

  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.

background image

Przeszukiwanie macierzy

 

>> A=[1 3 5; 4 6 7];

1. find (A>3)

2. A>3

background image
background image

 

A=[17,0,-9;30,-2,38] 

 

 

A(A>1) 

 

 

ans =

    17

    30

    38 

 

background image

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;

background image

 

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.

background image

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’

background image

Wektory i macierze - podstawowy typ zmiennych 

Matlaba

background image

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.

background image

 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;

background image

 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.

background image

 

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

 

 

background image

Funkcje logiczne służąc do badania 

własności całych macierzy

exist('nazwa')

isempty(X)

issparce(X)

isstr(X)

isglobal(X)

background image

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)

background image

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.;

background image

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;

background image

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

background image

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;

background image

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.

background image

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;

background image

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.

background image

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;

background image

 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

background image

 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;

background image

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

background image

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;

background image

BIOINFORMATYKA

i

„COMPUTATIONAL 

BIOLOGY”

background image

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

background image

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

background image

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.

background image

Ogromny wzrost ilości 

danych biologicznych

background image

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

background image
background image

STRUKTURA  FUNKCJA

Atomy molekuły całe 

komórki

background image

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

background image

Potencjał czynnościowy 

serca

Matlab w modelowaniu 

BIO


Document Outline