Pakiet Matlab wprowadzenie w środowisko

background image

POLITECHNIKA WARSZAWSKA

Instytut Podstaw Budowy Maszyn

PRACOWNIA WIBROAKUSTYKI

02-524 Warszawa, ul. Narbutta 84

02-524 Warszawa, ul. Narbutta 84, tel. 660 8276

Laboratorium Eksploatacji

Autorzy opracowania:

Jacek Dybała, Adam Gałęzia, Marcin Jasiński

Jędrzej Mączak, Stanisław Radkowski

Pakiet Matlab

Wprowadzenie w środowisko

(do użytku wewnętrznego)

Warszawa 2005

background image

1

Wstęp

Pakiet MATLAB (od ang. MATrix LABoratory) w chwili obecnej jest faktycznym

standardem w obliczeniach naukowo technicznych. Zbudowany jest jako aplikacja mogąca
pracować w środowisku MS Windows oraz Unix. Jego jądro stanowi interpreter języka
programowania umożliwiający wykonywanie obliczeń numerycznych na macierzach (w
ogólności zespolonych) zgodnie z zaprogramowanymi algorytmami obliczeniowymi. Wokół
jądra jest zbudowane interaktywne środowisko (ekran poleceń do komunikacji z systemem i
ekrany graficzne) przeznaczone do tworzenia algorytmów obliczeniowych, wizualizacji
graficznej wyników, analizy danych i obliczeń numerycznych.

Podstawowym typem danych Matlaba jest macierz liczb zespolonych. Macierz liczb

rzeczywistych jest traktowana jako szczególny przypadek liczby zespolonej zgodnie z
regułami algebry. Liczba całkowita jest szczególnym przypadkiem macierzy mającej jeden
wiersz i jedną kolumnę (macierz jednoelementowa). Na macierzach można wykonywać
wszystkie typowe operacje arytmetyczne (suma, iloczyn iloraz, obliczanie wyznaczników,
odwracanie macierzy itd.) zgodnie z regułami rachunku macierzowego. Operacje te są
zazwyczaj wykonywane w jednej instrukcji programowej co pozwala na uzyskanie
olbrzymiej szybkości i sprawności działania a dodatkowo upraszcza zapis operacji. Dla
użytkownika dostępne są wszystkie podstawowe funkcje matematyczne, statystyczne i
inżynierskie, w tym analiza widmowa (szybka transformata Fouriera - FFT, filtry cyfrowe
itd.). Cechy te stanowią o niezwykłej wartości Matlaba wszędzie tam, gdzie niezbędne jest
wykonywanie obliczeń na bardzo dużych zbiorach danych.

Język Matlaba jest językiem wysokiego poziomu jak Basic, Fortran czy Pascal i

pozwala na pisanie programów realizujących określone algorytmy. Cechą Matlaba są tzw.
toolboxy, tekstowe biblioteki funkcji i procedur, przeznaczone do realizacji konkretnych
zadań w różnych dziedzinach. Wraz z Matlabem można zakupić kilkadziesiąt różnych
bibliotek procedur pokrywających zakres zastosowań od analizy sygnałów, teorii sterowania
(automatyka) i metody elementów skończonych, poprzez rachunek statystyczny, analizę
obrazów aż do biotechnologii i genetyki. Matlab umożliwia również w ograniczonym
zakresie na sterowanie aparaturą pomiarową i pozwala na opracowywanie układów
sterowania automatyką przemysłową (opracowywanie algorytmów sterowania kart
procesorów sygnałowych).

Matlab pozwala na wizualizację graficzną wyników obliczeń. Zawiera wszelkie

procedury graficzne niezbędne do wizualizacji danych Matlaba. Dotyczy to zarówno
wykresów dwu- jak i trójwymiarowych oraz wizualizacji objętości. Wszystkie obiekty na
wykresach mogą być interaktywnie edytowane (zmiana kształtu linii, koloru, opisów, skali
itd.) i eksportowane do typowych formatów graficznych. Tworzenie wykresów jest bardzo
proste i intuicyjne.

