PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA w CHEŁMIE
INSTYTUT NAUK TECHNICZNYCH
Elektrotechnika
SPRAWOZDANIE
METODY NUMERYCZNE W TECHNICE
MATLAB
Piotr Dyjak
Czym jest Matlab:
MATLAB jest językiem wysokiego poziomu do obliczeń matematycznych. Jego polecenia, operatory i funkcje stosuje się do obliczeń numerycznych (w tym na macierzach i na liczbach zespolonych) oraz wizualizacji wyników w grafice dwu- i trójwymiarowej. Ponad 500 funkcji MATLAB-a realizuje podstawowe algorytmy numeryczne, operacje na macierzach, wielomianach, metody interpolacji i aproksymacji, transformacje Fouriera, algorytmy całkowania równań różniczkowych, implementacje specjalizowanych algorytmów dla macierzy rzadkich i wiele innych. W sumie w środowisku pakietu MATLAB jest około 2500 funkcji.
MATLAB zawiera szeroki zestaw funkcji graficznych, obejmujących: generowanie wykresów funkcji jednej i dwóch zmiennych, wykresów kołowych, paskowych, konturowych, cieniowanych, wizualizację odwzorowań dwu- i trójwymiarowych oraz generowanie kodu OpenGL dla akceleratorów sprzętowych. Posiada Także bogate środki opisu tekstowego: różne czcionki, symbole specjalne, strzałki. Środowisko GUIDE umożliwia projektowanie i implementację własnych interfejsów graficznych do aplikacji MATLAB-a na podstawie suwaków, przycisków i innych elementów obiektowo zorientowanej grafiki uchwytów (ang. handle graphics) oraz technik wywołań zwrotnych (ang. callbacks). Użytkowanie MATLAB-a oraz dodatkowych bibliotek (na przykład Neural Network Toolbox) wymaga posiadania odpowiednich licencji.
a) Najbardziej istotne cechy pakietu MATLAB to:
- Przyjazne środowisko użytkownika, czyli zestaw narzędzi ułatwiających obsługę MATLAB-a. Menu, przyciski i ikony pozwalają (nawet początkującym użytkownikom) wykorzystać szerokie możliwości pakietu MATLAB bez potrzeby stosowania nazw i parametrów używanych funkcji.
- Otwarta architektura, czyli rozszerzalność i możliwość wyboru platformy sprzętowej, pozwalająca na niezwykle szybki rozwój tego środowiska. Ważna jego cechą jest możliwość wyboru platformy sprzętowej w ramach systemów Windows (wersje 98 do XP), Macintosh OS X i Unix, w tym Linux i Solaria. Umożliwia to zachowanie własnego dorobku przy zamianie platformy sprzętowej i systemu operacyjnego. MATLAB może wymieniać dane z innymi programami oraz współpracować w trybie klient-serwer z innymi oprogramowaniami.
- Profesjonalna biblioteka matematyczna i graficzna stanowiąca bazę dla wszystkich elementów składowych środowiska MATLAB
b) Szata graficzna Matlaba z krótkim opisem:
Command Window – W oknie Command Window można wprowadzić z klawiatury jedno lub więcej poleceń oddzielonych przecinkami lub średnikami. Można też dwukrotnie kliknąć polecenie widoczne w oknie Command History.
Command History – wyświetla nam datę oraz co w danym dniu wykonywaliśmy za operacje ułatwia to szybsze odszukiwanie wykonanych wcześniej komend.
M-File – aby wybrać tą opcję trzeba wcisnąć File/New/M-File. Jest to okno edytora tak zwanego „debuggera” w którym można zapisać i zapamiętać teks M-pliku.
Pierwsze kroki w Matlabie:
Zanim przejdę do opisu poszczególnych funkcji operatorów i tym podobne chciałbym krótko zaprezentować bardzo przydatne polecenie help.
Help - otóż gdy wpiszemy w głównym oknie help to wyświetli się nam lista pomocnych nagłówków. Bardziej użytecznym jest zaś polecenie help (nazwa) pod nazwą umieszczamy słowo o którym chcemy się dowiedzieć co nieco to znaczy co oznacz dana nazwa oraz do czego służy. Jedynym minusem tego jest to że wszystko jest napisane w języku angielskim.
Komendy i polecenia:
Tab = rand (100,100); - przedstawienie macierzy 100x100 bez wydruku wyniku
Tab = rand (100,100) - przedstawienie macierzy 100x100 z wydrukiem wyniku
Clear tab - usuwanie funkcji
Celar all - usuwanie wszystkich funkcji
dec2bin - przeliczanie dowolnej liczby całkowitej na liczbę w postaci dwójkowej
help dec2bin - uzyskiwanie pomocy na temat operacji „dec2bin”
Działania arytmetyczne:
a + b
a – b
a * b
a / b
a \ b - działanie odwrotne
Operacje porównania:
a = 7, b = 5, c = a
a = = c 1
a ~ = c 0
a > c 0
a < c 0
a > = c 1
a < = c 1
~ (a = = c) 0
(a ~ = b & b < c) 1
(a ~ = b & b < c | c < = a) 1
(a ~ = b & b < c | c < a) 1
(a ~ = b & b < c | c < 0) 1
Operator logiczny:
~ - not
| - or
& - and
Liczby zespolone:
1i = 0 + 1.0000i
A = 2 + 3i = 2.0000 + 3.0000i
B = 2 – 3i = 2.0000 – 3.0000i
C = a * b = 13
Funkcje wykładnicze:
217 = 128 - potęgowanie
210.5 = 1,4142 = √2
Sqrt(2) = 1,4142 = √2 - pierwiastkowanie
Funkcja ekspotencjalna:
ex - jest to jedyna taka funkcja, której pochodna jest tą samą funkcją
Funkcje logarytmiczne:
Exp(1) = 2,7183
Pi = 3,1416
Log - log e (x)
Log2
Log10
Log(0,001) / log(10)
Log 10 (0,001)
Funkcje trygonometryczne:
sin - sinus
cos - cosinus
tg - tangens
Funkcje cyklometryczne:
asin - arcus sinus
acos - arcus cosinus
atg - arcus tangens
Funkcje hiperboliczne:
sinh - sinus hiperboliczny
cosh - cosinus hiperboliczny
tgh - tangens hiperboliczny
Funkcje odwrotne do hiperbolicznych:
asinh - arcus sinus hiperboliczny
acosh - arcus cosinus hiperboliczny
atgh - arcus tangens hiperboliczny
Początki pisania w M-File (skrypt):
a=2+3i - wpisujemy liczbę
- następnie z liczby wyznaczamy następujące komendy
abs(a) - moduł z liczby zespolonej „a”
angle(a) - kąt z liczby zespolonej „a”
abs(a)*exp(1i*angle(a)) - po wprowadzeniu tych zmiennych otrzymujemy wynik =
2.000+3.000i
real(a)
imag(a)
real(a)+1i*imag(a)
Zaokrąglenia:
„ceil” - zaokrąglanie do plus nieskończoności
„floor” - zaokrąglanie do minus nieskończoności
„fix” - zaokrąglanie do zera
„round” - zaokrąglanie do najbliższej
„rem i mod” - porówna (zaokrąglenie)
Wektory:
u=[2, 4.4, -0.2, -1] - wektory wierszowe
v=[0, 1, 2, -3]
x=[0.1; 0.5; 0; -1;] - wektor kolumnowy
p=1:6 - wektor p
p=[1, 2, 3, 4, 5, 6]
q= 0:3:10 - wektor q
q=[0, 3, 6, 9]
Aby sprawdzić długość danego wektora należy wpisać length( ) a w nawiasie podać który wektor chce się sprawdzić.
Macierze:
spacja - rozdziela kolumny
średnik (;) - rozdziela wiersze
krótkie zadanko na macierzach:
clear all
c = [1 2 ; 3 -4]
det(c)
inv(c)
d = inv(c) - odwrotność macierzy “c”
d * c
c * d
e = eye(3) - macierz mająca główną przekątna złożoną z jedynek
z = zeros(2,3) - macierz wypełniona zerami
j = ones(3,2) - macierz wypełniona jedynkami
j2 = 2.5 * ones(3,2)
a = 13
t1 = dec2bin(a) - podaje wartość „a” w postaci dwójkowej
t2 = dec2hex(a) - podaje wartość „a” w postaci szesnastkowej
t3 = dec2base(a,8)
c = 1 2
3 -4
ans = -10
ans = 0.4000 0.2000
0.3000 -0.1000
d = 0.4000 0.2000
0.3000 -0.1000
ans = 1.0000 0.0000
0.0000 1.0000
ans = 1.0000 -0.0000
-0.0000 1.0000
e = 1 0 0
0 1 0
0 0 1
z = 0 0 0
0 0 0
j = 1 1
1 1
1 1
j2 = 2.5000 2.5000
2.5000 2.5000
2.5000 2.5000
a = 13
t1 = 1101
t2 = D
t3 = 15
Wykresy w Matlabie:
Aby pokazać prosty wykres jaki Matlab potrafi nam narysować skorzystamy z funkcji sinus.
W oknie M-File należy wpisać:
x = -pi:0.01:pi - podajemy przedział w jakim chcemy żeby nam narysował sinusoidę
plot (x, sin(x)) - jaka operacje ma wykonać („sin(x)”)
grid on; - wyświetli nam siatkę
Wnioski:
Matlab jest bardzo przydatnym programem do obliczania wszelkiego rodzaju obliczeń. Od najprostszych działań matematycznych po skomplikowane i trudne działania do wykonania , dlatego tez Matlab z pewnością zdobył uznanie nie tylko wśród studentów ale i innych użytkowników. Matlab jest bardzo przydatny lecz jego struktura jest dosyć skomplikowana dlatego aby nauczyć się dobrze korzystać z tego programu należy wiele czytać o języku tego programowania no i przede wszystkim wykonywać dużo ćwiczeń, analizując przy tym każdy krok i każdy popełniony błąd.
Materiały pomocnicze:
- „Matlab leksykon kieszonkowy” – Bogumiła Mrożek, Zbigniew Mrożek
- „Notatki z ćwiczeń”