Prezentacja programu PowerPoint - pg.edu.pl wykład 1.pdf · •Prezentacja wyników symulacji w...
Transcript of Prezentacja programu PowerPoint - pg.edu.pl wykład 1.pdf · •Prezentacja wyników symulacji w...
dr inż. Marcin Ciołek
Katedra Systemów Automatyki
Wydział ETI, Politechnika Gdańska
Języki Modelowania i Symulacji 2018
Wprowadzenie: MATLABWykład 1
dr inż. Marcin Ciołek
Katedra Systemów Automatyki
Konsultacje: wtorek 11:15-15
Pokój: ETI EA 546
e-mail: [email protected]
e-wizytówka: http://pg.edu.pl/marciole
Języki Modelowania i Symulacji
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Struktura przedmiotu
Wykład: 30 godzin dydaktycznych
Laboratorium: 30 godzin dydaktycznych
1. O przedmiocie
2. Modelowanie i symulacje
3. MATLAB
4. Help
5. Typy danych
6. Liczby, wektory, macierze, wielomiany
7. Podsumowanie
O czym będziemy mówili
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Zasady zaliczenia
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Ocena końcowa:
Egzamin (50%) i Laboratorium (50%)
Ocena Wynik z egzaminu [%]
Średnia ocen
5 <90,100> <4,75 – 5>
4+ <80,90) <4,25 – 4,5>
4 <70,80) <3,75 – 4>
3+ <60,70) <3,25 – 3,5>
3 <50,60) 3
Zasady zaliczenia
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Ocena 5 zamiast Egzaminu?! systematyczna i aktywna praca
Zasady gry Punkty[%]
komentarz
Punkty na start 20 % dla każdego
Nieobecność – 5 % za każdą nieobecność
Zadaniadomowe z wykładu
1 – 15 % 3 zadania, każde po 5%, sprawozdanie
ocena 5 = 100%
*plagiat sprawozdania = wykluczenie z gry
*koniec zabawy, ale mam mniej niż 100%pozytywny wynik z egzaminu + punkty/2
Zasady zaliczenia
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Egzamin Laboratorium
Egzamin w terminie podstawowym oraz w terminie poprawkowym
Pytania otwarte i zamknięte
Zapoznanie się z pakietem obliczeniowym MATLAB [3 spotkania]
Dwa sprawdziany (50% oceny z laboratorium, minimum ocena 3)
Projekt z cyfrowego przetwarzania sygnałów realizowany (pojedynczo/w parach, 50% oceny z laboratorium, minimum ocena 3)[5 spotkań]
Statystka
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
0%
20%
40%
60%
80%
100%
2011 2012 2013 2014 2015 2016 2017
Wybór sposobu zaliczenia wśród studentów
Pisali Egzamin Otrzymali ocenę 5 z gry
Sprawozdanie - wymagania
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
• Zbiór sprawozdań wysyłamy najpóźniej do 20 stycznia
• Opis problemu (wzory, schematy)
• Prezentacja wyników symulacji w formie tabel, rysunków
• Dyskusja i wnioski na podstawie wskazanej literatury
Rysunki
• muszą być czytelne
• podpisane osie
• legenda
Literatura do omawianych zagadnień
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Literatura
1. Tomasz P. Zieliński, Cyfrowe przetwarzanie sygnałów: od teorii do zastosowań, Warszawa 2005.
2. F. Golnarghi and B.C. Kuo, Automatic Control Systems 9th edition, Wiley 2009.
3. K. Ogata, Modern Control Engineering 5th edition, Prentice Hall 2010.
Organizacja pojedynczego wykładu
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
1. Sprawdzenie obecności
2. Powtórzenie wiadomości z ostatniego wykładu
3. Omówienie nowych zagadnień
4. Podsumowanie wykładu
5. Omówienie zadań domowych
Cel wykładu
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Przekazanie podstawowej wiedzy dotyczącejmodelowanie i symulacji z zakresu Automatyki iRobotyki oraz Cyfrowego Przetwarzania Sygnałówz wykorzystaniem pakietu obliczeniowego MATLAB
Zainspirowanie do dalszego zdobywania wiedzy orazwykorzystywania jej do tworzenia praktycznychaplikacji
Umiejętności
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
• podstawowa znajomość pakietu obliczeniowego MATLAB
• wykorzystanie MATLAB'a do rozwiązywania problemów z zakresu
Automatyki i Robotyki oraz Cyfrowego przetwarzania sygnałów
• numeryczne rozwiązywanie równań różniczkowych zwyczajnych
• dobór modelu, scenariusza symulacji, kryteriów obiektywnej i
subiektywnej oceny wyników
Umiejętności
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
• graficzna prezentacja wyników
• implementacja oraz weryfikacja poprawności działania algorytmów
• optymalizacja działania symulacji (operacje na macierzach i
wektorach, rekursje, Profiler, klaster obliczeniowy Tryton)
1. O przedmiocie
2. Modelowanie i symulacje
3. MATLAB
4. Help
5. Typy danych
6. Liczby, wektory, macierze, wielomiany
7. Podsumowanie
O czym będziemy mówili
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Modelowanie i Symulacja
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Jaka jest różnica pomiędzy modelowaniem a symulacją?
Modelowanie i symulowanie
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
• Modelowanie – wyprowadzenie równań matematycznych reprezentujących proces fizyczny (sygnał, system, zjawisko)
• Symulowanie – procedura rozwiązywania równań, które są wynikiem modelowania
Modelowanie i symulowanie
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Budując model matematyczny pewnego procesu fizycznego możemywybrać jedną z dwóch podejść: podejście „fizyczne” lub instrumentalne
podejście fizyczne - wykorzystanie podstawowych praw fizyki do opisuzachowanie procesu dynamicznego (prawa Newtona, prawa zachowania,równania równowagi)
szeregowe połączenie układu RLC może być reprezentowane przezrównanie różniczkowe
𝑅𝑖 𝑡 + 𝐿𝑑𝑖(𝑡)
𝑑𝑡+1
𝐶න 𝑖 𝑡 𝑑𝑡 = 𝑒(𝑡)
Modelowanie i symulowanie
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Podejście instrumentalne zakłada dopasowanie modelu dosygnału/systemu. Współczynnki modelu nie posiadają fizycznejinterpretacji. Identyfikacja modelu nie jest celem samym w sobie, alezazwyczaj rozwiązanie problemu zależy w bezpośredni sposób odestymowanego modelu.
𝑦 𝑡 =
𝑖=1
𝑛
𝑎𝑖𝑦 𝑡 − 𝑖 + 𝑛(𝑡)
gdzie 𝑎𝑖 oznaczają współczynniki autoregresji, a 𝑛(𝑡) jest zmienną losowąo rozkładzie normalnym, o zerowej wartości średniej i wariancji 𝜌.
Załóżmy, że dyskretny sygnał 𝑦(𝑡) może być opisany modelemautoregresyjnym rzędu 𝑛
1. O przedmiocie
2. Modelowanie i symulacje
3. MATLAB
4. Help
5. Typy danych
6. Liczby, wektory, macierze, wielomiany
7. Podsumowanie
O czym będziemy mówili
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
• intuicyjna obsługa
• użyteczna pomoc z wieloma przykładami i z solidnym opisem
• numeryczne obliczenia na macierzach i wektorach
• duża liczba funkcji, przyborników, aplikacje (np. automatyka, identyfikacjasystemów)
• rysowanie dwu i trójwymiarowych wykresów funkcji
• zrównoleglenie obliczeń (CI TASK klaster Tryton)
• ...
Aktualna wersja: R2018a, licencja płatna
Alternatywne oprogramownie: Octave, RStudio, Scilab (open source)
MATALAB - program komputerowy będący interaktywnym środowiskiem dowykonywania obliczeń naukowych i inżynierskich, do tworzenia symulacjikomputerowych, oraz do łatwej wizualizacji wyników
MATLAB
20© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Początki MATLAB'a By Cleve Moler, MathWorks (published 2004)
21© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
A 1975 textbook by Niklaus Wirth,
who later developed PASCAL
"MATLAB is now a full-featured technical computing environment, but it startedas a simple “Matrix Laboratory.” Three men, J. H. Wilkinson, George Forsythe,and John Todd, played important roles in the origins of MATLAB. Our accountbegins more than 50 years ago."
The EISPACK manual was published in
1976 and the LINPACK manual in 1979.
"When we were developing EISPACK (matrix eigenvalue computation) and
LINPACK (solving linear equations), I was a math professor at the University of
New Mexico, teaching numerical analysis and matrix theory. I wanted my students
to be able to use our new packages without writing Fortran programs, so I studied
a book by Niklaus Wirth to learn about parsing computer languages."
https://au.mathworks.com/company/newsletters/articles/the-origins-of-matlab.html
"My 1965 Ph.D. thesis under Forsythe’s direction was entitled “Finite Difference
Methods for the Eigenvalues of Laplace’s Operator.” The primary example, on
which both Forsythe and Wilkinson had worked earlier, was the L-shaped
membrane, now the MathWorks logo."
Początki MATLAB'a By Cleve Moler, MathWorks (published 2004)
22© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
"In the late 1970s, following Wirth’s methodology, I used Fortran and portions of LINPACK and EISPACK to
develop the first version of MATLAB. The only data type was “matrix.” There were only 80 functions.
There were no M-files or toolboxes."
https://au.mathworks.com/company/newsletters/articles/the-origins-of-matlab.html
pi = 4*atan(1);x = 0:pi/40:2*pi;y = x.*sin(3*x);plot(x,y)
"This first Fortran MATLAB was portable and could be compiled to run on many of the computers that were available in the late 1970s and early 1980s. "
"I visited Stanford in 1979 and taught CS237, the graduate numerical analysis course. I had the studentsuse MATLAB for some of the homework. Half of the students in the class were from math and computerscience, and they were not impressed by my new program. It was based on Fortran, it was not aparticularly powerful programming language, and it did not represent current research work in numericalanalysis. The other half of the students were from engineering, and they liked MATLAB. They werestudying subjects that I didn’t know anything about, such as control analysis and signal processing , andthe emphasis on matrices in MATLAB proved to be very useful to them."
Początki MATLAB'a By Cleve Moler, MathWorks (published 2004)
23© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
https://au.mathworks.com/company/newsletters/articles/the-origins-of-matlab.html
"A few of the Stanford engineering students from my class joined two consulting companies inPalo Alto. These companies extended MATLAB to have more capability in control analysis andsignal processing and, in the early 1980s, offered the resulting software as commercialproducts."
"Jack Little, a Stanford- and MIT-trained control engineer, was the principal developer of one ofthe first commercial products based on Fortran MATLAB. When IBM announced their first PC inAugust, 1981, Jack quickly anticipated the possibility of using MATLAB and the PC for technicalcomputing. He and colleague Steve Bangert reprogrammed MATLAB in C and added M-files,toolboxes, and more powerful graphics.
The three of us founded The MathWorks in California in 1984."
MATLAB
24
MATLAB
Sygnały (mowy, muzyczne,
akustyczne biomedyczne,
ekonometryczne,
sejsmologiczne,...)
Systemy
Obrazy
Zbiory danych uczących
Analiza danych w dziedzinie
czasu/częstotliwości
Identyfikacja sygnałów/systemów
Projektowanie systemów sterowania
Transformacja, filtracja
Projektowanie i trenowanie sieci
neuronowych
Generowanie sygnałów, funkcji,
tworzenie systemów
Karty akwizycji danych, przetwarzanie w czasie rzeczywistym
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Intuicyjna obsługa
25
• Command Window• Workspace• Editor• Current Folder• Figure
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Intuicyjna obsługa
26
• zmienne
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Intuicyjna obsługa
27© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Do podstawowej wersji MATLAB'a/SIMULINK'a należy zakupić licencje na interesujące nas pakiety
Wybrane pakiety• Parallel Computing Toolbox• Control System Toolbox• System Identification Toolbox• Robotics System Toolbox• Signal Processing Toolbox• Image Processing Toolbox• Econometrics Toolbox• Bioinformatics Toolbox• Database Toolbox• DSP System Toolbox• Audio System Toolbox• ...
Kategorie• Parallel Computing• Math, Statistics, and Optimization• Control Systems• Signal Processing and Wireless Communications• Image Processing and Computer Vision• Test and Measurement• Computational Finance• Computational Biology• Code Generation• Application Deployment• Database Access and Reporting• ...
Pakiety (Toolbox)
28© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Basic Functions Category
sin, cos, tan, ctg Trigonometry
exp, log10, log, expm, logm
Exponents and Logarithms
max, min, mean, sum, std var, median
Descriptive Statistics
fft, conv Fourier Analysis and Filtering
Control System toolbox
Description
ss Create state-spacemodel
tf Create transfer function model
zpk Create zero-pole-gainmodel
feedback Feedback connection of two models
Funkcje
29© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Aplikacje
30© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Aplikacje: Filter Designer
31© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Aplikacje: Control System Designer
32© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Aplikacje: PID Tuner
33© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
1. O przedmiocie
2. Modelowanie i symulacje
3. MATLAB
4. Help
5. Typy danych
6. Liczby, wektory, macierze, wielomiany
7. Podsumowanie
O czym będziemy mówili
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help
35© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
36© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help: Syntax
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
37© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help: Description
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
38© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help: Examples
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
39© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help: More About
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
40© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help: Tips
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
41© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help: References
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
42© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Help: See Also
Organizacja pomocy w MATLAB'ie• Syntax• Description• Examples• More About• Tips• References• See Also
43© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
1. O przedmiocie
2. Modelowanie i symulacje
3. MATLAB
4. Help
5. Typy danych
6. Liczby, wektory, macierze, wielomiany
7. Podsumowanie
O czym będziemy mówili
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Typy danych
45© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Precyzja
Typ IEEE 754 Pojedyncza Podwójna
Orientacyjny zakres 10−38… 1038 10−308… 10308
Orientacyjna precyzja 6 ∙ 10−8 10−16
Standard IEEE 754 definiuje dwa zasadnicze formaty reprezentacjizmiennoprzecinkowej liczb rzeczywistych oraz określa reguływykonywania działań arytmetycznych
MATLAB wykorzystuje podwójną precyzję w arytmetyce zmiennoprzecinkowej
𝜀 = 2.2204 ∙ 10−16 = 2−52
Typy danych
46© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
array
typ tablicowy
char
typ znakowy
numeric
typ numeryczny
double
typ podwójnej precyzji
sparse
typ rzadki
tryb pojedynczej precyzji
cel
typ komórkowy
struct
typ strukturalny
Przykłady
c = 'Kasia'imiona = char('Kasia', 'Ola')
r = 10k = single(10)
E = speye(1000)
A{1} = [1 2 3]A{2} = 'Ola'A{3} = true
pomiary(1).dzień = 13pomiary(1).dane = [1 2 3]pomiary(1).miejsce = 'Opole'
Zapamiętajnazwa = ['wyniki_' num2str(numer) '_sym']
Typy danych
47© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
MATLAB zapisuje zmienne numeryczne jako liczby zmiennoprzecinkoweo podówjnej precyzji i przeznacza na to 8 bajtów (64 bity)
Typy zmiennych
a = 'c'b = 'ab'
c = 0d = 5e = 10^20
f = single(5)g = true
ZapamiętajZero też zajmuje 8 bajtów
Format liczb
48© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Przykłady dostępnych formatów liczb
format short (domyślnie)
>> 3.455556
short – reprezentacja stałoprzecinkowa pięciocyfrowaans = 3.4556
long – reprezentacja stałoprzecinkowa piętnastocyfrowaans = 3.455556000000000
short e – reprezentacja zmiennoprzecinkowa pięciocyfrowaans = 3.4556e+00
long e – reprezentacja zmiennoprzecinkowa piętnastocyfrowa ans = 3.455556000000000e+00
1. O przedmiocie
2. Modelowanie i symulacje
3. MATLAB
4. Help
5. Typy danych
6. Liczby, wektory, macierze, wielomiany
7. Podsumowanie
O czym będziemy mówili
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Operatory
50© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Operatory relacji
< mniejsze od
<= mniejsze lub równe
> większe od
>= większe lub równe
== równe
~= nierówne (różne od)
Operatory logiczne
& iloczyn logiczny
| suma logiczna
~ negacja
xor różnica symetryczna
Operatory arytmetyczne
+ dodawanie
- odejmowanie
* mnożenie
/ dzielenie prawostronne
\ dzielenie lewostronne
^ potęga
.' (') transpozycja (transpozycja hermitowska)
przykłady
4/2 = 2 4\2 = 0.5𝑣 = [1 + 𝑖 1 − 𝑖]𝑣. ′ = 𝑣′ =
1 + 𝑖 1 − 𝑖1 − 𝑖 1 + 𝑖
wielkość liter ma znaczenie
C = 1 c = –4
liczby zespolone
z = 2 + 3i lub z = 2 + 3j
podstawowe operacje na liczbach zespolonych
real (z) >> 2imag(z) >> 3abs(z) >> sqrt(13)angle(z) >> atan2(imag(z),real(z))conj(z) >> 2 – 3i
podstawowe operacje na liczbach rzeczywistych
sqrt(c) >> 1.4142 ic^2 >> 16 exp(2) = 𝑒2
abs(c) >> 4logarytm naturalny/ o podstawie 10log(C)/log10(C)
zaokrąglanie liczb
round(1.6) >> 2 (l. całkowita)floor(–1.6) >> –2 (-> −∞) ceil(1.1) >> 2 (-> +∞) fix(–1.6) >> –1 (-> 0)
Zapamiętaj• niektóre liczby o skończonym rozwinięciu w
systemie dziesiętnym mają nieskończone rozwinięcie w systemie binarnym
• wielkość liter ma znaczenie• unikaj stosowania nazw zmiennych, które
pochodzą od nazw wbudowanych funkcji MATLABa np.: cos = 2 lub abs = 1
Liczby
51© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
wektor wierszowy/kolumnowy
v = [5 1 6] v = [5; 1; 6]
v(2) >> 1v(1:2) >> 5 1
transpozycja (z sprzężeniem)
v.' (v')
ZapamiętajW MATLAB'ie indeksowanie tablic zaczynamy od 1!
generowanie wektorów
v = 1:10 >> 1 2 ... 10v = 1:2:10 >> 1 3 ... 9v = 10:-1:1 >> 10 9 ... 1
v = zeros(m,1)v = ones(m,1)v = rand(m,1)
rozmiar wektora
[m,n] = size(v) >> m = 1 n = 3L = length(v) >> L = 3 isempty(v) >> false
Wektory
52© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
wektor wierszowy/kolumnowy
v = [5 1 6] v = [5; 1; 6]
rachunek wektorowy
𝑣𝑣𝑇 =25 5 305 1 630 6 36
𝑣𝑇𝑣 = 62
𝑣 =516
działania na elementach wektora
v.*vv./vv.^vv+vv-v
Zapamiętaj• przy wykonywaniu działań na wektorach wymiary wektorów muszą się zgadzać• stosowanie operatorów .* i ./ jest wydajniejsze niż stosowanie pętli for• dobrą praktyką jest definiowanie na początku rozmiaru wektora np. v = zeros(10,1)
podstawowe funkcje
sum(v) >> 12prod(v) >> 30mean(v) >> 4sort(v) >> 1 5 6cumsum(v) >> 5 6 12max(v) >> 6min(v) >> 1
brak zgodności rozmiarów
Error using * Inner matrix dimensions must agree.
Wektory
53© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
𝑦 =(1 − log10𝑥)
𝑥
expsin𝑥𝑥
przykład 1
𝑧 =
sin𝑥 cos𝑥𝑥
[σ𝑥𝑦]
tg(𝑥)
przykład 2
𝑦 =𝑥 σexp(𝑥−cos𝑥)/𝑥
ln𝑥
przykład 3
Przykłady
54© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
𝑦 =(1 − log10𝑥)
𝑥
expsin𝑥𝑥
przykład 1
y = ((1 - log10(x)) .^ x) ./ (exp(sin(x) ./ x))
𝑧 =
sin𝑥 cos𝑥𝑥
[σ𝑥𝑦]
tg(𝑥)
przykład 2
z = (sin(x) .* cos(x) ./ sqrt(x)) * (x .'* y) ./ tan(x)
𝑦 =𝑥 σexp(𝑥−cos𝑥)/𝑥
ln𝑥
przykład 3
y = (sum(exp( (x-cos(x)) ./ x )) ./ log(x)) .^ (1 ./ x)
Przykłady
55© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
A =5 1 6 06 2 4 −27 9 8 3
definiowanie macierzy
A = [5 1 6 0; 6 2 4 -2; 7 9 8 3]
macierze wielowymiarowe
A = zeros(2,2,2)
A(:,:,1) >> 0 0
0 0
A(:,:,2) >> 0 0
0 0
elementy macierzy
A(3,2) >> 9A(:,2) >> 1 2 9 A(2,:) >> 6 2 4 −2A(1:2,3:4) >> 6 0
4 −2
generowanie macierzy
A = zeros(2,2)>> 0 0
0 0
A = ones(2,2)>> 1 1
1 1
A = eye(2,2)>> 1 0
0 1
ZapamiętajW MATLAB'ie indeksowanie tablic zaczynamy od 1!
Macierze
56© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
A =5 1 6 06 2 4 −27 9 8 3
rozmiar macierzy
[m,n] = size(A)>> m = 3 n = 4
L = length(A) = max(size(A))>> L = 4
n = ndims(A)>> n = 2
n = numl(A)>> n = 12
isempty(A)>> no
podstawowe funkcje
sum(A)>> 18 12 18 1
sum(A,1)>> 18 12 18 1sum(A,2)>> 12 10 27
prod(A,1)>> 210 18 192 0prod(A,2)>> 0 −96 1512
mean(A,1)>> 6 4 6 1/3mean(A,2)>> 3 2.5 27/4
ZapamiętajŚwiadomie wybierz czy dokonujesz operacji na kolumnach czy wierszach macierzy!
Macierze
57© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Funkcja Opis
transpose(A) lub A.' transpozycja
A' transpozycja hermitowska
cond(A) wskaźnik uwarunkowania macierzy [1,inf]
rcond(A) odwrotność wskaźnikauwarunkowania macierzy [0,1]
det(A) wyznacznik macierzy
trace(A) ślad macierzy
inv(A) = A^-1 odwrotność macierzy
rank(A) rząd macierzy
eig(A) rozkład na wartości własne
diag(A) diagonalna
A = rand(m,n) macierz losowa o rozkładzie równomiarnym
ZapamiętajKorzystaj świadomie i rozważnie zwbudownaych funkcji MATLAB'a –zwłaszcza gdy macierz jest źleuwarunkowana
Podstawowe funkcje
58© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Macierz trójkątna dolna/górna z macierzy X
L = tril(X) U = triu(X)
1 0 04 2 05 6 3
1 4 50 2 60 0 3
Macierz hermitowska (liczby zespolone)/symetryczna (liczby rzeczywiste)
1 −𝑖𝑖 3
1 55 3
𝐴 = 𝐴𝑇𝐴 = 𝐴𝐻
Macierz osobliwa
det(A) = 0
Macierz ortogonalna (rzeczywista kwadratowa)
𝐴−1 = 𝐴𝑇
𝐴𝐴𝑇 = 𝐴𝑇𝐴 = 𝐼
𝐴 = [𝑎1…𝑎𝑖]
𝑎𝑖 = 1Macierz Toeplitza a=[1 4 5] b=[1 2 3]
toeplitz(a) toeplitz(a,b)
1 2 34 1 25 4 1
Macierz jednostkowa eye(3)
1 0 00 1 00 0 1
Macierz dodatnio określona
Dla każdego niezerowego, kolumnowego wektora 𝑥forma kwadratowa
𝑥𝑇𝐴𝑥 > 0
Macierze specjalne
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
1 4 54 1 45 4 1
Macierz zerowa zeros(2,3)
0 0 00 0 0
Macierz stała ones(2,3)
1 1 11 1 1
Macierz diagonalna v=[1 2 3] diag(v)
1 0 00 2 00 0 3
Macierz losowa rand(2,2)
0.2785 0.95750.5469 0.9649
Macierz losowa randn(2,2)
−1.3499 0.72543.0349 −0.0631
Symbolic Toolbox
60© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Pakiet MATLAB umożliwia wykonywanie obliczeń na symbolach
Tworzenie zmiennych
x = sym('x'); y = sym('y');
Wektory
a = sym('a', [1 4])a = [ a1, a2, a3, a4]
Macierze
A = sym('A',[3 4])A =[ A1_1, A1_2, A1_3, A1_4] [ A2_1, A2_2, A2_3, A2_4] [ A3_1, A3_2, A3_3, A3_4]
Macierze wielowymiarowe
A = sym('a',[2 2 2])A(:,:,1) = [ a1_1_1, a1_2_1] [ a2_1_1, a2_2_1] A(:,:,2) = [ a1_1_2, a1_2_2] [ a2_1_2, a2_2_2]
Wyrażenia matematyczne
h_expr = @(x)(sin(x) + cos(x)); sym_expr = sym(h_expr)sym_expr = cos(x) + sin(x)
solve
syms x eqn = sin(x) == 1; solx = solve(eqn,x)solx = pi/2
solve
syms a b c x eqn = a*x^2 + b*x + c == 0; sol = solve(eqn) sola = solve(eqn, a)sol = -(b + (b^2 - *a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a) sola = -(c + b*x)/x^2
Wielomiany
61© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Pakiet MATLAB umożliwia wykonywanie obliczeń na wielomianach
poly
p = [1 -2] – pierwiastkiw = poly(p); w = [1 1 -2]
roots
w = [1 1 -2] ;p = roots(w); p = [1 -2]
polyval
x = 2;y = polyval(x); y = 4
𝑤 𝑥 = 𝑥2 + 𝑥 − 2
conv
w = [1 1 -2]; z = [2 4 8];y = conv(w,z);
𝑤 𝑥 = 𝑥2 + 𝑥 − 2
𝑧 𝑥 = 2𝑥2 + 4𝑥 + 8
𝑦 𝑥 = 2𝑥4 + 6𝑥3 + 8𝑥2 − 16
dconv
w = [1 1 -2]; z = [2 4 8];w = dconv(y,z);
1. O przedmiocie
2. Modelowanie i symulacje
3. MATLAB
4. Help
5. Typy danych
6. Liczby, wektory, macierze, wielomiany
7. Podsumowanie
O czym będziemy mówili
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
Co muszę zapmiętać
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
• Modelowanie i symulacja• Do czego służy pakiet MATLAB• Typy danych• Liczby, wektory, macierze (specjalne), wielomiany• Operatory dwukropka(:) oraz (.* ./ .^ .\) • Podstawowe funkcje
Zadania domowe
© dr inż. Marcin Ciołek, Politechnika Gdańska, Katedra Systemów Automatyki, Wykład Języki Modelowania i Symulacji
1) Zaprezentuj działanie operatorów dwukropka (:) oraz (.* ./ .^ .\)
2) Przykłady: Liczby, wektory, macierze (specjalne), wielomiany
3) Podstawowe funkcje