Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Podobne dokumenty
Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA

Wprowadzenie do środowiska

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Metody i analiza danych

Podstawy MATLABA, cd.

MATLAB - laboratorium nr 1 wektory i macierze

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Obliczenia w programie MATLAB

Podstawowe operacje na macierzach

Zanim zaczniemy GNU Octave

Matlab Składnia + podstawy programowania

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Wprowadzenie do Scilab: macierze

Matlab Składnia + podstawy programowania

Wstęp do Programowania Lista 1

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Podstawowe operacje na macierzach, operacje we/wy

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

1 Podstawy c++ w pigułce.

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Algebra macierzy

WPROWADZENIE DO ŚRODOWISKA SCILAB

Wprowadzenie do systemu Scilab

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Wprowadzenie do Scilab: macierze

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

1 Programowanie w matlabie - skrypty i funkcje

Wykład 4. Matlab cz.3 Tablice i operacje na tablicach

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Podstawy Informatyki 1. Laboratorium 1

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Ćwiczenie 3: Wprowadzenie do programu Matlab

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Przetwarzanie sygnałów

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Ćwiczenie 1. Wprowadzenie do programu Octave

Programy wykorzystywane do obliczeń

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Kier. MTR Programowanie w MATLABie Laboratorium

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Wykład 4. Matlab cz.3 Tablice i operacje na tablicach

Ćwiczenie 1. Wprowadzenie do programu Octave

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

5. Rozwiązywanie układów równań liniowych


Elementy metod numerycznych - zajęcia 9

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Optymalizacja systemów

Warsztaty dla nauczycieli

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

MATLAB - podstawy użytkowania

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Zad. 3: Układ równań liniowych

Programowanie obiektowe

Metody numeryczne Laboratorium 2

Zakaz rozpowszechniania w sieci, tylko na użytek studentów informatyki UwB. WYKŁAD 1- Matlab

Wykorzystanie programów komputerowych do obliczeń matematycznych

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

1 Podstawy c++ w pigułce.

Wprowadzenie do programu Mathcad 15 cz. 1

Optymalizacja systemów

MATLAB tworzenie własnych funkcji

Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi

Wprowadzenie do Scilab: macierze

Wprowadzenie do pakietów MATLAB/GNU Octave

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

3. Macierze i Układy Równań Liniowych

MATrix LABoratory. A C21 delta tvx444 omega_zero. hxx J23 aaa g4534 Fx_38

MATLAB. Æwiczenia IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE

MATLAB Wprowadzenie. Literatura po polsku: Niektóre cechy MATLABa. Dlaczego warto poznać MATLABa? bo : Co to jest "Środowisko programowania" czyli IDE

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie

BIBLIOTEKA NUMPY, CZĘŚĆ 1

Programowanie 3 - Funkcje, pliki i klasy

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

MATLAB Podstawowe polecenia

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

Wprowadzenie do Mathcada 1

Programowanie w języku Matlab

Wprowadzenie do MS Excel

Podstawy Programowania C++

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

1) Podstawowe obliczenia. PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium. Wykonał: Łukasz Konopacki Sala 125. Grupa: poniedziałek/p,

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie.

Instalacja

Inżynieria obrazów cyfrowych. Ćwiczenie 1. Środowisko MATLAB + Image Processing Toolbox - wprowadzenie

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

I. Podstawy języka C powtórka

Transkrypt:

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Podstawy MATLABA MATLAB jest zintegrowanym środowiskiem obliczeniowo-programistycznym dla zastosowań inżynierskich. Umożliwia zarówno obliczenia i ich wizualizację oraz programowanie we własnym języku wysokiego poziomu. Podstawowe zastosowania MATLABA zawierają: obliczenia matematyczne budowanie algorytmów zbieranie danych modelowanie, symulacje i wizualizacje analiza, eksploracja oraz wizualizacja danych grafika dla zastosowań naukowych i inżynierskich budowa aplikacji wraz z GUI 1. Budowa środowiska Rys.1. Typowy wygląd aplikacji.