Udostępnienie w środowisku Matlaba niezawodnych implementacji algorytmów

matematyki stosowanej, bogatych funkcji graficznych i licznych modułów rozszerzeń
zorientowanych na określone dziedziny zastosowań oraz otwarta architektura środowiska
(rozszerzalność - możliwość budowania własnych funkcji użytkownika, przenośność -
jednakowy m-kod Matlaba dla różnych platform sprzętowych) sprawiły, że obecnie
MATLAB w znacznym stopniu wyparł z obliczeń naukowo-technicznych języki uniwersalne
(Fortran, C, C++) ograniczając ich zasadniczą rolę do funkcji oprogramowania
narzędziowego.

background image

2

Wprowadzenie do pracy w środowisku Matlaba

Poniższy opis został potraktowany bardzo skrótowo  przedstawia środowisko Matlaba

tylko w takim zakresie w jakim jest to niezbędne dla wykonania ćwiczeń laboratoryjnych.
Osoby zainteresowane szerszym poznaniem możliwości Matlaba odsyła się do pomocy
dostępnych w internecie pod adresem producenta (firmy The Mathworks Inc.) np.

http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/learnmatlab.pdf

(w języku

angielskim) a także licznych książek (dostępnych również w języku polskim) oraz
samouczków, które można w dużej liczbie znaleźć w internecie pod hasłem „matlab”.

Po uruchomieniu Matlaba na ekranie widoczne jest okno z migającym kursorem po

znakach >> pozwalającym na wpisanie polecenia. Wykonanie tego polecenia (jego
interpretacja) odbywa się po naciśnięciu klawisza <Enter>.

Z Matlaba można korzystać w dwojaki sposób:

1. Można traktować Matlaba jak zaawansowany kalkulator wykonujący operacje podane

w linii poleceń.

2. Można tworzyć programy (ciągi kolejnych poleceń) i nowe funkcje, które następnie

będą uruchamiane przez interpreter języka Matlab. Programy (nazywane skryptami) i
funkcje umieszcza się w plikach tekstowych (ASCII) z rozszerzeniami „.m”.
Programy i funkcje uruchamia się pisząc ich nazwy w linii poleceń.

Dla potrzeb Laboratorium Eksploatacji wystarczające jest korzystanie z Matlaba w pierwszy
z podanych sposobów, tj. korzystanie jedynie z linii poleceń. Aby wykonać działanie
matematyczne na liczbach wystarczy napisać to działanie tak jak na zwykłym kalkulatorze i
nacisnąć klawisz <Enter>. Poprzednie linie poleceń można wywołać naciskając ↑ i ↓.

Matlab wyświetli wynik umieszczając go w standardowej zmiennej ans (answer -
odpowiedź).

Operatory używane w Matlabie

Poniżej przedstawiono listę ważniejszych operatorów używanych w Matlabie (A i B
oznaczają zmienne zawierające macierze):

+

dodawanie macierzy.

A+B (A i B muszą mieć te same rozmiary)

-

odejmowanie macierzy. A-B

(A i B muszą mieć te same rozmiary)

*

mnożenie macierzy.

A*B (liczba kolumn A musi być równa liczbie wierszy B)

/

dzielenie macierzy.

X=A/B rozwiązuje liniowe działanie A*X=B

.* mnożenie odpowiadających sobie elementów macierzy przez siebie. A.*B (rozmiary A i B

muszą być takie same)

./

dzielenie odpowiadających sobie elementów macierzy przez siebie. A./B (rozmiary A i B

muszą być takie same)

^

podnoszenie macierzy do potęgi. A^P (P jest skalarem, A musi być macierzą kwadratową)

.^ podnoszenie elementów macierzy do potęgi

(znak apostrofu) transpozycja macierzy. A’ zamienia kolumny wierszami

>>2+2
ans=

4

background image

3

Zmienne

Podstawienie

powoduje utworzenie w pamięci zmiennej a o wartości równej 5. Zmienna ta istnieje aż do
momentu celowego jej usunięcia poleceniem clear a lub poleceniem usunięcia wszystkich
zmiennych clear. Po zamknięciu Matlaba zmienne są usuwane z pamięci.

