You are on page 1of 12

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

MATLAB. Leksykon
kieszonkowy

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Autorzy: Bogumia Mrozek, Zbigniew Mrozek


ISBN: 83-7361-969-0
Format: B6, stron: 176

Matlab to uniwersalne rodowisko do oblicze matematycznych. Wykorzystywany


jest na uczelniach, w instytutach badawczych, laboratoriach i wszdzie tam, gdzie
niezbdne jest narzdzie umoliwiajce przeprowadzenie skomplikowanych dziaa
matematycznych i przedstawienie ich wynikw w formie graficznej. Dziki ponad 500
funkcjom Matlaba mona zastosowa midzy innymi do oblicze numerycznych,
wyznaczania transformat Fouriera, przeprowadzania operacji na macierzach,
wielomianach i rwnaniach rniczkowych. Wyniki oblicze mona zaprezentowa
w postaci wykresw dwu- i trjwymiarowych. Jzyk Matlaba pozwala na tworzenie
specjalizowanych aplikacji z interfejsami graficznymi. Mechanizm pakietw
narzdziowych noszcych nazw Toolbox umoliwia rozbudow moliwoci
rodowiska o dodatkowe funkcje.
Matlab. Leksykon kieszonkowy to podrczne omwienie najwaniejszych funkcji
jzyka Matlab i elementw rodowiska. Opisuje skadni polece, przykady ich
zastosowania oraz sposoby realizacji oblicze za ich pomoc. Przedstawia metody
tworzenia i uruchamiania aplikacji oraz M-plikw i moliwoci oferowane przez
mechanizm rozszerze. W ksice omwiono rwnie pakiety Toolbox dla Matlaba
i Simulinka.
Wprowadzanie polece
Praca z plikami
Tworzenie wykresw i elementw graficznych
Funkcje i operatory matematyczne
Korzystanie z M-plikw
Operacje na macierzach
Przeprowadzanie oblicze numerycznych
Rozbudowywanie moliwoci Matlaba
Korzystanie z pakietu Simulink

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Spis treci

Wstp ....................................................................................................... 5
Rozdzia 1. Pierwsze kroki w MATLAB-ie ................................................ 7
Rozdzia 2. Grafika w MATLAB-ie .......................................................... 25
Wykresy dwu- i trjwymiarowe
Wykorzystanie gotowych rysunkw

25
36

Rozdzia 3. Matematyka i wyraenia logiczne ......................................40


Funkcje i operatory
Relacje i wyraenia logiczne

40
45

Rozdzia 4. Programowanie ...................................................................48


M-pliki skryptowe i funkcyjne

48

Rozdzia 5. Macierze, tablice i acuchy ................................................ 67


Macierze i tablice
Macierze rzadkie
acuchy i tablice znakowe
Tablice wielowymiarowe
Tablice komrkowe

67
71
75
77
79

Rozdzia 6. Struktury, klasy i obiekty ..................................................... 81


Struktury
Programowanie obiektowo zorientowane
Klasy i obiekty

81
82
82

Rozdzia 7. Grafika obiektowa ............................................................... 87


Hierarchia obiektw grafiki MATLAB-a
Interfejs graficzny uytkownika (GUI)
Parametry obiektw Handle Graphics

88
89
93

Rozdzia 8. Metody numeryczne ........................................................... 101


Numeryczna algebra liniowa
Rwnania rniczkowe zwyczajne i czstkowe
Analiza funkcji

101
106
115

Rozdzia 9. Rozszerzenia MATLAB-a ................................................... 125


Rozdzia 10. Simulink pakiet do symulacji ....................................... 129
Biblioteki blokw
Przygotowanie modelu i symulacja

130
141

Rozdzia 11. rodowisko pakietu MATLAB ........................................... 152


Elementy rozszerzajce rodowisko MATLAB-a
MATLAB w Internecie

153
167

Spis literatury ........................................................................................ 169


Skorowidz ............................................................................................... 171

Spis treci

Rozdzia 5. Macierze, tablice i acuchy


