matcap7
DESCRIPTION
cursuri de facultate in romana MatLabTRANSCRIPT
-
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