pi - prezentare

Upload: ssh-das

Post on 29-May-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 PI - Prezentare

    1/38

    MATLAB.MATLAB.TUTORIAL.TUTORIAL.

    Februarie, 2009

    Prelucrare dup: Huda ArnaoutYeran Soukiassian

  • 8/8/2019 PI - Prezentare

    2/38

    Coninut. Introducere. Mediu MATLAB. Utilizarea help-ului. Declararea variabilelor. Vectori, Matrice i Algebr Linear. Funcii Matematice i Aplicaii. Grafic MATLAB. Programare MATLAB. M-fiiere. Utilizarea funciilor predefinite.

  • 8/8/2019 PI - Prezentare

    3/38

    Introducere. LAB1

    MATLAB-prezentare MATLAB este un pachet de programe care combin capaciti

    puternice de calcul cu un mediu grafic adecvat i carerealizeaz o scul extrem de util inginerului i nu numai.

    MATLAB este destinat pentru MATrix LABoratory. Sistemul a fost realizat n principal pentru a asigura algoritmi numeric stabili pentru lucru cu

    matrice.

    Mediul MATLAB asigur utilizatorului: controlul variabilelor importul i exportul datelor calcul performant reprezentri grafice 2-D i 3-D. controlul i dezvoltarea fiierelor MATLAB.

  • 8/8/2019 PI - Prezentare

    4/38

    Ferestre grafice. Fereastra Grafic

    Afieaz grafice.

    Afieaz rezultate n urma comenzilor datede utilizator.

    Editorul MATLAB Creeaz i editeaz scripturi necesare

    implementrii unor m-fiiere.

  • 8/8/2019 PI - Prezentare

    5/38

    Utilizarea HELP-ului.

    Lansarea help-ului se va face tastnd n fereastra delucru una din comenzile: help listeaz coninutul help-ului helpcuvnt lanseaz help-ul pentru cuvnt. helpcomand lanseaz help-ul pentru comand

    help help ofer informaii asupra utilizrii help-ului helpwin deschide o fereastr separat pentru a lucra n mediul

    window . lookforkeyword Caut toate M-fiierele pentru keyword

  • 8/8/2019 PI - Prezentare

    6/38

    Declararea variabilelor. Numele unei variabile:

    Trebuie s nceap cu o liter Poate conine numai litere, cifre, i simbolul _ Matlab distinge majusculele, adic one & One sunt variabile

    diferite. Matlab recunoate primele 31 de caractere din numele variabilei.

    Valoarea unei variabile: Variabil = numr; Variabil = expresie;

    Exemple:>> tutorial = 1234;>> tutorial = 1234tutorial =

    1234

    NOTE: dac asociem ;la sfritul liniei decomand, rezultatul numai este afiat.

  • 8/8/2019 PI - Prezentare

    7/38

    Definirea variabilelor (cont.) Variabile speciale:

    ans : nume dat implicit variabilei rezultat pi: = 3.1415926 eps: = 2.2204e-016, zeroul mainii

    Infsau inf:

    , infinit NaN sau nan: not-a-number

    Comenzi pentru testarea variabilelor: who: listeaz numele variabilelor definite whos: listeaz numele i dimensiunile variabilelor definite

    clear: terge toate variabilele declarate,terge valorile impliciteale variabilelor speciale. clearnume: terge variabila nume clc: terge fereastra comenzilor clf: terge figura curent.

  • 8/8/2019 PI - Prezentare

    8/38

    Vectori, Matrice i Algebr Linear.

    Vectori. Operaii cu celule.

    Matrice. Soluionarea Sistemelor de ecuaii

    liniare.

  • 8/8/2019 PI - Prezentare

    9/38

    Vectori Un vector linie este creat n MATLAB prin tastarea succesiv,paranteza dreapt din

    stnga, valorile separate prin spaiu sau virgule i paranteza dreapt din dreapta. Pentru aintroduce un vetor coloan valorile sunt separate prin punct i virgul.

    Example:>> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi ]

    x = 0 0.7854 1.5708 2.3562 3.1416>> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ]y =

    00.7854

    1.57082.35623.1416

    x is a row vector.

    y is a column vector.

  • 8/8/2019 PI - Prezentare

    10/38

    Vectori (continuare) Poziia unui element al vectorului Se stabilete asociind ntregul nchis

    ntr-o parantez rotund. Exemplu:

    >> x(3)ans =

    1.5708

    Al 1lea pn la al 3lea element al vectorului x

    Notarea bloc faciliteaz testarea vectorului.Notarea bloc se realizeaz prin:

    (indicele destart : increment : indicele de capt)Forma scurt (start:stop) implic un increment 1.

    Example:>> x(1:3)ans =

    0 0.7854 1.5708

    NOT: MATLAB lanseaz startul cu 1.

    3lea element din vectorul x

  • 8/8/2019 PI - Prezentare

    11/38

    Vectori (continuare)Comenzi utile

    x = start:stop Creeaz vectorul linie x ncepnd cu start, indexndcu unu, pn la stop.

    x = start:increment:stop Creeaz un vector linie x ncepnd cu start,

    incrementnd cu increment pn la stop.linspace(start,stop,numr) Creeaz un vector linie x ncepnd cu start, sfrind

    cu stop avnd un numr de elemente.

    length(x) ntoarce lungimea vectorului x

    y = x Vectorul x transpus

    dot (x, y) ntoarce produsul scalar al vectorilor x i y.

  • 8/8/2019 PI - Prezentare

    12/38

    Operaii cu celule.Operaii celul-scalar.

    Pentru adunare,scdere,nmulire sau mprire scalarulacioneaz asupra fiecrui element al celulei.

    Example:>> f = [ 1 2; 3 4]

    f =1 23 4

    >> g = 2*f 1g =

    1 35 7

    Fiecare element din celul estemultiplicat cu 2 i apoi se extrage1.

  • 8/8/2019 PI - Prezentare

    13/38

    Operaii cu celule. (continuare) Operaii element cu element.

    Operaie Forma algebric MATLAB

    Adunare a + b a + b

    Scdere a b a b

    nmulire a x b a .* b

    mprire a b a ./ b

    Exponeniere ab a .^ b

    Exemplu:>> x = [ 1 2 3 ];>> y = [ 4 5 6 ];>> z = x .* yz =

    4 10 18

    Fiecare element din x estemultiplicat cu corespunztorul din y

  • 8/8/2019 PI - Prezentare

    14/38

    Matrice

    A o matrice m x n.

    O matrice este o celul 2-dimensional, avnd mai multe linii i mai multe coloane.nscrierea unei matrici se face astfel: Marcarea nceputului se face prin [, i se sfrete cu ] Separarea elementelor dintr-o linie se face prin spaiu sau virgul. Punct i virgul sau enter separ elementelor dintr-o coloan.

    Example:>> f = [ 1 2 3; 4 5 6]f =

    1 2 34 5 6

    >> h = [ 2 4 61 3 5]h =

    2 4 61 3 5Diagonala

    principal

  • 8/8/2019 PI - Prezentare

    15/38

    Matrice (continuare)

    Selectarea elementelor unei matrici:-- numematrice(linie, coloan)-- un bloc de selecie poate fi utilizat pentru a selecta mai multe

    linii sau coloane.

    Date:f =

    1 2 34 5 6

    h =2 4 61 3 5

    Exemplu:

    >> f(2,3)

    ans =

    6

    >> h(:,1)

    ans =

    2

    1

  • 8/8/2019 PI - Prezentare

    16/38

    Matrice (continuare)

    Comenzi uzuale:

    zeros(n)zeros(m,n)

    ones(n)ones(m,n)

    size (A)

    length(A)

    ntoarce o matrice n x n cu elemente nulentoarce o matrice m x n cu elemente nule.

    ntoarce o matrice n x n cu elemente unitatentoarce o matrice m x n cu elemente unitate

    Pentru matricea A cu dimensiunea m x n, ntoarceun vector linie [m,n] ce conine numrul de linii icoloane.

    ntoarce valoarea maxim dintre numrul de liniii coloane ale lui A.

  • 8/8/2019 PI - Prezentare

    17/38

    Matrice (continuare)

    Transpunerea B = A

    Matricea identitate eye(n) ntoarce matricea identitate de ordin neye(m,n) ntoarce o matrice m x n cu unu pe primadiagonal i zero n rest.

    Adunarea i scderea C = A + BC = A B

    Multiplicarea scalar B = *A, unde este un scalar .

    nmulirea matricial C = A*B

    Matricea invers B = inv(A), A trebui s fie ptrat.

    rank (A) ntoarce rangul matricei A.Ridicarea la putere B = A.^2 ridic la ptrat fiecare element din A

    C = A * A calculeaz A*A, A ptrat.

    Determinant det (A), A ptrat.

    Comenzi uzuale

    A, B, C sunt matrice, i m, n, scalari.

  • 8/8/2019 PI - Prezentare

    18/38

    Soluionarea sistemelor liniare. LAB 2

    Exemplu: fie sistemul algebric n necunoscutele (x1, x2, x3):

    3x1 + 2x2 x3 = 10

    -x1+ 3x

    2+ 2x

    3= 5

    x1 x2 x3 = -1

    Sistemul este descris de:

    Ax = b

    =

    111

    231

    123

    A

    =

    3

    2

    1

    x

    x

    x

    x

    =

    1

    5

    10

    b

    Fie :

  • 8/8/2019 PI - Prezentare

    19/38

    Soluia sistemului de ecuaii liniare(continuare)

    Soluionare prin invers:Ax = bA-1Ax = A-1bx = A-1b

    MATLAB:>> A = [ 3 2 -1; -1 3 2; 1 -1 -1];>> b = [ 10; 5; -1];>> x = inv(A)*bx =

    -2.0000

    5.0000-6.0000

    Rezultat:x1 = -2, x2 = 5, x3 = -6

    Soluionare prin diviziune matricial:Soluia ecuaiei

    Ax = bPoate fi calculat utiliznd diviziunea ladreapta.

    Rezultat:x1 = -2, x2 = 5, x3 = -6NOT:

    Diviziunea la stnga: A\b b A diviziune la dreapta: x/y x y

    MATLAB:>> A = [ 3 2 -1; -1 3 2; 1 -1 -1];>> b = [ 10; 5; -1];>> x = A\bx =

    -2.00005.0000-6.0000

  • 8/8/2019 PI - Prezentare

    20/38

    Funcii matematice i aplicaii. Reprezentarea i prelucrarea

    semnalelor.

    Polinoame. Descompunerea n fracii elementare.

  • 8/8/2019 PI - Prezentare

    21/38

    Reprezentare i procesareasemnalelor.

    Semnale sinusoidale:

    ttz

    tty

    ttx

    2sin2)(

    )]125.0(2cos[2)(

    2cos2)(

    =

    =

    =

    Exemple:t = linspace (-1, 1, 101);x = 2*cos(2*pi*t);

    y = 2*cos(2*pi*(t-0.125));z = 2*sin(2*pi*t);

  • 8/8/2019 PI - Prezentare

    22/38

    Polinoame.

    n MATLAB polinoamele sunt reprezentate prin vectorulcoeficienilor.

    Considerm urmtorul polinomul:A(s) = s3 + 3s2 + 3s + 1

    Dac s este scalar: utilizm operaia scalar A = s^3 + 3*s^2 + 3*s + 1;

    Dac s este vector sau matrice: utilizm operaii element cuelement. A = s.^3 + 3*s.^2 + 3.*s + 1;

    funcia polyval(a,s): evalueaz polinomul cu coeficieni n vectorula pentru valori ale lui s.

  • 8/8/2019 PI - Prezentare

    23/38

    Polnoame (continuare)

    Example:>> s = linspace (-5, 5, 100);

    >> coeff = [ 1 3 3 1];

    >> A = polyval (coeff, s);>> plot (s, A),

    >> xlabel ('s')

    >> ylabel ('A(s)')

    A(s) = s3 + 3s2 + 3s + 1

  • 8/8/2019 PI - Prezentare

    24/38

    Polinoame (continuare)Operaii Comenzi MATLAB Descriere

    Adunare c = a + b Suma polinoamelor (a,b au aceeai dimensiune)

    Multiplicare cuscalar

    b = 3*a Multiplic polinomul a cu 3

    Multiplicare

    polinomial

    c = conv(a,b) ntoarce vectorul polinomului produs.

    mprireapolinoamelor

    [q,r] = deconv(a,b) ntoarce coeficienii polinomului ct q i vectorul coeficienilor restr.

    Derivata polyder(a) ntoarce coeficienii polinomului derivat

    polyder(a, b) ntoarce coeficienii polinomului obinut prin derivarea produsuluipolinoamelor a i b.

    [n,d]=polyder(b,a) Deriveaz fracia raional b/a.

    Determinarerdcinilor

    roots(a) Determin rdcinile polinomului a

    Find Polynomials poly(r) Determin polinomul cu rdcinile specificate n r.

  • 8/8/2019 PI - Prezentare

    25/38

    Descompunerea n fraciielementeare.(DFE). LAB3

    )(

    )()(

    sA

    sBsH = , unde B(s) i A(s) sunt polinoame.

    n

    n

    rs

    c

    rs

    c

    rs

    csH

    ++

    +

    = ...)(

    2

    2

    1

    1

    H(s) poate fi reprezentat n forma:

  • 8/8/2019 PI - Prezentare

    26/38

    DFE (continuare)

    MATLAB:>> b = [ 1 2];>> a = [ 1 4 3 0];>> [c,r] = residue (b, a)c =

    -0.1667-0.5000

    0.6667r =

    -3-10

    Exemplu (Rdcini reale i diferite):

    3

    3

    2

    2

    1

    123 034

    2)(

    rs

    c

    rs

    c

    rs

    c

    sss

    ssH

    +

    +

    =

    +++

    +=

    NOT: ultimul zero reprezint coeficientulzero al polinomului

    c1c2

    c3

    r1r2r3

    ssssH

    3/2

    1

    2/1

    3

    6/1)( ++

    +

    =

    Rezultat:

  • 8/8/2019 PI - Prezentare

    27/38

    Grafic MATLAB. LAB4 Pentru mai multe informaii , help graph2d Reprezentarea unui punct:

    >> plot ( numevariabil, simbol)

    funcia plot () creez o fereatsrdefinit ca figur.

    Exemplu : Reprezentrea unui numr complex

    >> z = 1 + 0.5j;>> plot (z, .)

    Comenzi pentru axe:

    comenzi descriere

    axis ([xmin xmax ymin ymax]) Valori minime i maxime ale axelor

    axis square Grafic n ptrat.

    axis equal Scalare egal pe ambele axe.

    axis normal Reconfigureaz axele n ptrat cu scalare identic

    axis (auto) Fixare implicit

  • 8/8/2019 PI - Prezentare

    28/38

    Grafic Matlab (continuare) Reprezentarea graficelor:

    plot (x,y) genereaz dependena grafic y=f(x) semilogx (x,y) genereaz dependena grafic z=f(x) cu x marcat logaritmic iar y liniar. semilogy (x,y) genereaz dependena grafic z=f(x) cu x marcat liiar iar y logaritmic. loglog(x,y) traseaz graficul utiliznd o scalare logaritmic att pentru x ct i pentru y.

    Reprezentri multiple: plot (x, y, w, z) putem reprezenta mai multe curbe pe un acelai grafic utiliznd argumente multiple n

    linia de comand. Variabilele x, y, w, i z sunr vectori. Sunt trasate dou curbe: y vs. x, i z vs. w. legend (string1, string2,) permite prezentarea semnificaiei curbelor trasate.

    exerciiu: tastai help legend pentru clarificri. Figuri multiple:

    figure (n) utilizat pentru a crea mai multe ferestre grafice.Se introduce comanda nainte de comandaplot().

    Close(nume)nchide fereastra nume. close all nchide toate ferestrele.

    Subplots: subplot (m, n, p) mparte fereastra ntr-o reea m x n, p specific reprezentarea

    curent.

  • 8/8/2019 PI - Prezentare

    29/38

    Crafic MATLAB (continuare) Exemplu: (funcia polinomial)

    Reprezentm funcia polinomial utiliznd scalare linear/linear, log/linear , scalarealinear/log i log/log :

    y = 2x2 + 7x + 9

    % Generate the polynomial:

    x = linspace (0, 10, 100);

    y = 2*x.^2 + 7*x + 9;

    % plotting the polynomial:

    figure (1);

    subplot (2,2,1), plot (x,y);

    title ('Polynomial, linear/linear scale');

    ylabel ('y'), grid;

    subplot (2,2,2), semilogx (x,y);

    title ('Polynomial, log/linear scale');

    ylabel ('y'), grid;subplot (2,2,3), semilogy (x,y);

    title ('Polynomial, linear/log scale');

    xlabel('x'), ylabel ('y'), grid;

    subplot (2,2,4), loglog (x,y);

    title ('Polynomial, log/log scale');

    xlabel('x'), ylabel ('y'), grid;

  • 8/8/2019 PI - Prezentare

    30/38

    Grafic MATLAB (continuare)

  • 8/8/2019 PI - Prezentare

    31/38

    Grafic MATLAB (continuare) Adugarea de elemente noi pe un grafic existent: Comanda hold se utilizeaz pentru a aduga linii sau puncte pe un grafic.

    hold on permite reprezentri noi peste graficele anterior trasate. Dup caz serealizeaz automat o rescalare.

    hold off elimin posibilitatea suprapunerii graficelor (opiune implicit) Caroiaj i axe:

    Command Description

    grid on Adaug pe grafic o reea.

    grid off Elimin reeaua (implicit)

    grid Comut regimul grid

    title (text) Reprezint titlul nscris n partea de sus a figurii

    xlabel (text) Marcheaz axa orizontal.

    ylabel (text) Marcheaz axa vertical.

    text (x,y,text) Adaug coninutul textpe locaia (x,y) impus.

  • 8/8/2019 PI - Prezentare

    32/38

    Comenzi suplimentare pentrureprezentri grafice.

    Symbol Color

    y yellow

    m magentac cyan

    r red

    g green

    b blue

    w white

    k black

    Symbol Marker

    .

    o

    x

    + +

    *

    s

    d

    v

    ^

    h hexagram

    Colorarea punctelor pe curb Markeri pentru puncte Stilul de linieSymbol Line Style

    solid line

    : dotted line. dash-dot line

    dashed line

  • 8/8/2019 PI - Prezentare

    33/38

    Programare MATLAB. Controlul condiionrilor Cicluri

  • 8/8/2019 PI - Prezentare

    34/38

    Controlul condiionrilor. Sintaxa operatorului if:

    ifexpresie logiccomenzi

    end Exemplu:

    if d d

    b=0;end

    end Exemplu: (else i elseif)

    if temperatura > 100

    disp (Napa funcionare proast.)elseif temperatura > 90disp (Funcionare bun.);

    elsedisp (Frig oprete instalaia.)

    end

  • 8/8/2019 PI - Prezentare

    35/38

    Controlul condiionrilor.(continuare)

    Sintaxa operatorului switch :switchexpresie logic

    caserezultatul condiionrii 1comand

    caserezultatul condiionrii 2comand

    otherwisecomandend

    Exemplu:switch interval < 1

    case 1xinc = interval /10;

    case 0xinc = 0.1;end

  • 8/8/2019 PI - Prezentare

    36/38

    Cicluri.

    Ciclu forforvariabila = expresie

    comanda

    end

    Ciclu whilewhileexpresia

    comanda

    end

    Exemplu (ciclu for):for t = 1:5000

    y(t) = sin (2*pi*t/10);end

    Exemplu (ciclu while):EPS = 1;while ( 1+EPS) >1

    EPS = EPS/2;endEPS = 2*EPS

    comanda breakbreak folosit pentru ieirea din ciclu.

  • 8/8/2019 PI - Prezentare

    37/38

    M-Fiiere.

    M-fiierele sunt fiiere text ce conin o succesiune

    de comenzi Matlab. MATLAB poate deschide i executa fiierele exact

    exact ca i cum ar fi introduse de la tastatur. Pentru a rula un fiier.m este suficient s

    introducem numele fiierului n fereastra de lucru(asigurndu-ne c directorul este corect setat)Toate comenzile Matlab sunt m-fiiere.

    Comenzile pot fi rulate n fereastra de lucru Matlab. Este cu mult maicomod de a elabora m-fiiere.

  • 8/8/2019 PI - Prezentare

    38/38

    Fiiere funcie. Sintaxa unui fiier funcie:function [Variabile de ieire] = nume_funcie (variabile de intrare);

    NOT: numele funciei este de

    dorit s fie acelai cu numelefiierului pentru a evita confuzii.

    Lansarea funciei dorite:-- funcia este lansat prin numele fiierului i nu al funcieidefinite.

    -- n cadrul funciei pot utiliza numai funcii predefinite nscrise cam-fiiere. Comments:

    -- Primele linii pot fi introduse comentarii care pot fi apelate prinhelp.