Tworzenie macierzy i wektorw z uyciem funkcji i operatora (:)
oraz sposoby usuwania i przemieszczania kolumn oraz wierszy
przedstawiono w rozdziale 1. Pierwsze kroki w MATLAB-ie.
Funkcje zdefiniowane dla macierzy penych i tablic mog by
stosowane dla macierzy rzadkich jeli nie prowadzi to do faszywych wynikw. Przykadowo, przy obliczaniu funkcji cosinus
nie jest dopuszczalne pominicie bliskich zeru elementw macierzy, gdy cos(0) = 1, a nie zero.
Dodatkowe informacje mona uzyska, wykonujc polecenia:
help elmat, help arith, help slash, help ctranspose, help
kron i inne.

Macierze i tablice
Operacje macierzowe i tablicowe
W MATLAB-ie wykonuje si dwa rodzaje operacji na wektorach
i macierzach. Operacje macierzowe (ang. matrix operation) s okrelone reguami algebry liniowej. Operacje tablicowe (ang. array
operation) to inne operacje wykonywane na elementach macierzy
(tabela 5.1).
Iloczyn XY to operacja mnoenia zgodna z zasadami rachunku
macierzowego. Mnoenie macierzowe mona wykona, gdy
liczba kolumn macierzy X jest rwna liczbie wierszy macierzy Y
lub gdy jeden z czynnikw jest wartoci skalarn.
Poprzedzenie operatora mnoenia, dzielenia lub potgowania
kropk (notacja kropkowa) powoduje zmian operacji macierzowej na tablicow, jak w prawej kolumnie tabeli 5.1. Taki sposb

67

Tabela 5.1. Operacje macierzowe i tablicowe


Symbol operacji
macierzowej

Nazwa operacji

Symbol operacji
tablicowej

dodawanie

odejmowanie

mnoenie

.*

potgowanie

. ^

dzielenie prawostronne

./

dzielenie lewostronne

.n

'

sprzenie macierzy

'

'

transpozycja macierzy

'

kron

iloczyn tensorowy
Kroneckera

zapisu umoliwia niejawne indeksowanie elementw wektora


lub macierzy i wykonanie operacji dla elementw o tych samych
indeksach jak opisano wyej w przypadku mnoenia tablicowego.
Iloczyn z kropk X.Y to operacja tablicowa. Realizuje ona mnoenie elementw wektorw lub macierzy o tych samych indeksach
(X(i, j)Y(i, j)). Operacja ta jest wykonywana, jeli rozmiar X i Y
jest taki sam lub gdy jeden z czynnikw jest skalarem.
Odmienne dziaanie operatorw sprzenia i transponowania
macierzy ujawnia si jedynie dla macierzy lub wektorw zawierajcych wartoci zespolone.
Funkcje do generowania macierzy
accumarray

68

wypenia wskazane indeksami elementy tablicy


wartociami, ktre pobiera z zadanego wektora. Powtrzenie indeksw powoduje akumulacj wartoci

MATLAB. Leksykon kieszonkowy

operator (:) tworzy wektor lub macierz o rwnomiernie rozoonych wartociach

compan

macierz stowarzyszona wielomianu

diag

umieszcza (lub odczytuje) elementy na przektnej lub paraleli macierzy

eye

macierz jednostkowa, jedynki na przektnej

freqspace

wektor lub macierz o rwnomiernie rozoonych wartociach czstotliwoci

gallery

macierze testowe

hadamard

macierz Hadamarda

hankel

macierz Hankela

hilb

macierz Hilberta

invhilb

odwrotna macierz Hilberta

linspace

wektor o wartociach rozoonych rwnomiernie

logspace

wektor o wartociach rozoonych logarytmicznie

magic

kwadrat magiczny

meshgrid

tablica dla wykresw trjwymiarowych (siatkowych)

ones

macierz o elementach rwnych 1

pascal

macierz Pascala

rand

macierz losowa o rozkadzie (rozoeniu)


rwnomiernym

randn

macierz losowa o rozkadzie (rozoeniu)