Podstawowym oknem Matlaba jest okno poleceń (Command Window), w którym wpisuje się funkcje i komendy Matlaba. W zależności od ustawień w menu View mogą być widoczne także inne okna, np. okno historii (Command History), w którym pojawiają się wpisane wcześniej w Command Window polecenia lub okno Launch Pad, które zapewnia szybki dostęp do dokumentacji, demonstracji i innych narzędzi. Wygląd aplikacji można dostosowywać do swych własnych potrzeb. 1.1. System pomocy i dokumentacja Wszystkie funkcje i narzędzia Matlaba są wyczerpująco opisane w dokumentacji, która jest dostępna offline (jeśli jest zainstalowana w systemie) lub online na stronie producenta: http://www.mathworks.com Rys.2. Okno pomocy. Pomoc na temat wybranej funkcji Matlaba można uzyskać dwojako. Najprościej jest wpisać w oknie poleceń komendę help, po której następuje nazwa interesującej nas funkcji, np. wpisanie: help plot spowoduje wyświetlenie informacji na temat funkcji plot, służącej do rysowania wykresów. Innym sposobem jest otwarcie okna pomocy (menu help), i w zakładce search wpisanie nazwy poszukiwanej funkcji (patrz rys. 2). Inne przydatne funkcje: Funkcja which podaje lokalizację poszukiwanej funkcji, np. wpisanie: which mean powoduje wyświetlenie ścieżki dostępu do funkcji mean, służącej do obliczania wartości średniej:

C:\MATLAB6p5\toolbox\matlab\datafun\mean.m W tym wypadku kod źródłowy tej funkcji znajduje się w pliku mean.m w podanej lokalizacji. Jest to plik tekstowy, więc można go otworzyć i podglądnąć w jaki sposób funkcja została napisana przez programistów firmy Mathworks. Taki plik można także zmodyfikować, dostosowując go do własnych potrzeb. Innym sposobem dotarcia do kodu źródłowego danej funkcji Matlaba jest wykorzystanie funkcji type, np. wpisanie w oknie poleceń: type mean spowoduje wyświetlenie kodu źródłowego funkcji mean w oknie poleceń. 2. Podstawowe komendy 2.1. Katalog roboczy Zawsze przed rozpoczęciem pracy w Matlabie należy ustawić ścieżkę dostępu do katalogu roboczego, w którym będziemy przechowywać swoje pliki. Domyślnym katalogiem roboczym jest zazwyczaj: C:\MATLAB6p5\work Ponieważ nie zawsze ten katalog jest dostępny do zapisu, za pomocą funkcji cd należy podać katalog do którego mamy dostęp, np.: cd f:\praca czyli dysk f, katalog praca. Taki katalog trzeba oczywiście wcześniej utworzyć. Inne wykorzystanie funkcji cd: cd - (bez argumentów) wyświetla aktualny katalog cd \ - przejście do katalogu głównego cd.. - przejście o jeden poziom wyżej 2.2. Wpisywanie zmiennych Wpisywanie zmiennych liczbowych (skalarów) jest bardzo proste, np.: x = 5 a = 2.45 Na końcu wyrażenia można postawić średnik, aby wynik operacji nie był wyświetlany na ekranie: x = 5; a = 2.45; Wektory wpisuje się w nawiasach kwadratowych, np.: y = [1 2 3 4] lub y = [1, 2, 3, 4] tworzy wektor wierszowy, natomiast: z = [1; 2; 3; 4] tworzy wektor kolumnowy. Wszystkie wpisane zmienne są przechowywane przestrzeni roboczej (czyli w pamięci) dopóki nie zostaną z niej usunięte. Aby sprawdzić jakie zmienne aktualnie znajdują się w przestrzeni roboczej należy użyć funkcji who: who W wyniku otrzymamy informację: Your variables are: (twoje zmienne to) a x y z Bardziej rozbudowaną funkcją who jest whos: whos W wyniku otrzymamy informację:

