počítačové modelování dynamických systémů
DESCRIPTION
Počítačové modelování dynamických systémů. 2. cvičení. katedra elektrotechniky a automatizace. Miloslav LINDA. komplexní čísla matice a vektory polynom řetězcové proměnné řady if a for vykreslování tvorba vlastních funkcí integrály a derivace. Komplexní čísla. - PowerPoint PPT PresentationTRANSCRIPT
Počítačové modelování Počítačové modelování dynamických systémůdynamických systémů
2. cvičení2. cvičení
Miloslav LINDAMiloslav LINDAkatedra elektrotechniky a automatizacekatedra elektrotechniky a automatizace
• komplexní číslakomplexní čísla• matice a vektorymatice a vektory
• polynompolynom
• řetězcové proměnnéřetězcové proměnné
• řadyřady
• if a forif a for
• vykreslovánívykreslování
• tvorba vlastních funkcítvorba vlastních funkcí
• integrály a derivaceintegrály a derivace
Komplexní číslaKomplexní čísla
- komplexní čísla jsou v Matlabu definována - komplexní čísla jsou v Matlabu definována symboly symboly ii a a jj
c=1+2ic=1+2i
c2=10*exp(pi/2*i)c2=10*exp(pi/2*i)
real(c)real(c) - zobrazí reálnou část komplexního čísla - zobrazí reálnou část komplexního čísla
imag(c)imag(c) - zobrazí imaginární část komplexního čísla- zobrazí imaginární část komplexního čísla
komplexní číslakomplexní čísla
conj(c)conj(c) - komplexně sdružené číslo- komplexně sdružené číslo
angle(c)angle(c) - vypíše úhel- vypíše úhel k reálné osek reálné ose
abs(c)abs(c) - vypíše absolutní hodnotu komplexního čísla- vypíše absolutní hodnotu komplexního čísla
• komplexní číslakomplexní čísla
• matice a vektorymatice a vektory• polynompolynom
• řetězcové proměnnéřetězcové proměnné
• řadyřady
• if a forif a for
• vykreslovánívykreslování
• tvorba vlastních funkcítvorba vlastních funkcí
• integrály a derivaceintegrály a derivace
Matice a vektoryMatice a vektory
- na matice a vektory lze aplikovat - na matice a vektory lze aplikovat ++, , --, , **, , //
A=A=[[xx1111,x,x1212,x,x1313; x; x2121,x,x2222,x,x2323]]
a=a=[[1;2;3;4;51;2;3;4;5]] - sloupcový vektor, oddělovač - sloupcový vektor, oddělovač ;;
b=b=[[1,2,3,4,51,2,3,4,5]] - řádkový vektor oddělovač - řádkový vektor oddělovač ,,
aa’’ - transpozice matice („- transpozice matice („aa’’=b=b“)“)
matice a vektorymatice a vektory
eye(c)eye(c) - jednotková matice- jednotková matice
ones(m,n)ones(m,n) - jedničková matice- jedničková matice
zeros(m,n)zeros(m,n) - nulová matice- nulová matice
rand(c)rand(c) - matice náhodných čísel s - matice náhodných čísel s rovnoměrným rozdělenímrovnoměrným rozdělením
randn(c)randn(c) - matice náhodných čísel s norm. - matice náhodných čísel s norm. rozd.rozd.
det(A)det(A) determinant maticedeterminant matice
inv(A)inv(A) inverze maticeinverze matice
matice a vektorymatice a vektory
A(:,n)A(:,n) - vypíše n-tý sloupec matice- vypíše n-tý sloupec matice
A(m,:)A(m,:) - vypíše m-tý řádek matice- vypíše m-tý řádek matice
A(m,n)=5A(m,n)=5 - na pozici - na pozici [[m,nm,n]] uloží uloží ““55””
size(A)size(A) - rozměry matice- rozměry matice
diag(A)diag(A) - prvky matice na giagonále- prvky matice na giagonále
sqrtm(A)sqrtm(A) - maticová odmocnina- maticová odmocnina
matice a vektorymatice a vektory
expm(A)expm(A) - maticová exponenciála- maticová exponenciála
logm(A)logm(A) - logaritmus matice- logaritmus matice
poly(A)poly(A) - charakteristický polynom- charakteristický polynom
max(A)max(A) - maximální prvek vektorů matice- maximální prvek vektorů matice
min(A)min(A) - minimální prvek vektorů matice- minimální prvek vektorů matice
.*, ..*, .^̂, ./, ., ./, .\\ - operace prvek po prvku, použití '- operace prvek po prvku, použití '.'.'
matice a vektorymatice a vektory
fliplr(A)fliplr(A) - vertikální překlopení matice- vertikální překlopení matice
flipud(A)flipud(A) - horizontální překlopení matice- horizontální překlopení matice
rot90(A)rot90(A) - rotace matice, doleva- rotace matice, doleva
tril(A)tril(A) - vyjmutí dolní trojúhelníkové části- vyjmutí dolní trojúhelníkové části
triu(A)triu(A) - vyjmutí horní trojúhelníkové části- vyjmutí horní trojúhelníkové části
crosscross - vektorový součin- vektorový součin
dotdot - skalární součin- skalární součin
matice a vektorymatice a vektory
find(A)find(A) - nalezení indexů nenulových prvků- nalezení indexů nenulových prvků
nnz(A)nnz(A) - počet nenulových prvků- počet nenulových prvků
nonzeros(A)nonzeros(A) - nenulové prvky- nenulové prvky
spones(A)spones(A) - nahrazení nenulových prvků - nahrazení nenulových prvků jedničkamijedničkami
colmmd(A)colmmd(A) - sloupcové přetřídění- sloupcové přetřídění
colperm(A)colperm(A) - sloupcové přetřídění podle počtu - sloupcové přetřídění podle počtu nenulových prvkůnenulových prvků
• komplexní číslakomplexní čísla
• matice a vektorymatice a vektory
• polynompolynom• řetězcové proměnnéřetězcové proměnné
• řadyřady
• if a forif a for
• vykreslovánívykreslování
• tvorba vlastních funkcítvorba vlastních funkcí
• integrály a derivaceintegrály a derivace
PolynomPolynom
y(x)=2xy(x)=2x55-3x-3x44+x+x22-4x-2-4x-2
p=p=[[aa44,a,a33,a,a22,a,a11,a,a00]] - zadání polynomu- zadání polynomu
conv(p,q)conv(p,q)- násobení polynomu p, q- násobení polynomu p, q
[[c,hc,h]]=deconv(p,q)=deconv(p,q)
- dělení polynomu p, q- dělení polynomu p, q
polynompolynom
polyval(p,x)polyval(p,x)
- vyčíslení polynomu - vyčíslení polynomu pp pro všechna pro všechna xx
roots(p)roots(p)
- kořeny polynomu- kořeny polynomu
help elfunhelp elfun help specfunhelp specfun
- help pro další funkce- help pro další funkce
polynompolynom
- rozklad na parciální zlomky- rozklad na parciální zlomky
[[d,gd,g]]=residue(a,b)=residue(a,b)
a=a=[3,-10][3,-10]
bb==[[1,-7,121,-7,12]]
dd 22 gg 44
11 33
12x7x
10x3y
2
3x
1
4x
2y
polynompolynom
polyfitpolyfit - proložení dat polynomem- proložení dat polynomem
interp1interp1 - interpolace v 1-D- interpolace v 1-D
interp2interp2 - interpolace ve 2-D- interpolace ve 2-D
interpftinterpft - interpolace v 1-D pomocí FFT- interpolace v 1-D pomocí FFT
• komplexní číslakomplexní čísla
• matice a vektorymatice a vektory
• polynompolynom
• řetězcové proměnnéřetězcové proměnné• řadyřady
• if a forif a for
• vykreslovánívykreslování
• tvorba vlastních funkcítvorba vlastních funkcí
• integrály a derivaceintegrály a derivace
Řetězcové proměnnéŘetězcové proměnné
t=t=‘retezec’‘retezec’ - zadání řetězce- zadání řetězce
length(t)length(t) - vypíše délku řetězce- vypíše délku řetězce
t(c)t(c) - zobrazý - zobrazý c-týc-tý znak řetězce znak řetězce
t(c:end)t(c:end) - vypíše od c do konce řetězce- vypíše od c do konce řetězce
t(end:-1:1)t(end:-1:1) - vypíše řetězec pozpátku- vypíše řetězec pozpátku
řetězcové proměnnéřetězcové proměnné
double(double(‘‘AA’’)) - vypíše ascii hodnotu- vypíše ascii hodnotu
char(66)char(66) - a naopak- a naopak
- - ‘‘sloučenísloučení’’ dvou řetězců dvou řetězců
sec_ret=sec_ret=[‘[‘pokpok’,’’,’usus’]’]
- práce s řetězcem z klávesnice- práce s řetězcem z klávesnice
proměnná = input(proměnná = input(‘‘zadej:zadej:’’))
řetězce - konverzeřetězce - konverze
absabs - konverze řetězce na číslo- konverze řetězce na číslo
str2matstr2mat - konverze řetězce na číslo- konverze řetězce na číslo
str2numstr2num - konverze řetězce na číslo- konverze řetězce na číslo
int2strint2str - konverze celého čísla na řetězec- konverze celého čísla na řetězec
num2strnum2str - konverze řetězce na číslo- konverze řetězce na číslo
řetězce - konverzeřetězce - konverze
dec2hexdec2hex - konverze čísla dekadického na - konverze čísla dekadického na hexadecimálníhexadecimální
hex2dechex2dec - konverze čísla hexadecimálního na - konverze čísla hexadecimálního na dekadickédekadické
hex2numhex2num - konverze hexadecimálního čísla na - konverze hexadecimálního čísla na
doubledouble
řetězceřetězce
blanksblanks - generování řetězce mezer- generování řetězce mezer
deblankdeblank - odstranění mezer z konce řetězce- odstranění mezer z konce řetězce
findstrfindstr - hledá výskyt jednoho řetězce v druhém- hledá výskyt jednoho řetězce v druhém
isletterisletter - test znaku z abecedy- test znaku z abecedy
isstrisstr - test řetězce- test řetězce
lowerlower - konverze na malá písmena- konverze na malá písmena
upperupper - konverze na velká písmena- konverze na velká písmena
řetězceřetězce
strcmpstrcmp - porovnání řetězců- porovnání řetězců
strrepstrrep - nahrazení části řetězce jiným- nahrazení části řetězce jiným
• komplexní číslakomplexní čísla
• matice a vektorymatice a vektory
• polynompolynom
• řetězcové proměnnéřetězcové proměnné
• řadyřady• if a forif a for
• vykreslovánívykreslování
• tvorba vlastních funkcítvorba vlastních funkcí
• integrály a derivaceintegrály a derivace
Tvorba řady číselTvorba řady čísel
- několik variant na tvorbu řady čísel- několik variant na tvorbu řady čísel
x=x=[0,45,90,135,180][0,45,90,135,180]- přímé zadání řady čísel- přímé zadání řady čísel
xx=linspace(0,10,5)=linspace(0,10,5)- 5 čísel od 0 do 10- 5 čísel od 0 do 10
x=logspace(1,2,100)x=logspace(1,2,100)- 100 čísel od 10- 100 čísel od 1011 do 10 do 1022
řadyřady
x=1:5x=1:5- řada od 1 do 5, krokem 1 (standardní krok)- řada od 1 do 5, krokem 1 (standardní krok)
x=1:2:5x=1:2:5- řada od 1 do 5, krokem 2 (zvolený krok)- řada od 1 do 5, krokem 2 (zvolený krok)
““počáteční hodnota:krok:konečná hodnotapočáteční hodnota:krok:konečná hodnota””
A=A=[[1:5;5:-1:11:5;5:-1:1]]- matice- matice
řadyřady
cumprodcumprod - kumulativní součin prvků - kumulativní součin prvků
cumsumcumsum - kumulativní sučet prvků- kumulativní sučet prvků
maxmax - největší prvek- největší prvek
meanmean - průměr- průměr
medianmedian - medián- medián
minmin - nejmenší prvek- nejmenší prvek
prodprod - součin prvků- součin prvků
řadyřady
sortsort - setřídění prvků- setřídění prvků
stdstd - standardní odchylka- standardní odchylka
sumsum - součet prvků- součet prvků
diffdiff - diference mezi prvky- diference mezi prvky
corrcoefcorrcoef - korelační koeficienty- korelační koeficienty
covcov - kovarianční matice- kovarianční matice
• komplexní číslakomplexní čísla
• matice a vektorymatice a vektory
• polynompolynom
• řetězcové proměnnéřetězcové proměnné
• řadyřady
• if a forif a for• vykreslovánívykreslování
• tvorba vlastních funkcítvorba vlastních funkcí
• integrály a derivaceintegrály a derivace
Funkce a operátoryFunkce a operátory
&&, and, and - logický součin- logický součin
!, or!, or - logický součet- logický součet
~~, not, not - negace- negace
xorxor - exclusive or- exclusive or
anyany - true, nenulový jeden- true, nenulový jeden
allall - true, nenulové všechny- true, nenulové všechny
&& - AND&& - AND; ; |||| - OR; ! - OR; ! - - NOT (užití ve Stateflow)NOT (užití ve Stateflow)
funkce a operátoryfunkce a operátory
<, <, lltt(a,b)(a,b) >, gt>, gt(,)(,) - menší, větší než- menší, větší než
<<==, , le(,)le(,) >>==, g, ge(,)e(,) - menší, větší nebo rovno- menší, větší nebo rovno
==, eg(,)==, eg(,) - rovnost- rovnost
~~=, ne(,)=, ne(,) - nerovnost- nerovnost
- příklad zápisu- příklad zápisu
AA>>B B nebo nebo gt(A,B)gt(A,B)
cykly - ifcykly - if
if výrazif výrazpříkazypříkazy
endend----------------------------------------------------------------------------------------------------------------------------------------------------------
a=2a=2
if aif a>>11
disp(disp(‘‘a je vetsi nez jednaa je vetsi nez jedna’’))
elseif aelseif a<<11
disp(disp(‘‘a je menší nez jednaa je menší nez jedna’’))
elseelse
disp(disp(‘‘a je jednaa je jedna’’))
endend
cykly - forcykly - for
for výrazfor výrazpříkazypříkazy
endend----------------------------------------------------------------------------------------------------------------------------------------------------------
clear allclear all
for i=1:3for i=1:3
for j=1:3for j=1:3
x(i,j)=ix(i,j)=i^̂2+j2+j^̂22
endend
endend
switch-caseswitch-case
- rozhodovací nabídka- rozhodovací nabídka
switch výrazswitch výraz
case podmínka_1case podmínka_1
příkazypříkazy
case podmínka_2case podmínka_2
příkazypříkazy
otherwiseotherwise
příkazypříkazy
endend----------------------------------------------------------------------------------------------------------------------------------------------------------
breakbreak - slouží k opuštění podmínky - slouží k opuštění podmínky
konec, další příštěkonec, další příště