normalnym

repmap(A,m,n) tworzenie duej macierzy zawierajcej nm

kopii A

Rozdzia 5. Macierze, tablice i acuchy

69

rosser

macierz 88 do testowania algorytmw do


obliczania wartoci wasnych

toeplitz

macierz Toeplitza

vander

macierz Vandermonde'a

wilkinson

macierz do testowania algorytmw do obliczania wartoci wasnych

zeros

macierz z elementami zerowymi

Wicej informacji podaje help elmat.


Przykad tworzenia macierzy dwupasmowej (przektna i rwnolega do niej)
A = diag([1:3],-2) +diag([5:-1:1],0)

Informacje o tablicach
size

wymiar tablicy

length

dugo wektora lub najduszego boku tablicy

ndims

liczba wymiarw tablicy

numel

liczba elementw tablicy

disp

wywietlenie macierzy lub tekstu

isempty

TRUE dla tablicy pustej

isequal

TRUE, jeli wartoci numeryczne s identyczne

isequalwithequalnans jak isequal, ale dodatkowo zakada


NaN==NaN
isscalar TRUE dla wielkoci skalarnej
isvector TRUE dla wektora
blkdiag

70

tworzy macierz blokowo-diagonaln z zadanych


macierzy

MATLAB. Leksykon kieszonkowy

Operacje na macierzach
fliplr

odbicie lustrzane kolumn macierzy: lewo-prawo

flipud

odbicie lustrzane wierszy macierzy: gra-d

reshape zmiana wymiaru macierzy, np. reshape(A,3,5)

tworzy macierz A 35
rot90

obrt macierzy o 90

sub2ind przenumerowanie wybranych indeksw macierzy


A(n,m) do A(:)
ind2sub przenumerowanie wybranych indeksw macierzy
A(:) do A(n,m)
tril

macierz trjktna z elementw pod gwn przektn

triu

macierz trjktna z elementw nad gwn przektn

Przykady
x=diag(magic(5),1)

% wstawia do x elementy pooone bezporednio nad


przektn macierzy magic(5)

Macierze rzadkie
Typowymi przykadami macierzy rzadkich s: macierze pasmowe
(w tym diagonalna), macierze blokowe oraz macierze trjktne.
MATLAB wykonuje operacje na macierzach rzadkich inteligentnie i szybko. Zestaw funkcji dotyczcych macierzy rzadkich
uzyskuje si za pomoc polecenia help sparfun.

Tworzenie macierzy rzadkich


Macierz pena jest przeksztacana w macierz rzadk przy uyciu
funkcji sparse lub spconvert. Funkcja sparse moe by wywoywana na kilka sposobw, ktre przedstawiono w tabeli 5.2.

Rozdzia 5. Macierze, tablice i acuchy

71

Tabela 5.2. Sposoby wywoania funkcji sparse


Sposb wywoania

Opis

S = sparse(i,j,s,m,n,nzmax)

generuje macierz rzadk o wymiarach mn


i rezerwuje dla niej nzmax elementw
niezerowych

S = sparse(i,j,s,m,n)

nie przewidziano rezerwy dla elementw


niezerowych

S = sparse(i,j,s)

wymiar macierzy okrelaj zalenoci:


m = max(i), n = max(j)

S = sparse(m,n) lub
S=sparse([],[],[],m,n,0)

generuje macierz rzadk o wymiarach


nm i zerowych elementach

gdzie:
[i,j,s] trzy kolumny, okrelajce odpowiednio: indeksy i, j

oraz wartoci odpowiednich elementw sij macierzy


rzadkiej. Elementy sij mog by liczbami zespolonymi;

m, n

wymiar macierzy rzadkiej;

nzmax

maksymalna liczba elementw niezerowych macierzy S.