Name Size Bytes Class a 1x1 8 double array x 1x1 8 double array y 1x4 32 double array z 4x1 32 double array Grand total is 10 elements using 80 bytes Jak widać każda zmienna w Matlabie jest obiektem typu double array (macierz liczb zmiennoprzecinkowych o podwójnej precyzji). Nawet skalar jest traktowany jako macierz o wymiarach 1x1. 2.3. Rozmiar zmiennych Do sprawdzania rozmiaru zmiennych służą dwie funkcje: size (rozmiar) oraz length (długość), np.: size(y) W wyniku otrzymamy informację: 1 4 co oznacza, że zmienna y jest macierzą o rozmiarze 1x4, czyli 1 wiersz i 4 kolumny. Natomiast funkcja length podaje dłuższy z wymiarów, np.: length(y) 4 ans jest skrótem od answer (odpowiedź). 2.4. Zapisywanie i odczytywanie zmiennych Do zapisywania zmiennych na dysku (do tej pory istniały tylko w pamięci komputera) służy funkcja save, np.: save nazwa_pliku zapisuje wszystkie zmienne z przestrzeni roboczej do pliku binarnego nazwa_pliku.mat. mat jest domyślnym rozszerzeniem plików z danymi w Matlabie. Zapisz wszystkie zmienne z przestrzeni roboczej do pliku, następnie znajdź ten plik w swoim katalogu roboczym (jaki jest katalog roboczy możesz sprawdzić poleceniem cd) i spróbuj go otworzyć w Notatniku. Co zawiera? Inne wywołania funkcji save: save nazwa_pliku x - zapisuje tylko zmienną x save nazwa_pliku x y z - zapisuje zmienne x, y i z. save nazwa_pliku x ascii - zapisuje zmienną x w formacie ascii Zapisz wszystkie zmienne z przestrzeni roboczej do pliku w formacie ascii (tekstowym) i spróbuj go otworzyć w Notatniku. Co zawiera? Operacja odwrotna, czyli wczytywanie pliku z dysku wykonuje się za pomocą funkcji load: load nazwa_pliku - ładuje wszystkie zmienne z pliku nazwa_pliku load nazwa_pliku x - ładuje tylko zmienną x z pliku nazwa_pliku Do usuwanie zmiennych z przestrzeni roboczej służy funkcja clear: clear - usuwa wszystkie zmienne z przestrzeni roboczej clear x y - usuwa tylko zmienne x i y

3. Operacje na macierzach Macierz jest podstawowym obiektem Matlaba. Matlab jest językiem programowania zoptymalizowanym pod względem wykonywania operacji macierzowych. 3.1. Tworzenie macierzy Macierz tworzymy za pomocą nawiasów kwadratowych. Elementy macierzy wpisujemy po kolei wiersz po wierszu. Elementy w wierszu (czyli poszczególne kolumny) są oddzielone spacją lub przecinkiem, natomiast przejście do następnego wiersza symbolizuje średnik, np.: A=[1 2;3 4] A = 1 2 3 4 B=[8 7;6 5] B = 8 7 6 5 C = [1 2; 4 5; 6 7] C = 1 2 4 5 6 7 3.2. Dodawanie macierzy A+B 9 9 9 9 3.3. Odejmowanie macierzy A-B -7-5 -3-1 3.4. Mnożenie macierzowe Uwaga: przy mnożeniu A*B liczba kolumn macierzy A musi być równa liczbie wierszy macierzy B. A*B 20 17 48 41 Jeżeli powyższy warunek nie jest spełniony generowany jest komunikat o błędzie, np.: A*C??? Error using ==> * Inner matrix dimensions must agree (wymiary macierzy muszą się zgadzać) 3.5. Mnożenie tablicowe (z kropką) Mnożenie tablicowe różni się zasadniczo od macierzowego, polega ono na mnożeniu odpowiadających sobie elementów (o takich samych indeksach), np.:

A.*B 8 14 18 20 Uwaga: W tym przypadku wymiary obu macierzy muszą być jednakowe! 3.6. Transpozycja macierzy (apostrof) A' 1 3 2 4 3.7. Wyznacznik macierzy det(a) -2 3.8. Wymiar macierzy rank(a) 2 3.9. Odwrotność macierzy inv(a) -2.0000 1.0000 1.5000-0.5000 3.10. Potęgowanie macierzowe A^2 7 10 15 22 3.11. Potęgowanie tablicowe (z kropką) Podobnie jak w przypadku mnożenia tablicowego, do potęgi podnoszony jest każdy element macierzy, np.: A.^2 1 4 9 16 3.12. Odwoływanie się do elementów macierzy Znajomość operacji na poszczególnych elementach macierzy jest kluczowa dla zrozumienia języka Matlab. Załóżmy, że mamy macierz o wymiarach 3x3, np.: E=[1 2 3;4 5 6;7 8 9] E = 1 2 3 4 5 6 7 8 9 Element o indeksie (1,1) czyli na przecięciu pierwszego wiersza i pierwszej kolumny:

