wykład

Transkrypt

wykład
Wprowadzenie
do MATLABa
podstawowe operacje na macierzach
WYKŁAD © Piotr Ciskowski
MATLAB:
Computation
Visualization
Programming
easy to use environment
MATLAB = matrix laboratory
• podstawowa jednostka obliczeniowa: macierz
• obliczenia na macierzach bardzo łatwe i bardzo szybkie
• interpreter
• język programowania – funkcje i skrypty
• łatwość wizualizacji wyników
• środowisko graficzno-tekstowe – MATLAB & Simulink
• różne platformy sprzętowe - Windows, Linux, klastry…
• add-on toolboxes - zestawy funkcji dla konkretnych dziedzin
MATLAB = matrix laboratory
• add-on toolboxes:
Signal Processing Toolbox
Filter Design Toolbox
Communications Toolbox
Image Processing Toolbox
Wavelet Toolbox
Image Acquisition Toolbox
Optimization Toolbox
Control Toolbox
System Identification Toolbox
Neural Networks Toolbox
Bioinformatics Toolbox
Fuzzy Logic Toolbox
Symbolic Maths Toolbox
Statistics Toolbox
Partial Differential Equations Toolbox
Financial Toolbox
Distributed Computing Toolbox
Aerospace Toolbox
MATLAB = matrix laboratory
• MATLAB Compiler
• Excel Link
• MATLAB Builder for Excel
• MATLAB Builder for .NET
• MATLAB Builder for Java
» demo
» intro
» bench
» help
» help help
zmienne
» a = 3.1415
a =
3.1415
» a = 3.1415 ;
» sin(a)
ans =
9.2654e-005
• macierz
- w nawiasach:
- elementy w wierszu:
- wiersze oddzielamy:
- elementy:
• macierz pełna
• macierz rzadka
[ ]
<spacja> lub ,
;
liczby rzeczywiste
liczby zespolone
znaki
macierze - tworzenie
» A = [ 2
» A = [ 2
1
» A = [ 2
1
2
2
2
2
2
2
2
3
2
3
1
1
1
1
1
; 1 2 3 1 ]
;
]
; ...
]
% A2x4
% A2x4
» B = [ 1
» B = [ 1
5
» B = [ 1
5
2
2
6
2
6
3
3
7
3
7
4
4
8
4
8
5 6 7 8 ]
...
]
% A1x8
% A1x8
% A2x4
% A2x4
]
macierze - tworzenie
» C = [ 1+5j 2+6j ; 3+7j 4+8j ]
» C = [ 1 2 ; 3 4 ] + i * [ 5 6 ; 7 8 ]
macierze - tworzenie
• min : krok : max
• min : max
» D = [ 1:10 ; 1:2:20 ]
» E =
100 : -7 : 50
• F =
0 : pi/4 : pi
macierze - tworzenie
• eye ( n )
• eye (
m , n
)
• eye ( [ m , n ] )
macierz jednostkowa
• ones ( n )
• ones (
m , n
)
• ones ( [ m , n ] )
macierz jedynkowa
• zeros ( n )
• zeros (
m , n
)
• zeros ( [ m , n ] )
macierz zerowa
macierze - tworzenie
• rand
• rand
• rand
( n )
(
m , n
)
( [ m , n ] )
• randn ( n )
• randn (
m , n
)
• randn ( [ m , n ] )
• totolotek: …
rozkład jednostajny 0-1
rozkład normalny 0-1
macierze - tworzenie
• linspace ( x1 , x2 )
• linspace ( x1 , x2 , N )
ciąg liczb - liniowo
• logspace ( x1 , x2 )
• logspace ( x1 , x2 , N )
ciąg liczb - logarytmicznie
» A = linspace ( 0 , 20 , 5 )
» B = logspace ( 0 ,
3 , 4 )
macierze – dostęp do elementów
» A = [
•
•
•
•
•
•
•
•
A
A
A
A
A
(
(
(
(
(
i
i
:
i
1
0
1
,
,
,
:
:
j
:
j
k
2
9
1
3
8
0
4
7
0
5
6
2
)
)
)
, j
)
, j : k )
A (
:
)
A ( j : k )
6
5
2
;
;
] ;
A ( 1:2 , 5 )
A ( 1 , 1:4 )
A ( 1:2 , [ 5 6 1 2 ] )
macierze – dostęp do elementów
» A = [
1
0
1
2
9
1
3
8
0
4
7
0
5
6
2
6
5
2
;
;
] ;
• A ( i , : ) = [ ]
A ( 2 , : ) = [ ]
• A ( : , j ) = [ ]
A ( : , [ 3 4 ] ) = [ ]
macierze – działania
•
transpozycja macierzy
’
» A’
• +
-
» A + B
» A + c
dodawanie i odejmowanie macierzy i liczb
macierze – działania
•
*
» A * B
» A * b
mnożenie macierzy lub macierzy przez liczbę
Am× K ⋅ BK ×n = Cm×n
ci , j = Ai ,⋅ ⋅ B⋅, j
K
ci , j = ∑ ai ,k ⋅ bk , j
k =1
macierze – działania
•
.*
» A .* B
mnożenie tablicowe macierzy
Am×n ⋅ Bm×n = Cm×n
ci , j = ai , j ⋅ bi , j
mnożenie na planie dodawania
element-by-element multiplication
macierze – działania
•
/
» A / B
» A / b
•
\
» A \ B
» A \ b
dzielenie prawostronne macierzy
A * inv(B)
A * B^(-1)
dzielenie lewostronne macierzy
inv(A) * B
macierze – działania
•
./
dzielenie tablicowe (prawostronne) macierzy
» A ./ B
» A ./ b
•
.\
» A .\ B
» A .\ b
dzielenie tablicowe (lewostronne) macierzy
macierze – działania
•
^
» A
^ 3
•
.^
» A .^ 3
potęgowanie macierzy
A
* A
* A
potęgowanie tablicowe macierzy
A .* A .* A
funkcje
» help
elfun
» help specfun
» help
elmat
% elementary mathematical functions
% advanced
mathematical functions
% elementary matrix
functions
funkcje macierzowe
•
rozmiar:
•
•
rząd:
wyznacznik:
rzad
wyzn
•
macierz diagonalna:
•
ślad:
diagon = diag ( A
)
diagon = diag ( A , k )
slad = trace ( A
)
[ wier , kol ] = size ( A
)
wier
= size ( A , 1 )
kol
= size ( A , 2 )
= rank ( A )
= det ( A )
suma elementów macierzy diagonalnej
»
odwrotność:
odwr
= inv ( A )
funkcje matematyczne
•
sin
• asin
•
sinh
• asinh
(
(
(
(
A
A
A
A
)
)
)
)
cos
acos
cosh
acosh
(
(
(
(
A
A
A
A
)
)
)
)
tan
atan
tanh
atanh
•
•
•
sqrt ( A )
pow2 ( A )
exp ( A )
pierwiastek kwadratowy
2A
eA
•
•
•
log ( A )
log2 ( A )
log10( A )
logarytm naturalny
(
(
(
(
A
A
A
A
)
)
)
)
funkcje matematyczne
•
sin
• asin
•
sinh
• asinh
•
•
•
(
(
(
(
A
A
A
A
)
)
)
)
cos
acos
cosh
acosh
2
A
A
A
A
)
)
)
)
tan
atan
tanh
atanh
pierwiastek kwadratowy
2A
eA
sqrt ( A )
pow2 ( A )
exp ( A )
» A = [ 1
» exp(A)
(
(
(
(
3
4 ];
(
(
(
(
A
A
A
A
)
)
)
)
funkcje matematyczne
• sign
( A )
signum
•
•
•
•
•
abs
angle
real
imag
conj
(
(
(
(
(
wartość bezwzględna / moduł
kąt
część rzeczywista
część urojona
liczba sprzężona
•
•
•
•
round
fix
ceil
floor
A
A
A
A
A
(
(
(
(
)
)
)
)
)
A
A
A
A
)
)
)
)
zaokrąglenie
zaokrąglenie w kierunku zera
zaokrąglenie w górę
zaokrąglenie w dół
funkcje matematyczne
• mod
• rem
( A , B )
( A , B )
dzielenie całkowite – wynik
dzielenie całkowite – reszta
• gcd
• lcm
( a , b )
( a , b )
naj> wspólny dzielnik
naj< wspólna wielokrotność
• kron ( A , B )
iloczyn Kroneckera
predefiniowane stałe
• pi
• i j
• eps
3.14159265…
• Inf
• NaN
Infinity
Not-a-number
» i = 5 ;
» pi = 10 ;
» clear pi
−1
ε = 2-52
floating point precision
1/0
0/0
Inf-Inf
funkcja find
» A
= [ 1 2 5 10 15 -5 -6 7 8 ] ;
» find ( A > 5 )
» B = [ A ; A + 1 ]
» find ( B > 5 )
» [ wier , kol ] = find ( B > 5 )
przydatne funkcje
• format
• clear
• clear
•
•
•
•
save
save
save
save
• load
short, long, e, g, rat, compact, loose, hex…
a b c
all
% matlab.mat
all
dane
dane.txt
dane
a b
a b c
a b x y z
% dane.mat
-ascii –double –tabs