Przy przeksztaceniach macierzy rzadkiej (na przykad po jej


odwrceniu) moe wzrosn liczba jej elementw niezerowych.
Naley przewidzie odpowiedni zapas wolnych miejsc w macierzy
rzadkiej poprzez ustawienie wystarczajco duej wartoci parametru nzmax w funkcji sparse. Rezerw na dodatkowe elementy
niezerowe jest rnica (nzmax liczba elementw niezerowych
macierzy).
Funkcje generujce macierze rzadkie
sparse

generowanie macierzy rzadkiej z macierzy penej

speye

macierz jednostkowa

sprand

macierz losowa o rozkadzie rwnomiernym

72

MATLAB. Leksykon kieszonkowy

sprandn

macierz losowa o rozkadzie normalnym

sprandsym macierz symetryczna losowa


spdiags

macierze diagonalna i pasmowa

Przeksztacanie i badanie macierzy rzadkiej


full

przeksztacenie macierzy rzadkiej w pen

spconvert utworzenie macierzy rzadkiej np. z danych w for-

macie ASCII
find

wyszukiwanie elementw niezerowych:

nnz

liczba elementw niezerowych

[i,j,s]=find(A)
nonzeros elementy niezerowe
nzmax

maksymalna liczba elementw niezerowych (zarezerwowana pami)

spones

zamiana elementw niezerowych na jedynki

spalloc

rezerwowanie pamici dla elementw niezerowych

issparse TRUE, gdy zmienna jest macierz rzadk


spfun

zastosuj funkcj do niezerowych elementw

spy

wizualizacja elementw niezerowych macierzy

Porzdkowanie elementw macierzy


colamd

minimalny stopie permutacji kolumny

colmmd

zastpiona funkcj colamd

colperm

permutacja kolumn wedug rosncych indeksw


elementw niezerowych

symamd

minimalny stopie permutacji dla macierzy symetrycznych

symmmd

zastpiona funkcj symamd

Rozdzia 5. Macierze, tablice i acuchy

73

symrcm

odwrotne porzdkowanie Cuthill-McKee

randperm permutacja losowa


dmperm

dekompozycja Dulmage-Mendelsohn

Algebra liniowa
eigs

oblicza najwiksze wartoci i wektory wasne macierzy rzadkich (biblioteka ARPACK)

svds

oblicza kilka wartoci osobliwych, stosujc eigs

luinc

niepeny rozkad trjktny LU

cholinc

niepeny rozkad Choleskiego

normest

oszacowanie normy wektora i macierzy

condest

oszacowanie jak cond(A,1), z norm L1

sprank

rzd strukturalny macierzy rzadkiej

Ukady rwna liniowych (metody iteracyjne)


pcg

metoda sprzonych gradientw z popraw uwarunkowania macierzy (ang. preconditioned conjugate gradients)

bicg

metoda wzajemnie sprzonych gradientw (ang.


biconjugate gradients)

bicgstab stabilizowana metoda wzajemnie sprzonych

gradientw (ang. biconjugate gradients stabilized)

cgs

metoda sprzonych gradientw w kwadracie


(ang. conjugate gradients squared)

gmres

uoglniona metoda minimalnych residuw (ang.


generalized minimum residual)

lsqr

metoda sprzonych gradientw dla nadokrelonego ukadu rwna (ang. LSQR implementation of
conjugate gradients on the normal equations)

74

MATLAB. Leksykon kieszonkowy

minres

metoda minimalnych residuw (ang. minimum residual)

qmr

metoda quasi-minimalnych residuw (ang. quasim


minimal residual)

symmlq

metoda dla symetrycznych ukadw rwna liniowych (ang. symmetric LQ)

Operacje na grafach (drzewa)


treelayout drzewo lub las
treeplot

wizualizacja drzewa

etree

drzewo eliminacji

etreeplot

wizualizacja drzewa eliminacji

gplot

rysunek grafu macierzy rzadkiej, jak w teorii


grafw

Rne
symbfact

analiza symbolicznej dekompozycji

spparms

okrelenie parametrw porzdkowania macierzy


rzadkiej

spaugment utworzenie macierzy dla zagadnienia rednio-

kwadratowego

Rozdzia 5. Macierze, tablice i acuchy

75

You might also like