matcap7

11
Partea a ll-a CALCUL NUMERIC CU MATLAB 7. OPERAŢII ARITMETICE Calculele aritmetice asupra tablourilor de date în MATLAB pot fi: operaţii după regulile calculului matriceal - operaţii cu matrice; operaţii după regulile calculului scalar - operaţii cu tablouri. Operatorii folosiţi în calculele aritmetice cu tablouri şi matrice sunt prezentaţi în tabelul 7.1: 7.1. Operaţiile aritmetice cu scalari Operaţiile aritmetice între doi scalari sunt prezentate în tabelul 7.2. Expresiile aritmetice pot fi evaluate şi rezultatul memorat în variabile specificate. Astfel, instrucţiunea: x=a+b atribuie variabilei x, suma dintre variabilele a şi b. Instrucţiunea: k=k+1 atribuie variabilei k o nouă valoare, egală cu suma dintre vechea valoare şi constanta 1. În urma instrucţiunilor succesive: UPG-IME

Upload: linndowws

Post on 06-Nov-2015

220 views

Category:

Documents


3 download

DESCRIPTION

cursuri de facultate in romana MatLab

TRANSCRIPT

  • Partea a ll-a CALCUL NUMERIC CU MATLAB

    7. OPERAII ARITMETICECalculele aritmetice asupra tablourilor de date n MATLAB pot fi:

    operaii dup regulile calculului matriceal - operaii cu matrice; operaii dup regulile calculului scalar - operaii cu tablouri.

    Operatorii folosii n calculele aritmetice cu tablouri i matrice sunt prezentai n tabelul 7.1:

    7.1. Operaiile aritmetice cu scalari

    Operaiile aritmetice ntre doi scalari sunt prezentate n tabelul 7.2.

    Expresiile aritmetice pot fi evaluate i rezultatul memorat n variabile specificate. Astfel, instruciunea:

    x=a+batribuie variabilei x, suma dintre variabilele a i b. Instruciunea:

    k=k+1atribuie variabilei k o nou valoare, egal cu suma dintre vechea valoare i constanta 1. n urma instruciunilor succesive:

    UPGIM

    E

  • a=1a=2.5

    n variabila a se afl valoarea 2.5.O valoare introdus fr nominalizare este asignat variabilei ans (answer). n

    variabila ans este memorat n permanen valoarea ultimei variabile creia nu i s-aatribuit un nume.

    7.1.1. Ordinea operaiilor aritmetice

    Ordinea operaiilor n MATLAB, tabelul 7.3, este aceeai cu cea a operaiiloraritmetice standard, cunoscut n matematica elementar.

    Tabelul 7. 3. Ordinea operaiilor aritmetice

    Ordinea Operaia

    1 parantezele

    2 ridicarea la putere

    3 nmulirea i mprirea

    4 adunarea i scderea

    pentru x=2.O variant de program MATLAB, este :

    x=2M=x^3-2*x^2+x-6.3 N=x^2+0.5*x-l f=M/N

    dar este posibil i o form mai compact: x=2 f=(x^3-2*x^2+x-6.3)/(x^2+0.5*x-l)

    7.1.2. Limitele calculelor

    Dei variabilele memorate au un interval foarte mare, cel mai adesea fiind ntrelimitele 10-308 i 10308 (vezi funciile MATLAB realmax i realmin), totui, uneorieste posibil ca rezultatul unei expresii s depeasc aceste limite, aa cum sentmpl n exemplul:

    x = 2.5l0200

    y = 10200

    z = xy = 2.5-10400

    Deoarece z este n afara limitelor de mai sus, valoarea calculat z nu poate fimemorat. MATLAB-ul nregistreaz . Se verific acest lucru cu secvena:

    x=2.5*10^200y=10^200

    UPGIM

    E

  • z=x*y care returneaz:

    z= InfRezultatul unui calcul este mai mic dect 10-308 calculatorul nregistreaz valoarea

    zero.n MATLAB rezultatul mpririi cu zero este . n acest caz se afieaz mesajul de

    atenionare Warning:Divide by zero", dar calculele continu cu operandul .

    7. 2. Operaiile aritmetice cu tablouri

    Operaiile cu tablouri sunt operaii aritmetice (nmulire, mprire, ridicare la putere,etc) ntre elementele situate n aceeai poziie a tablourilor, cunoscute sub numele deoperaii element cu element.

    Pentru a preciza c nmulirea se efectueaz element cu element ntre componentele a dou matrice de aceleai dimensiuni, se utilizeaz operatorul de nmulire precedat de punct (.*), adic:

    C=A.*BPentru efectuarea operaiilor cu tablouri se folosesc aceiai operatori ca n operaiile

    cu scalari, precedai de semnul punct , semn ce indic efectuarea operaiilor n ordineaelement cu element. Dac unul dintre operanzi este un scalar, acesta opereaz cufiecare element al tabloului.

    7.2.1. Adunarea i scderea

    Exemplul 7.2.1. Fie: A=[2 5 6], B=[4 3 2], p=2. Sse calculeze: C=A-B, D=A-p i E=p-A Cu secvena MATLAB:

    A=[2 5 6]; B = [ 4 3 2]; p=2;C=A-BD=A-pE=p-A

    se obin rezultatele:C = [ -2 2 4]D = [ 0 3 4]E = [ 0 -3 -4]

    7.2.2. nmulirea tablourilor

    Exemplul 7.2.2. Fie: A=[2 5 6], B=[4 3 2], p=2. S se calculeze : C=A.*B, D=A.*p i E=p.*A . Cu secvena MATLAB:

    A=[2 5 6]; B=[4 3 2];p=2; C=A.*B D=A.*p E=p.*A

    UPGIM

    E

  • se obin rezultatele:C = [ 8 15 12]D = [ 4 10 12]E = [ 4 10 12]

    7.2.3. mprirea la dreapta

    Operaia de mprire la dreapta, element cu element, ntre dou tablouri este simbolizat cu operatorul punct-slash (./). Instruciunea:

    Z=X./Y reprezint mprirea element cu element a tablourilor X i Y, rezultnd elementele:

    Z(i,j) = X(i,j)/Y(i,j)

    Exemplul 7.2.3. Fie: A=[2 5 6], B=[4 3 2], p=2. S se calculeze : C=A./B, D=A./p i E=p./A. Cu secvena MATLAB:

    A=[2 5 6]; B = [ 4 3 2]; p=2;C=A./BD=A./pE=p. /A

    se obine rezultatul:C = [ 0.5000 1.6667 3.0000]D = [ 1.0000 2.5000 3.0000]E = [ 1.0000 0.4000 0.3333]

    7.2.4. mprirea la stnga

    Operaia de mprire la stnga, element cu element, ntre dou tablouri este simbolizat cu operatorul punct-backslash (.\)

    Instruciunea:Z = X.\Y

    reprezint mprirea element cu element a tablourilor X i Y, cu aceleai dimensiuni, rezultnd un tablou cu elementele:

    Z(i,j) = X(ij)\Y(ij) = Y(i,j)/X(i,j) Prin urmare:

    Z = X .\Y = Y./X

    Exemplul 7.2.4. Fie: A=[2 5 6] B=[4 3 2] p=2. S se calculeze : C=A.\B , D=A.\p i E=p.\A Cu secvena MATLAB:A=[2 5 6]; B=[4 3 2]; p=2; C=A.\B D=A.\p E=p. \A se obin rezultatele:

    C = [ 2.0000 0.6000 0.3333 ]D = [ 1.0000 0.4000 0.3333 ]E = [ 1.0000 2.5000 3.0000]

    UPGIM

    E

  • 7.2.5. Ridicarea la putere

    Operaia de ridicare la putere element cu element ntr-un tablou este simbolizat cu operatorul punct ^ (.^). Urmtoarea instruciune:

    Z=X.^Yreprezint ridicarea fiecrui element din tabloul X la puterea indicat de valoarea elementuluidin aceeai poziie a tabloului Y, adic:

    Z(i,j) = X(i,j)^Y(i,j)Dac X este un scalar, se las un blanc ntre scalar i operatorul de ridicare la putere .A "pentru a nu interpreta punctul care indic operarea cu tablouri de elemente ca punctulzecimal.

    Exemplul 7.2.5. Fie: A=[2 5 6], B=[4 3 2], p=2. Sse calculeze : C=A.AB, D=A.Ap i E=p.AA. Cu secvena MATLAB:

    A=[2 5 6 ] ; B=[4 3 2]; p=2;C=A."BD=A.ApE=p."A

    se obin rezultatele:C = [16 125 36]D = [ 4 25 36 ]E = [ 4 32 64 ]

    7.2.6. Transpunerea tablourilor

    Operaia de transpunere a unui tablou este simbolizat de operatorul punct-apostrof. Cu instruciunea:

    Z=Y.'liniile tabloului Y devin coloanele tabloului transpus Z. Acest lucru face ca un tablou Y cudimensiunea m x n s devin un tablou Z cu dimensiunea n x m.

    UPGIM

    E

  • 7.3. Operaiile aritmetice cu vectori

    7.3.1. Produsul scalar

    Produsul scalar a doi vectori de aceeai dimensiune este un scalar, egal cu suma produselor corespunztoare acelorai poziii:

    Dac A este de dimensiunea 1xN i B de dimensiunea Nx1, atunci sunt posibileurmtoarele expresii pentru calculul produsului scalar:E=sum(A'.*B) F=sum(A.*B')Cosinusul unghiului vectorilor:

    7.3.2. Produsul vectorial

    UPGIM

    E

  • Componentele C(i,j) au urmtoarea semnificaie: pentru i*j reprezint un vector orientat dup versorul menionat la poziia respectiv

    a matricei C; pentru i=j reprezint o component a produsului scalar (marcat cu x n matricea C)

    Prin urmare, produsul a doi vectori este: un scalar, dac operaia este un produs scalar; o matrice, dac operaia este un produs vectorial

    Exemplul 7.3.2. S se calculeze produsul vectorial i scalar al vectorilor:

    UPGIM

    E

  • 7.4. Operaiile aritmetice cu matrice

    Operaiile uzuale de algebr liniar cu matrice sunt simbolizate cu semnele grafice: *, \, /, A ,', i se efectueaz dup regulile cunoscute din calculul matriceal.

    7.4.1. Adunarea i scderea

    Operaia de adunare a dou matrice este simbolizat cu operatorul plus (+). Instruciunea:

    Z = X+Y reprezint adunarea matricelor X iY, rezultnd elementele:

    Z(i,j) = X(i,j)+Y(i,j).Matricele X i Y trebuie s aib aceleai dimensiuni, n afara cazului cnd X sau Y este un scalar. Un scalar a poate fi adunat cu orice matrice, rezultnd elementele: Z(i,j) = a+X(i,j)

    Operaia de scdere a dou matrice este simbolizat cu operatorul minus ( - ). Instruciunea:

    Z = X-Y reprezint scderea matricei Y din X, rezultnd elementele:

    Z(i,j) = X(i,j)-Y(i,j)Matricele X i Y trebuie s aib aceleai dimensiuni, n afara cazului cnd X sau Y

    este un scalar. Un scalar a poate opera cu orice matrice, rezultnd elementele:Z(i,j) = X(i,j)-a

    sau:Z(i,j) = a-X(ij)

    UPGIM

    E

  • 7.4.2. nmulirea matricelor

    Operaia de nmulire a dou matrice este simbolizat cu operatorul stelu ( * ). Urmtoarea instruciune: Z = X*Y reprezint matricea produs a avnd elementele:

    z(i , j ) = ^wmk

    Produsul matriceal este posibil dac numrul coloanelor matricei X este egal cu numrulliniilor matricei Y, elementul Z(i,j) fiind suma produselor dintre elementele liniei i cu elementelecorespondente din coloana j. Produsul matrice-vector este un caz special al cazului generalal produsului matrice-matrice. De asemenea, un scalar poate poate fi nmulit cu oricematrice, realizndu-se nmulirea cu fiecare element al matricei:

    Z(i,j) = a*X(i,j).UPGIM

    E

  • 7.4.3. mprirea la dreapta

    Operaia de mprire la dreapta a dou matrice este simbolizat cu operatorul slash (/). Urmtoarea instruciune:

    Z = X/Yreprezint mprirea la dreapta a matricelor X i Y, i este identic cu X*Y"1 (Y1 este inversa matricei Y).

    7.4.4. mprirea la stnga

    Operaia de mprire la stnga a dou matrice este simbolizat cu operatorul backslash (\). Urmtoarea instruciune:

    Z = X\Yreprezint mprirea la stnga a matricelor X i Y i este identic cu X 1*Y (Y"1 este inversa matricei Y).

    Dac A este o matrice n x n, iar B este un vector coloan cu n componente, atunci X=A\B este soluia sistemului de ecuaii AX=B, obinut prin eliminarea Gauss.

    Dac unul dintre operanzi este scalar, operaia nu este posibil.

    7.4.5. Ridicarea la putere

    Operaia de ridicare la putere a unei matrice este simbolizat cu operatorul ( A ). Urmtoarea instruciune: Z = X*p

    UPGIM

    E

  • reprezint ridicarea la puterea p a matricei X. Expresia X^ are sens doar pentru X matrice ptrat i p scalar.

    Dac p este un ntreg pozitiv, ridicarea la putere este obinut prin nmuliri repetate:

    7.4.6. Transpunerea matricelor

    Operaia de transpunere a unei matrice este simbolizat cu operatorul apostrof. Cu instruciunea:

    Z=Y'liniile matricei Y devin coloanele matricei transpuse Z. Acest lucru face ca pentru o matrice Ycu dimensiunea m x n s se obin o matrice Z cu dimensiunea n x m. Dac elementelematricei Y sunt numere reale, operaia de transpunere face ca:

    Z(i,j)=Y(j,i)Dac elementele matricei Y sunt numere complexe, operaia de transpunere retumeazconjugata transpusei, adic:

    Z(i,j) = conj(Y(j,i)) = real(Y(j,i))- i*imag(YG,i))

    UPGIM

    E