Zakończenie linii znakiem średnika powoduje niewyświetlenie wyniku na ekranie;

Zdefiniowane dotychczas zmienne można wyświetlić na ekranie korzystając z polecenia whos

Macierze

Macierze można wprowadzać do Matlaba na kilka różnych sposobów

1. poprzez podanie listy elementów;

2. poprzez wczytanie macierzy z pliku dyskowego (np. dane pomiarowe);

3. poprzez wygenerowanie macierzy za pomocą wbudowanych funkcji;

4. poprzez ich utworzenie za pomocą procedur (m-plików) napisanych przez

użytkownika.

Ad 1)

Wprowadzając macierz z klawiatury należy

• oddzielać kolejne elementy wiersza spacjami lub przecinkami,
• koniec wiersza oznaczać średnikiem;
• całą lista elementów umieścić w nawiasach klamrowych.

>>a=5
a=

5

>> whos
Name

Size Bytes

Class

a

1x1 8

double array

Grand total is 1 element using 8 bytes

>> A=[1 2 3; 4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> whos
Name Size Bytes Class

A 3x3 72 double array
a 1x1 8 double array

Grand total is 10 elements using 80 bytes

background image

4

UWAGA: Matlab rozróżnia duże i małe litery.

Ad 2)

Macierz może być wczytana do środowiska Matlaba z pliku dyskowego. Jeżeli w pliku tym
została zapisana w formacie znakowym (ASCII) wówczas wczytanie jej odbywa się poprzez
napisanie polecenia load nazwa_pliku –ASCII

W wyniku takiego polecenia utworzona zostanie zmienna o nazwie takiej jak nazwa

wczytanego pliku zawierającego macierz (rozszerzenie jest pomijane).

Macierze zdefiniowane w Matlabie można zapisać na dysku w postaci binarnej (rozszerzenie
„.mat” poleceniem save nazwa_pliku nazwy_macierzy lub w postaci tekstowej poleceniem
save nazwa_pliku nazwa_macierzy -ASCII

Ad 3)

Macierz może też być utworzona poprzez podanie pierwszego elementu, kroku zwiększania
wartości kolejnych elementów oraz ostatniego elementu oddzielonych dwukropkami. Jeżeli
parametr kroku jest pominięty, wówczas domyślnie przyjmowany jest za 1.

Takie rozwiązanie jest szczególnie często wykorzystywane w tych przypadkach, gdy
potrzebujemy macierzy opisującej ze stałym krokiem zmienną niezależną jakiejś funkcji
(czas, częstotliwość, kąt itp.) np.

Powyższe polecenia pozwalają na obliczenie funkcji sinus dla kątów od 0 do 2π z krokiem

π/2 i umieszczenie macierzy wynikowej w zmiennej s.

>> C=1:2:10
C =
1 3 5 7 9
>> D=1:5
D =
1 2 3 4 5
>> E=[1:2:12; 1:6]
E =
1 3 5 7 9 11
1 2 3 4 5 6

>> alfa=0:pi/2:2*pi
alfa =
0 1.5708 3.1416 4.7124 6.2832
>> s= sin(alfa)
s =
0 1.0000 0.0000 -1.0000 0.0000

>> load matrixA -ASCII
>> matrixA
matrixA =
1 2 3 4
5 6 7 8
9 10 11 12

>> save plikA matrixA
>>

background image

5

Macierze można też tworzyć z uprzednio utworzonych macierzy pamiętając o zgodności
wymiarów.

Na macierzach można wykonywać różne operacje matematyczne, np.

oblicza sumę wartości elementów macierzy w poszczególnych kolumnach.

Inne przydatne operatory macierzowe to:

max(X)

- maksimum elementów z każdej z kolumn

min(X)

- minimum elementów z każdej z kolumn

mean(X)

- wartość średnia elementów z każdej z kolumn

std(X)

- odchylenie standardowe elementów z każdej z kolumn

sqrt(X)