E(1,1) 1 Element o indeksie (2,3) czyli na przecięciu drugiego wiersza i trzeciej kolumny: E(2,3) 6 Podmacierz składająca się z trzeciego wiersza i kolumny od pierwszej do drugiej: E(3,1:2) 7 8 Podmacierz składająca się z drugiego wiersza i wszystkich kolumn: E(2,:) 4 5 6 Podmacierz składająca się ze wszystkich wierszy i drugiej kolumny: E(:,2) 2 5 8 Podmacierz składająca się z wiersza od pierwszego do drugiego i wszystkich kolumn: E(1:2,:) 1 2 3 4 5 6 Zamiana macierzy na wektor kolumnowy: E(:) 1 4 7 2 5 8 3 6 9 Przydatna sztuczka: Jak uzyskać wektor z połączonych wierszy? Należy wykonać dwie poniższe operacje: F=E' najpierw transpozycja macierzy E i zapisanie wyniku do macierzy F F(:)' następnie zamiana macierzy F na wektor kolumnowy i transpozycja wyniku 1 2 3 4 5 6 7 8 9 Operator : (dwukropek) Inne zastosowania dwukropka to tworzenie wektorów o elementach oddalonych od siebie o taką samą wartość, np. wpisanie polecenia: 1:10 daje w wyniku wektor liczb od 1 do 10:

1 2 3 4 5 6 7 8 9 10 Domyślna inkrementacja wynosi 1 ale można podać dowolną, np.: 1:2:10 daje w wyniku wektor liczb od 1 do 10 z krokiem 2: 1 3 5 7 9 Można zastosować inkrementację ujemną, np.: 10:-2:1 10 8 6 4 2 4. Wykorzystanie rachunku macierzowego do rozwiązywania układów równań 4.1. Przykład z macierzą kwadratową Rozwiązać układ równań: 3x1 + 2x2 + x3 = 5 2x1 + 3x2 + x3 = 1 2x1 + x2 + 3x3 = 11 W zapisie macierzowym równanie to można przedstawić w następującej formie: A * x = b gdzie A jest macierzą a x oraz b są wektorami. Najpierw zatem należy utworzyć A i b: A=[3 2 1;2 3 1;2 1 3] A = 3 2 1 2 3 1 2 1 3 b=[5;1;11] b = 5 1 11 Rozwiązaniem układu równań liniowych o postaci: A * x = b jest: x = A -1 * b W tym przypadku A jest kwadratowa, więc rozwiązanie można uzyskać z zależności: x = inv(a)*b co daje w wyniku: x = 2.0000-2.0000 3.0000 4.2. Przykład z macierzą prostokątną Rozwiązać układ równań: 2x1 + 5x2 = 7 3x1 x2 = 2 4x1 + 6x2 = 10

Postępujemy podobnie jak w poprzednim przykładzie A=[2 5;3-1;4 6] A = 2 5 3-1 4 6 b=[7;2;10] b = 7 2 10 Jednak usiłując odwrócić macierz A dostajemy w typ przypadku komunikat błędu: inv(a)*b??? Error using ==> inv Matrix must be square. Nie można tu użyć funkcji odwracania macierzy, bo A nie jest prostokątna. Wyjściem z sytuacji jest zastosowanie operatora dzielenia lewostronnego \ używanego m.in. do rozwiązywania układu równań liniowych o postaci: A * x = b rozwiązanie otrzymujemy z zależności: x = A \ b Matlab automatycznie dokonuje wyboru optymalnej metody rozwiązania w zależności od struktury macierzy A. W wyniku otrzymujemy: x=a\b x = 1.0000 1.0000 5. Clown inny przykład wykorzystania macierzy Macierze mogą służyć nie tylko do obliczeń numerycznych. Oto przykład. Wczytaj dane: load clown Sprawdź co zostało wczytane: whos Name Size Bytes Class X 200x320 512000 double array caption 2x1 4 char array map 81x3 1944 double array Jak widać mamy tu między innymi macierz X o wymiarach 200x320. Podglądnij kawałek tej macierzy o wymiarach 10x10: X(1:10,1:10) Następnie zastosuj funkcję image (do wyświetlania obrazów) oraz colormap (do ustawiania mapy kolorów): image(x), colormap(map) Zastanów się co oznaczają wartości w macierzy X.