22
MATLAB — wprowadzenie

Matlab wprowadzeniezto.ita.pwr.wroc.pl/~deren/Lab ETEW00010/Matlab_wprowadzenie.pdf · Title: Matlab_wprowadzenie Author: Lesław Created Date: 10/1/2017 11:35:24 AM

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • MATLAB — wprowadzenie

  • MAT rix LAB oratory• MATLAB operuje tylko na jednymtypie 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ówalfanumerycznych,

    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

  • >> a=5.75

    a =

    5.75

    >> b=3;

    Przypisanie zmiennym wartości liczbowych

    → enter

    → enter

    >> D2=[1 -9]

    D2 =

    1 -9

    → enter

  • >> A1=[3 6.5 8 0 0 1]

    A1 =

    Columns 1 through 4

    3 6.5 8 0

    Columns 5 through 6

    0 1

    → enter

    Lepiej postawić średnik

    >> A1=[3 6.5 8 0 0 1]; → enter

  • >> Yn=[4 7 -42 0 6]

    Yn =

    4 7 -42 0 6

    lub

    >> Yn=[4 7 -4;2 0 6]

    Yn =

    4 7 -42 0 6

    → enter→ enter

    → enter

  • Zmienne standardowe: eps, pi, i, j

    >> epsans =

    2.2204e-016>> pians =

    3.1416>> ians =

    0 + 1i>> jans =

    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+bc =

    10>> d=a/bd =

    2.3333>> e=a*be =

    21>> f=b-af =

    -4

    >> a=7;b=3;>> a+bans =

    10>> a/bans =

    2.3333>> a*bans =

    21>> b-aans =

    -4

  • Potęgowanie i pierwiastkowanie

    >> x=-3;y=8;>> x^3ans =

    -27>> y^(3/2)ans =

    22.627>> sqrt(x)ans =

    0 + 1.7321i>> sqrt(y)ans =

    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+BD =

    1 44 0

    >> E=A*BE =

    18 -26 -3

    >> F=A+C??? Error using ==> plusMatrix dimensions must agree.

    >> G=B*C??? Error using ==> mtimesInner matrix dimensions must agree.

    A =

    1 3

    -2 1

    >> B

    B =

    0 1

    6 -1

    >> C

    C =

    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.’=At

    Jeżeli operacja nie jest wykonalna sygnalizowany jest błąd

  • Działania na liczbach (macierzach) zespolonychreal(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*piA =

    1 + 3.1416i>> r=real(A);im=imag(A);m=abs(A);ar=angle(A);>> [r im m ar]ans =

    1 3.1416 3.2969 1.2626

  • Działania na elementach macierzy (działania tablicowe)

    C=A.*B →

    C=A./B →

    C=A.^k →

    ij ij ij

    ij ij ij

    kij ij

    c a b

    c a b

    c a

    =

    =

    =

    Wymiary macierzy A i B muszą być identyczne!

    >> A=[3 -1 2];B=[1 2 4];>> A.*Bans =

    3 -2 8

    >> A./Bans =

    3 -0.5 0.5

  • Tworzenie standardowych macierzy

    zeros(n) — generuje macierz n×n złożoną z samych zerzeros(n,m) — generuje macierz n×m złożoną z samych zerones(n) — generuje macierz n×n złożoną z samych jedynekones(n,m) — generuje macierz n×m złożoną z samych jedynekeye(n) — generuje macierz jednostkową n×n

    >> zeros(2)ans =

    0 00 0

    >> ones(2,4)ans =

    1 1 1 11 1 1 1

    >> eye(3)ans =

    1 0 00 1 00 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:8k1 =

    1 4 7

    >> k2=5:-2:-1k2 =

    5 3 1 -1

    k=a:b — domyślną wartością jest s = 1

    >> k=1:5k =

    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'ans =

    00.349070.69813

    1.04721.39631.74532.09442.44352.79253.1416

  • k=logspace(a,b,n) — generuje n-elementowąmacierz wierszową, złożoną z n liczb między 10a i 10b, których logarytmy są równoodległeGdy nie jest podane n, domyślną wartością jest 50.

    >> w=logspace(0,2,11);>> w'ans =

    11.58492.51193.98116.3096

    1015.84925.11939.81163.096

    100

    >> log(63.096)-log(39.811)ans =

    0.46051

    >> log(15.849)-log(10)ans =

    0.46052

    >> log(2.5119)-log(1.5849)ans =

    0.46052

  • Funkcje elementarne w MATLABIE

    Funkcje trygonometryczne:

    sin(x) — sinxcos(x) — cosxtan(x) — tgxcot(x) — ctgx

    Funkcje odwrotne:

    asin(x) — arcsinxacos(x) — arccosxatan(x) — arctgxacot(x) — arcctgx

    Argument w radianach!

    Wynik w radianach!

    Argumenty mogą być liczbami zespolonymi

  • Funkcje hiperboliczne:

    sinh(x) — sinhx = shxcosh(x) — coshx = chxtanh(x) — tghx = thxcoth(x) — ctghx = cthx

    Funkcje odwrotne:

    asinh(x) — arsinhx = arshxacosh(x) — arcoshx = archxatanh(x) — artghx = arthxacoth(x) — arctghx = arcthx

    Argumenty mogą być liczbami zespolonymi

  • Funkcja wykładnicza:

    exp(x) — ex

    Funkcje logarytmiczne:

    log(x) — lnx — logarytm naturalnylog10(x) — lgx — logarytm dziesiętnylog2(x) — log2x — logarytm o podstawie 2

    Argumenty mogą być liczbami zespolonymi

  • Pomoc (instrukcja help )

    >> help logLOG 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/logdistributed/logfints/log

    Reference page in Help browserdoc log

  • Formaty wyświetlania liczb>> x=200*pi;y=0.025+j*sqrt(2);

    >> format short>> [x y]ans =

    1.0e+002 *6.2832 0.0003 + 0.0141i

    >> format short e>> [x y]ans =

    6.2832e+002 2.5000e-002 +1.4142e+000 i>> format long>> [x y]ans =

    1.0e+002 *6.28318530717959 0.00025000000000 + 0.0 1414213562373i

    >> format long e>> [x y]ans =

    Column 1 6.283185307179587e+002

    Column 2 2.500000000000000e-002 +1.414213562373095e+000i

  • >> format short g>> [x y]ans =

    628.32 0.025 + 1.4142i>> format long g>> [x y]ans =

    628.318530717959 0.025 + 1.41421356 23731i>> format hex>> [x y]ans =

    4083a28c59d5433b 0000000000000000i 3f99999999 99999a 3ff6a09e667f3bcdi

    >> format bank>> [x y]ans =

    628.32 0.03>> format rational>> [x y]ans =

    13823/22 1/40 + 1393/98 5i