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