MATLAB wprowadzenie
MATrix LABoratory MATLAB operuje tylko na jednym typie zmiennych na macierzach. Liczby (skalary) są szczególnymi przypadkami macierzy o wymiarze 1 1, (zawierającymi jeden wiersz i jedną kolumnę). Nazwą zmiennej jest dowolny ciąg znaków alfanumerycznych, rozpoczynający się od litery. Rozróżniane są duże i małe litery. Pamiętanych jest 19 pierwszych znaków. Przykłady nazw zmiennych: A C21 delta tvx444 omega_zero hxx J23 aaa g4534 Fx_38
Przypisanie zmiennym wartości liczbowych >> a=5.75 enter a = 5.75 >> b=3; enter >> D2=[1-9] enter D2 = 1-9
>> A1=[3 6.5 8 0 0 1] enter A1 = Columns 1 through 4 3 6.5 8 0 Columns 5 through 6 0 1 Lepiej postawić średnik >> A1=[3 6.5 8 0 0 1]; enter
>> Yn=[4 7-4 2 0 6] enter enter Yn = 4 7-4 2 0 6 lub >> Yn=[4 7-4;2 0 6] enter Yn = 4 7-4 2 0 6
Zmienne standardowe: eps, pi, i, j >> eps 2.2204e-016 >> pi 3.1416 >> i 0 + 1i >> j 0 + 1i Tych nazw nie należy używać jako nazw własnych zmiennych (w szczególności eps)
Operacje arytmetyczne: + * / >> a=7;b=3; >> c=a+b c = 10 >> d=a/b d = 2.3333 >> e=a*b e = 21 >> f=b-a f = -4 >> a=7;b=3; >> a+b 10 >> a/b 2.3333 >> a*b 21 >> b-a -4
Potęgowanie i pierwiastkowanie >> x=-3;y=8; >> x^3-27 >> y^(3/2) 22.627 >> sqrt(x) 0 + 1.7321i >> sqrt(y) 2.8284 Gdy chcemy zapamiętać wynik, koniecznie trzeba mu przypisać nazwę! Np. >> w=sqrt(y) w = 2.8284
Działania na macierzach muszą być wykonalne! >> A=[1 3; -2 1];B=[0 1;6-1];C=[3 8]; >> D=A+B D = 1 4 4 0 >> E=A*B E = 18-2 6-3 >> F=A+C??? Error using ==> plus Matrix dimensions must agree. >> G=B*C??? Error using ==> mtimes Inner matrix dimensions must agree. A = 1 3-2 1 >> B B = >> C C = 0 1 6-1 3 8
inv(a) oblicza macierz odwrotną A 1 det(a) oblicza wyznacznik macierzy A A transpozycja i sprzężenie zespolone macierzy A (A =A *t ) A. transpozycja (bez sprzężenia), czyli A. =A t Jeżeli operacja nie jest wykonalna sygnalizowany jest błąd
Działania na liczbach (macierzach) zespolonych real(a) część rzeczywista liczby (macierzy) A (Re{A}) imag(a) część urojona liczby (macierzy) A (Im{A}) abs(a) moduł liczby (macierzy) A ( A ) angle(a) argument liczby (macierzy) A (arga) W radianach!!! conj(a) sprzężenie zespolone liczby (macierzy) A (A * ) >> A=1+j*pi A = 1 + 3.1416i >> r=real(a);im=imag(a);m=abs(a);ar=angle(a); >> [r im m ar] 1 3.1416 3.2969 1.2626
Działania na elementach macierzy (działania tablicowe) C=A.*B C=A./B C=A.^k c ij ij ij ij ij ij ij a b c = a b c = = a k ij Wymiary macierzy A i B muszą być identyczne! >> A=[3-1 2];B=[1 2 4]; >> A.*B 3-2 8 >> A./B 3-0.5 0.5
Tworzenie standardowych macierzy zeros(n) generuje macierz n n złożoną z samych zer zeros(n,m) generuje macierz n m złożoną z samych zer ones(n) generuje macierz n n złożoną z samych jedynek ones(n,m) generuje macierz n m złożoną z samych jedynek eye(n) generuje macierz jednostkową n n >> zeros(2) 0 0 0 0 >> ones(2,4) 1 1 1 1 1 1 1 1 >> eye(3) 1 0 0 0 1 0 0 0 1
Generowanie ciągów liczbowych k=a:s:b generuje macierz wierszową [a a+s a+2s... b ], czyli ciąg arytmetyczny, b b gdy s > 0, b b gdy s < 0. >> k1=1:3:8 k1 = 1 4 7 >> k2=5:-2:-1 k2 = 5 3 1-1 k=a:b domyślną wartością jest s = 1 >> k=1:5 k = 1 2 3 4 5
k=linspace(a,b,n) generuje n-elementową macierz wierszową, złożoną z n równoodległych liczb między a i b. Gdy nie jest podane n, domyślną wartością jest 100. >> x=linspace(0,pi,10); >> x' 0 0.34907 0.69813 1.0472 1.3963 1.7453 2.0944 2.4435 2.7925 3.1416
k=logspace(a,b,n) generuje n-elementową macierz wierszową, złożoną z n liczb między 10 a i 10 b, których logarytmy są równoodległe Gdy nie jest podane n, domyślną wartością jest 50. >> w=logspace(0,2,11); >> w' 1 1.5849 2.5119 3.9811 6.3096 10 15.849 25.119 39.811 63.096 100 >> log(63.096)-log(39.811) 0.46051 >> log(15.849)-log(10) 0.46052 >> log(2.5119)-log(1.5849) 0.46052
Funkcje elementarne w MATLABIE Funkcje trygonometryczne: sin(x) sin x cos(x) cos x tan(x) tg x cot(x) ctg x Argument w radianach! Funkcje odwrotne: asin(x) arcsin x acos(x) arccos x atan(x) arctg x acot(x) arcctg x Wynik w radianach! Argumenty mogą być liczbami zespolonymi
Funkcje hiperboliczne: sinh(x) sin h x = sh x cosh(x) cos hx = ch x tanh(x) tg h x = th x coth(x) ctg h x = cth x Funkcje odwrotne: asinh(x) arsin h x = arsh x acosh(x) arcos h x = arch x atanh(x) artg h x = arth x acoth(x) arctg h x = arcth x Argumenty mogą być liczbami zespolonymi
Funkcja wykładnicza: exp(x) e x Funkcje logarytmiczne: log(x) ln x logarytm naturalny log10(x) lg x logarytm dziesiętny log2(x) log 2 x logarytm o podstawie 2 Argumenty mogą być liczbami zespolonymi
Pomoc (instrukcja help) >> help log LOG Natural logarithm. LOG(X) is the natural logarithm of the elements of X. Complex results are produced if X is not positive. See also log1p, log2, log10, exp, logm, reallog. Overloaded methods: gf/log distributed/log fints/log Reference page in Help browser doc log
Formaty wyświetlania liczb >> x=200*pi;y=0.025+j*sqrt(2); >> format short >> [x y] 1.0e+002 * 6.2832 0.0003 + 0.0141i >> format short e >> [x y] 6.2832e+002 2.5000e-002 +1.4142e+000i >> format long >> [x y] 1.0e+002 * 6.28318530717959 0.00025000000000 + 0.01414213562373i >> format long e >> [x y] Column 1 6.283185307179587e+002 Column 2 2.500000000000000e-002 +1.414213562373095e+000i
>> format short g >> [x y] 628.32 0.025 + 1.4142i >> format long g >> [x y] 628.318530717959 0.025 + 1.4142135623731i >> format hex >> [x y] 4083a28c59d5433b 0000000000000000i 3f9999999999999a 3ff6a09e667f3bcdi >> format bank >> [x y] 628.32 0.03 >> format rational >> [x y] 13823/22 1/40 + 1393/985i