- pierwiastki z elementów macierzy

Operatorem transpozycji macierzy (zamiany miejscami wierszy i kolumn) jest apostrof (').

Rozmiar macierzy można sprawdzić korzystając z polecenia size, zaś większy wymiar
macierzy poleceniem length.

Dostęp do elementów macierzy można uzyskać poprzez podanie adresu elementu

(wiersz,kolumna) w macierzy:

>> F=[C;D]
F =
1 3 5 7 9
1 2 3 4 5

>> sum(F)
ans =
2 5 8 11 14

>> F = [1 3 5 7; 1 2 3 4]
F =
1 3 5 7
1 2 3 4
>> F'
ans =
1 1
3 2
5 3
7 4

>> size(F)
ans =

2

4

>>length(F)
ans=
4

>> F(2,3)
ans =
3

background image

6

lub zakresu adresów elementów (zakres wierszy, zakres kolumn) w macierzy:

Elementy grafiki 2D

Funkcję jednej zmiennej

)

( x

f

y

=

można przedstawić na wykresie w postaci graficznej

korzystając z polecenia plot(X,Y) gdzie X i Y są macierzami. Na wykresie, pojawiającym się
w osobnym oknie, rysowane są linie odpowiadające połączonym punktom X i Y. Jeżeli X jest
macierzą jednowymiarową, zaś Y dwuwymiarową, osobna linia jest tworzona dla każdego
wiersza lub kolumny Y zależnie od tego, który wymiar macierzy Y odpowiada długości
macierzy X.

>> F(1:2,2:3)
ans =
3 5
2 3

>> alpha=0:pi/10:4*pi;
>> s=sin(alpha);
>> plot(alpha,s)

>> c=cos(alpha);
>> sc=[s;c];
>> plot(alpha,sc)

Rys. 1. Okno z wykresem funkcji sinus w zakresie <

π

2

,

0

>.

background image

7

Ten sam efekt można uzyskać za pomocą rozszerzonej składni polecenia plot(X1,Y1,X2,Y2,...)

Rysunkowi można nadać tytuł poleceniem title('opis'), a także dodać opisy osi poziomej i
pionowej poleceniami xlabel('opis') i ylabel('opis') oraz siatkę poleceniem grid.

>> plot(alpha,s, alpha,c)

>> title('wykresy funkcji sinus i cosinus')
>> xlabel('kąt [rad]')
>> ylabel('wartości funkcji')
>> grid

Rys.2. Okno z wykresami funkcji sinus i cosinus

Rys. 3. Wykresy funkcji wraz z opiami osi i siatką

background image

8

Ekran graficzny można podzielić na osobne wykresy za pomocą polecenia subplot(m,n,p),
gdzie m jest liczbą wykresów w pionie, n – liczbą wykresów w poziomie, zaś p – kolejnym
numerem wykresu licząc od lewego górnego.

Skrypty

Ciągi wielu instrukcji takie jak w przykładzie do rys. 4 wygodnie jest umieszczać w osobnych
plikach tekstowych z rozszerzeniem „.m”. Pozwala to na ich łatwą edycję bez konieczności
przepisywania instrukcji w razie potrzeby ich kilkakrotnego wykorzystania. Takie pliki,
nazywane skryptami, są odpowiednikiem programów w innych językach programowania. W
skrypcie możemy wywołać inne, uprzednio zdefiniowane skrypty. Skrypt uruchamiany jest
poprzez wpisanie w linii poleceń jego nazwy (bez rozszerzenia).

>> subplot(2,1,1)
>> plot(alpha,s)
>> grid
>> title('sinus')
>> ylabel('wartości funkcji')
>> xlabel('kąt [rad]')
>> subplot(2,1,2)
>> plot(alpha,c)
>> title('cosinus')
>> ylabel('wartości funkcji')
>> xlabel('kąt [rad]')
>> grid

Rys. 4. Wykorzystanie polecenia subplot do podziału ekranu

graficznego

background image

9

Funkcje matematyczne (przykłady)

Funkcje matematyczne (jeżeli zostaną wywołane z argumentem macierzowym, z
założenia operują „na elementach”):

sin(x)

sinus

cos(x)

cosinus

tan(x)

tangens

asin(x)

arcus sinus

acos(x)

arcus cosinus

atan(x)

arcus tangens

sinh(x)

sinus hiperboliczny

cosh(x)

cosinus hiperboliczny

tanh(x)

tangens hiperboliczny

asinh(x)

arcus sinus hiperboliczny

acosh(x)

arcus cosinus hiperboliczny

atanh(x)

arcus tangens hiperboliczny

sqrt(x)

pierwiastek kwadratowy

exp(x)

e

x

log(x)

logarytm naturalny

log2(x)

logarytm przy podstawie 2

log10(x)

logarytm przy podstawie 10

Funkcje związane z obliczeniami w dziedzinie liczb zespolonych:

abs(x)

macierz modułów elementów macierzy x (także macierz wartości
bezwzględnych elementów macierzy rzeczywistej x)

angle(x)

macierz argumentów elementów macierzy x

real(x)

macierz części rzeczywistych elementów macierzy x

imag(x)

macierz części urojonych elementów macierzy x

conj(x)

macierz o elementach sprzężonych z elementami macierzy x

Funkcje dodatkowe:

round(x)

zaokrągla elementy macierzy x

do najbliższej liczby całkowitej

rem(x,y)

oblicza resztę z dzielenia odpowiadających sobie elementów macierzy x

i y

gcd(a,b)

oblicza największy wspólny dzielnik liczb a i b

lcm(a,b)

oblicza najmniejszą wspólną wielokrotną liczb a i b

Korzystanie z pomocy

Matlab posiada bardzo rozbudowany system pomocy. W każdej chwili można z linii poleceń
podać help nazwa_polecenia aby przeczytać skrócony opis działania danej komendy.
Dodatkowo w menu znajduje się przycisk Help uruchamiający dostęp do pełnej dokumentacji
HTML Matlaba.

Bibliografia

[1]

Szymkat M.: Komputerowe wspomaganie w projektowaniu układów regulacji.

Wydawnictwa Naukowo-Techniczne, Warszawa, 1993

background image

10

[2]

Brzózka J., Dorobczyński L.: Programowanie w Matlab. Zakład Nauczania

Informatyki „MIKOM”, Warszawa, 1998

[3]

Kamińska A., Pańczyk B.: Ćwiczenia z Matlab. Przykłady i zadania. Wydawnictwo

„MIKOM”, Warszawa, 2002

[4]

Regel W.: Statystyka matematyczna w programie Matlab. Wydawnictwo „MIKOM”,

Warszawa, 2003

[5]

Mrozek B., Mrozek Z.: MATLAB i Simulink : poradnik użytkownika. Helion, Gliwice,

2004

[6]

http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/learnmatlab.pdf

[7]

http://www.pg.gda.pl/~kmb/polish/skrypt.pdf


Wyszukiwarka

Podobne podstrony:
Matlab (Opisy podstawowych funkcji) PL Wprowadzenie do pracy w środowisku pakietu Matlab
L2 PAA Modelowanie układu regulacji automatycznej z wykorzystaniem pakietu MATLAB Simulink(1)
Dodatek (pakiet MATLAB z r SIMULINK)
Matlab, Podstawy Obsługi Pakietu Matlab
matlab wprowadzenie
1 MATLAB Wprowadzenie
Matlab wprowadzenie
Symulacja układów sterowania z wykorzystaniem pakietu MATLAB, PWr W9 Energetyka stopień inż, III Sem
MATLAB - Wprowadzenie do Matlaba, Studia, Sprawozdania, Metody numeryczne
MatLab wprowadzenie
MATLAB wprowadzenie
MATLAB wprowadzenie
matlab wprowadzenie
L2 PAA Modelowanie układu regulacji automatycznej z wykorzystaniem pakietu MATLAB Simulink(1)
Wybrane elementy syntaktyki pakietu Matlab Przemysław Korohoda
matlab wprowadzenie

więcej podobnych podstron